-
-
Save eodabas/880612a39c4ff04e573dc921ff3aabdf to your computer and use it in GitHub Desktop.
| type: sections | |
| max_columns: 3 | |
| title: P1S | |
| path: p1s | |
| sections: | |
| - type: grid | |
| cards: | |
| - type: heading | |
| heading_style: subtitle | |
| badges: | |
| - type: entity | |
| show_state: false | |
| show_icon: true | |
| entity: sensor.p1s_current_stage | |
| color: "#ff000000" | |
| visibility: | |
| - condition: screen | |
| media_query: "(min-width: 1024px)" | |
| - type: custom:mushroom-template-card | |
| primary: "Printer State: {{ state_translated(\"binary_sensor.p1s_print_error\") }}" | |
| secondary: >- | |
| Error Code: {{ state_attr("binary_sensor.p1s_print_error", | |
| "code")|replace("_", "-") }} | |
| {% if state_attr("binary_sensor.p1s_print_error", "error") != None | |
| and state_attr("binary_sensor.p1s_print_error", "error") != "" %} | |
| ({{ state_attr("binary_sensor.p1s_print_error", "error") }}) | |
| {% endif %} | |
| icon: mdi:information-slab-circle | |
| entity: binary_sensor.p1s_print_error | |
| icon_color: red | |
| fill_container: true | |
| grid_options: | |
| columns: full | |
| visibility: | |
| - condition: state | |
| entity: binary_sensor.p1s_print_error | |
| state_not: "off" | |
| tap_action: | |
| action: more-info | |
| - type: custom:mushroom-template-card | |
| primary: "HMS State: {{ state_translated(\"binary_sensor.p1s_hms_errors\") }}" | |
| secondary: >- | |
| Error Code: {{ state_attr("binary_sensor.p1s_hms_errors", | |
| "1-Code")|replace("_", "-") }} | |
| {% if state_attr("binary_sensor.p1s_hms_errors", "1-Error") != None | |
| and state_attr("binary_sensor.p1s_hms_errors", "error") != "" | |
| and state_attr("binary_sensor.p1s_hms_errors", "error") != "unknown" %} | |
| ({{ state_attr("binary_sensor.p1s_hms_errors", "error") }}) | |
| {% endif %} | |
| icon: mdi:information-slab-circle | |
| entity: binary_sensor.p1s_hms_errors | |
| icon_color: red | |
| fill_container: true | |
| grid_options: | |
| columns: full | |
| visibility: | |
| - condition: state | |
| entity: binary_sensor.p1s_hms_errors | |
| state_not: "off" | |
| tap_action: | |
| action: more-info | |
| column_span: 3 | |
| - type: grid | |
| cards: | |
| - type: heading | |
| icon: mdi:printer-3d | |
| heading_style: subtitle | |
| heading: Printer | |
| badges: | |
| - type: entity | |
| show_state: true | |
| show_icon: true | |
| entity: light.p1s_chamber_light | |
| tap_action: | |
| action: toggle | |
| name: Light | |
| state_content: | |
| - name | |
| - state | |
| color: state | |
| - type: entity | |
| show_state: true | |
| show_icon: true | |
| entity: sensor.p1s_current_stage | |
| icon: mdi:printer-3d | |
| color: state | |
| - show_state: false | |
| show_name: true | |
| camera_view: auto | |
| type: picture-entity | |
| entity: image.p1s_camera | |
| - type: picture | |
| image_entity: image.p1s_cover_image | |
| grid_options: | |
| columns: 6 | |
| rows: 4 | |
| theme: macOS Theme | |
| card_mod: | |
| style: | | |
| ha-card { | |
| align-content: center; | |
| background: linear-gradient(#999999, #111111); | |
| //background: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 4 4"><rect width="5" height="5" fill="%23ffffff50" /><path d="M0,0V5H1V0zM2,0V5H3V0zM4,0V5H5V0zM0,0H5V1H0zM0,2H5V3H0zM0,4H5V5H0z" fill="%23aaaaaa50" fill-rule="evenodd"/></svg>'); | |
| } | |
| img { | |
| filter: drop-shadow(0px 5px 2px #00000055); | |
| } | |
| - type: custom:stack-in-card | |
| horizontal: true | |
| cards: | |
| - type: markdown | |
| content: > | |
| <div><font size="5">{{ states.sensor.p1s_task_name.state[:60] | |
| }}</font></div> | |
| <table width=100%><tr><td align=left>Printed layers<td | |
| align=right><font color=#77fc54 ; size="4">{{ | |
| states.sensor.p1s_current_layer.state}}</font>/{{states.sensor.p1s_total_layer_count.state}}</td></tr></table> | |
| <table width=100%><tr> <td align=left><font | |
| size="5";color=#77fc54>{{ | |
| states.sensor.p1s_print_progress.state}}%<td align=right> {% if | |
| (states.sensor.p1s_remaining_time.state | int) == 0 %} | |
| Success | |
| {% else %} | |
| <font color=#959595>-{{(states.sensor.p1s_remaining_time.state | int/60) | int }}h{{ states.sensor.p1s_remaining_time.state| int % 60 }}m | |
| {% endif %} </td> </tr></table> | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { | |
| position: absolute; | |
| top: 0px; | |
| } | |
| ha-markdown: | |
| $: | | |
| div { | |
| height: 135px; | |
| overflow: hidden; | |
| word-break: break-words; | |
| hyphens: auto!important; | |
| hyphenate-character: " "; | |
| } | |
| grid_options: | |
| columns: 6 | |
| rows: 3 | |
| - type: custom:entity-progress-card | |
| entity: sensor.p1s_print_progress | |
| unit: "%" | |
| show_more_info: false | |
| bar_size: small | |
| bar_color: var(--green-color) | |
| layout: horizontal | |
| icon: none | |
| hide: | |
| - icon | |
| - name | |
| - secondary_info | |
| grid_options: | |
| columns: 6 | |
| rows: 1 | |
| card_mod: | |
| style: | | |
| ha-card { | |
| height: 100%; | |
| align-content: end; | |
| } | |
| grid_options: | |
| columns: 6 | |
| rows: 4 | |
| - type: custom:ha-bambulab-print_control-card | |
| printer: 27069188e8387ed3d25eae2602210d3b | |
| grid_options: | |
| columns: full | |
| rows: auto | |
| card_mod: | |
| style: | | |
| div.control-container { | |
| width: 100%; | |
| overflow: hidden; | |
| } | |
| div.buttons-container { | |
| gap: 0px | |
| } | |
| - type: custom:mushroom-fan-card | |
| entity: fan.teckin_plug_4_bentobox_external_socket_1 | |
| name: Bento Ext | |
| grid_options: | |
| columns: 4 | |
| rows: 1 | |
| tap_action: | |
| action: more-info | |
| icon_animation: true | |
| - type: custom:mushroom-fan-card | |
| entity: fan.teckin_plug_2_bentobox_internal_socket_1 | |
| name: Bento Int | |
| grid_options: | |
| columns: 4 | |
| rows: 1 | |
| tap_action: | |
| action: more-info | |
| icon_animation: true | |
| - type: custom:mushroom-template-card | |
| primary: Air Purifier | |
| secondary: | | |
| {% if states(config.entity) == "on" %} | |
| {% if state_attr(config.entity, "mode") == "manual" %} | |
| {{ state_attr(config.entity, "percentage") }}% | |
| {% else %} | |
| {{ state_attr(config.entity, "mode") | capitalize }} | |
| {% endif %} | |
| {% if state_attr(config.entity, "mode") in [ "manual", "auto"] %} | |
| ● {{ state_translated('sensor.levoit_131s_air_purifier_air_quality') | capitalize }} | |
| {% endif %} | |
| {% else %} | |
| {{ state_translated(config.entity) }} | |
| {% endif %} | |
| icon: | | |
| {% if is_state(config.entity, 'on') %} | |
| mdi:fan | |
| {% else %} | |
| mdi:fan-off | |
| {% endif %} | |
| entity: fan.levoit_131s_air_purifier | |
| tap_action: | |
| action: more-info | |
| grid_options: | |
| columns: 4 | |
| rows: 1 | |
| badge_icon: | | |
| {% if states(config.entity) == "on" %} | |
| {% if state_attr(config.entity, "mode") == "sleep" %} | |
| mdi:power-sleep | |
| {% endif %}{% endif %} | |
| badge_color: orange | |
| card_mod: | |
| style: | |
| mushroom-shape-icon$: | | |
| .shape { | |
| {% if is_state(config.entity, 'on') %} | |
| --icon-color: rgb(var(--rgb-state-fan)); | |
| --shape-color: rgba(var(--rgb-state-fan), 0.2); | |
| {% endif %} | |
| display: flex; | |
| } | |
| mushroom-shape-icon: | | |
| ha-state-icon { | |
| {% if is_state(config.entity, 'on') %} | |
| {% if state_attr(config.entity, "mode") == "auto" %} | |
| {% if is_state('sensor.levoit_131s_air_purifier_air_quality', 'excellent') %} | |
| animation: spin 8s linear infinite; | |
| {% elif is_state('sensor.levoit_131s_air_purifier_air_quality', 'good') %} | |
| animation: spin {{ 1 / (1.5 * (33 / 100) ** 0.5) }}s linear infinite; | |
| {% elif is_state('sensor.levoit_131s_air_purifier_air_quality', 'fine') %} | |
| animation: spin {{ 1 / (1.5 * (66 / 100) ** 0.5) }}s linear infinite; | |
| {% elif is_state('sensor.levoit_131s_air_purifier_air_quality', 'bad') %} | |
| animation: spin {{ 1 / (1.5 * (100 / 100) ** 0.5) }}s linear infinite; | |
| {% endif %} | |
| {% elif state_attr(config.entity, "mode") == "manual" %} | |
| animation: spin {{ 1 / (1.5 * (state_attr(config.entity, "percentage") / 100) ** 0.5) }}s linear infinite; | |
| {% endif %} | |
| {% else %} | |
| --shape-animation: none; | |
| {% endif %} | |
| } | |
| - type: custom:mushroom-fan-card | |
| entity: fan.p1s_chamber_fan | |
| name: Chamber | |
| grid_options: | |
| columns: 4 | |
| rows: 1 | |
| tap_action: | |
| action: more-info | |
| icon_animation: true | |
| - type: custom:mushroom-fan-card | |
| entity: fan.p1s_aux_fan | |
| name: Aux | |
| grid_options: | |
| columns: 4 | |
| rows: 1 | |
| tap_action: | |
| action: more-info | |
| icon_animation: true | |
| - type: custom:mushroom-fan-card | |
| entity: fan.p1s_cooling_fan | |
| name: Cooling | |
| grid_options: | |
| columns: 4 | |
| rows: 1 | |
| tap_action: | |
| action: more-info | |
| icon_animation: true | |
| - type: grid | |
| cards: | |
| - type: heading | |
| icon: mdi:camera-control | |
| heading_style: subtitle | |
| badges: [] | |
| heading: Status | |
| - show_name: true | |
| show_icon: true | |
| show_state: true | |
| type: glance | |
| entities: | |
| - entity: sensor.p1s_nozzle_temperature | |
| icon: mdi:printer-3d-nozzle-heat | |
| name: Nozzle | |
| card_mod: | |
| style: | | |
| :host { | |
| --paper-item-icon-color: white; | |
| --icon-primary-color: white; | |
| } | |
| state-badge { | |
| background-color: #D5AE43; | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| - entity: sensor.p1s_bed_temperature | |
| icon: mdi:train-car-flatbed | |
| name: Print Bed | |
| card_mod: | |
| style: | | |
| :host { | |
| --paper-item-icon-color: white; | |
| --icon-primary-color: white; | |
| } | |
| state-badge { | |
| background-color: #4DAE51; | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| - entity: sensor.p1s_chamber_multi_sensor_temperature | |
| icon: mdi:printer-3d | |
| name: Chamber | |
| card_mod: | |
| style: | | |
| :host { | |
| --paper-item-icon-color: white; | |
| --icon-primary-color: white; | |
| } | |
| state-badge { | |
| background-color: #6594E4; | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| - entity: select.p1s_printing_speed | |
| name: Speed | |
| icon: mdi:window-close | |
| card_mod: | |
| style: | | |
| {% set current_sensor = "select.p1s_printing_speed" %} | |
| :host { | |
| --paper-item-icon-color: white; | |
| --icon-primary-color: white; | |
| {% if is_state(current_sensor, "silent") %} | |
| --card-mod-icon: mdi:speedometer-slow; | |
| {% elif is_state(current_sensor, "standard") %} | |
| --card-mod-icon: mdi:speedometer-medium; | |
| {% elif is_state(current_sensor, "sport") %} | |
| --card-mod-icon: mdi:speedometer; | |
| {% elif is_state(current_sensor, "ludicrous") %} | |
| --card-mod-icon: mdi:rocket-launch; | |
| {% else %} | |
| --card-mod-icon: mdi:window-close | |
| {% endif %} | |
| } | |
| state-badge { | |
| background-color: orange; | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| state_color: false | |
| card_mod: | |
| style: | | |
| ha-card { | |
| font-size: 12px; | |
| height: 100% | |
| } | |
| ha-card.type-glance .entities { | |
| align-items: flex-start !important; | |
| } | |
| - type: heading | |
| heading: Ext. Spool | |
| heading_style: subtitle | |
| grid_options: | |
| columns: 3 | |
| icon: mdi:alpha-e-box | |
| - type: heading | |
| heading: AMS | |
| heading_style: subtitle | |
| grid_options: | |
| columns: 9 | |
| badges: | |
| - type: entity | |
| show_state: true | |
| show_icon: true | |
| entity: sensor.p1s_ams_1_multi_sensor_temperature | |
| tap_action: | |
| action: more-info | |
| - type: entity | |
| show_state: true | |
| show_icon: true | |
| entity: sensor.p1s_ams_1_multi_sensor_humidity | |
| tap_action: | |
| action: more-info | |
| - type: entity | |
| show_state: true | |
| show_icon: true | |
| entity: sensor.p1s_ams_1_humidity_index | |
| tap_action: | |
| action: more-info | |
| icon: mdi:alpha-a-box | |
| tap_action: | |
| action: perform-action | |
| perform_action: input_boolean.toggle | |
| target: | |
| entity_id: input_boolean.enable_ha_bambulab_ams_spool_cards | |
| - type: custom:ha-bambulab-spool-card | |
| header: Header Text | |
| subtitle: Subtitle Text | |
| show_header: true | |
| show_type: true | |
| spool: 463cf2384c0f8deb41635045674cde41 | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { | |
| background: var(--ha-card-background, var(--card-background-color, #fff)); | |
| -webkit-backdrop-filter: var(--ha-card-backdrop-filter, none); | |
| backdrop-filter: var(--ha-card-backdrop-filter, none); | |
| box-shadow: var(--ha-card-box-shadow, none); | |
| box-sizing: border-box; | |
| border-radius: var(--ha-card-border-radius, 12px); | |
| border-width: var(--ha-card-border-width, 1px); | |
| border-style: solid; | |
| border-color: var(--ha-card-border-color, var(--divider-color, #e0e0e0)); | |
| color: var(--primary-text-color); | |
| display: block; | |
| transition: all .3sease-out; | |
| position: relative; | |
| } | |
| ha-bambulab-spool { | |
| xbackground-color: red!important; | |
| margin: 5px; | |
| } | |
| ha-bambulab-spool $ ams-popup: | | |
| div.ha-bambulab-spool-card-container { | |
| xbackground-color: cyan; | |
| } | |
| div.ha-bambulab-spool-card-holder { | |
| border: 7px solid rgba(0,0,0,0) !important; | |
| background: none !important; | |
| } | |
| div.ha-bambulab-spool-container { | |
| border: 2px solid rgba(0,0,0,0); | |
| } | |
| div.ha-bambulab-spool-card-holder { | |
| width: 62px; | |
| margin-left: auto; | |
| margin-right: auto; | |
| } | |
| div.ha-bambulab-spool-info { | |
| background: none; | |
| font-weight: 500; | |
| font-size: 12px; | |
| line-height: 16px; | |
| color: var(--card-primary-color); | |
| letter-spacing: 0.1px; | |
| text-overflow: ellipsis; | |
| overflow: hidden; | |
| } | |
| div.v-string-roll { | |
| xbackground-image: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 4 4"><rect width="5" height="5" fill="%23ffffff50" /><path d="M0,0V5H1V0zM2,0V5H3V0zM4,0V5H5V0zM0,0H5V1H0zM0,2H5V3H0zM0,4H5V5H0z" fill="%23aaaaaa50" fill-rule="evenodd"/></svg>') !important; | |
| } | |
| div.v-string-layer { | |
| background-color: rgba(0, 0, 0, 0.1); | |
| } | |
| visibility: | |
| - condition: state | |
| entity: input_boolean.enable_ha_bambulab_ams_spool_cards | |
| state: "on" | |
| - type: horizontal-stack | |
| cards: | |
| - type: custom:ha-bambulab-ams-card | |
| entity: "" | |
| header: "" | |
| subtitle: "" | |
| style: vector | |
| ams: 489dc2f60789a8ab9cacb6acadd201a4 | |
| show_type: true | |
| show_info_bar: false | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { | |
| background: var(--ha-card-background, var(--card-background-color, #fff)); | |
| -webkit-backdrop-filter: var(--ha-card-backdrop-filter, none); | |
| backdrop-filter: var(--ha-card-backdrop-filter, none); | |
| box-shadow: var(--ha-card-box-shadow, none); | |
| box-sizing: border-box; | |
| border-radius: var(--ha-card-border-radius, 12px); | |
| border-width: var(--ha-card-border-width, 1px); | |
| border-style: solid; | |
| border-color: var(--ha-card-border-color, var(--divider-color, #e0e0e0)); | |
| color: var(--primary-text-color); | |
| display: block; | |
| transition: all .3sease-out; | |
| position: relative; | |
| } | |
| ha-bambulab-spool { | |
| padding: 0px 0px !important; | |
| } | |
| ha-bambulab-spool $: | |
| ams-popup: | | |
| div.ha-bambulab-spool-card-container { | |
| xbackground-color: cyan; | |
| } | |
| div.ha-bambulab-spool-card-holder { | |
| border: 7px solid rgba(0,0,0,0) !important; | |
| background: none !important; | |
| } | |
| div.ha-bambulab-spool-container { | |
| border: 2px solid rgba(0,0,0,0); | |
| } | |
| div.ha-bambulab-spool-card-holder { | |
| width: 62px; | |
| margin-left: auto; | |
| margin-right: auto; | |
| } | |
| div.ha-bambulab-spool-info { | |
| background: none; | |
| font-weight: 500; | |
| font-size: 12px; | |
| line-height: 16px; | |
| color: var(--card-primary-color); | |
| letter-spacing: 0.1px; | |
| text-overflow: ellipsis; | |
| overflow: hidden; | |
| } | |
| div.v-string-roll { | |
| xbackground-image: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 4 4"><rect width="5" height="5" fill="%23ffffff50" /><path d="M0,0V5H1V0zM2,0V5H3V0zM4,0V5H5V0zM0,0H5V1H0zM0,2H5V3H0zM0,4H5V5H0z" fill="%23aaaaaa50" fill-rule="evenodd"/></svg>') !important; | |
| } | |
| div.v-string-layer { | |
| background-color: rgba(0, 0, 0, 0.1); | |
| } | |
| grid_options: | |
| columns: 9 | |
| rows: 3 | |
| visibility: | |
| - condition: state | |
| entity: input_boolean.enable_ha_bambulab_ams_spool_cards | |
| state: "on" | |
| - type: custom:stack-in-card | |
| mode: horizontal | |
| keep: | |
| outer_padding: true; | |
| cards: | |
| - type: custom:mushroom-template-card | |
| entity: sensor.p1s_externalspool_external_spool | |
| primary: > | |
| {% if states(config.entity) in [ "", "unknown" ] %}Unknown {{ | |
| state_attr(config.entity, 'type') }}{% else %}{{ | |
| state_translated(config.entity) }}{% endif %} | |
| secondary: | | |
| {% if state_attr(config.entity, 'remain') > -1 %}{{ | |
| state_attr(config.entity, 'remain') }}%{% endif %} | |
| icon: > | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| mdi:printer-3d-nozzle | |
| {% elif is_state_attr(config.entity, 'empty', true) or | |
| is_state_attr(config.entity, 'name', "") or | |
| is_state_attr(config.entity, 'color', "#00000000") %} | |
| mdi:help | |
| {% else %} | |
| mdi: | |
| {% endif %} | |
| layout: vertical | |
| multiline_secondary: true | |
| tap_action: | |
| action: more-info | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { height: 140px !important; } | |
| mushroom-card { } | |
| mushroom-state-item$: | | |
| div.container { justify-content: normal; } | |
| mushroom-state-info$: | | |
| .primary { | |
| white-space: pre-wrap!important; | |
| height: 60px; | |
| font-size: var(--card-secondary-font-size)!important; | |
| line-height: var(--card-secondary-line-height)!important; | |
| } | |
| mushroom-shape-icon$: | | |
| .shape { | |
| --filament-color: {{ state_attr(config.entity, 'color') }}; | |
| display: flex; | |
| box-shadow: 0 0 0 5px var(--shape-color) !important; | |
| {% if is_state_attr(config.entity, 'empty', true) or is_state_attr(config.entity, 'name', "") or is_state_attr(config.entity, 'color', "#00000000") %} | |
| background: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 4 4"><rect width="5" height="5" fill="%23ffffff50" /><path d="M0,0V5H1V0zM2,0V5H3V0zM4,0V5H5V0zM0,0H5V1H0zM0,2H5V3H0zM0,4H5V5H0z" fill="%23aaaaaa50" fill-rule="evenodd"/></svg>'); | |
| background-color: white!important; | |
| --icon-color: white; | |
| {% else %} | |
| background-color: var(--filament-color)!important; | |
| --icon-color: var(--filament-color); | |
| {% endif %} | |
| border-radius: 50% !important; | |
| } | |
| ha-state-icon$: | | |
| @keyframes shake { | |
| 50% { | |
| transform: translate3d(4px, 0, 0); | |
| } | |
| } | |
| ha-icon { | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| animation: shake 0.2s infinite linear; | |
| {% endif %} | |
| filter: invert(1) grayscale(1) brightness(500%) opacity(0.5); | |
| } | |
| grid_options: | |
| columns: 3 | |
| rows: auto | |
| visibility: | |
| - condition: state | |
| entity: input_boolean.enable_ha_bambulab_ams_spool_cards | |
| state: "off" | |
| - type: custom:stack-in-card | |
| mode: horizontal | |
| keep: | |
| outer_padding: true; | |
| cards: | |
| - type: custom:mushroom-template-card | |
| entity: sensor.p1s_ams_1_tray_1 | |
| primary: > | |
| {{ state_translated(config.entity) }}{% if | |
| is_state_attr(config.entity, "name", None) %} {{ | |
| state_attr(config.entity, 'type') }}{% endif %} | |
| secondary: | | |
| {% if state_attr(config.entity, 'remain') > -1 %}{{ | |
| state_attr(config.entity, 'remain') }}%{% endif %} | |
| icon: | | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| mdi:printer-3d-nozzle | |
| {% elif is_state_attr(config.entity, 'empty', true) %} | |
| mdi:slash-forward | |
| {% elif is_state_attr(config.entity, 'color', "#00000000") %} | |
| mdi:help | |
| {% else %} | |
| mdi: | |
| {% endif %} | |
| layout: vertical | |
| multiline_secondary: true | |
| tap_action: | |
| action: more-info | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { height: 140px !important; } | |
| mushroom-card { } | |
| mushroom-state-item$: | | |
| div.container { justify-content: normal; } | |
| mushroom-state-info$: | | |
| .primary { | |
| white-space: pre-wrap!important; | |
| height: 60px; | |
| font-size: var(--card-secondary-font-size)!important; | |
| line-height: var(--card-secondary-line-height)!important; | |
| } | |
| mushroom-shape-icon$: | | |
| .shape { | |
| --filament-color: {{ state_attr(config.entity, 'color') }}; | |
| display: flex; | |
| box-shadow: 0 0 0 5px var(--shape-color) !important; | |
| {% if is_state_attr(config.entity, 'empty', true) or is_state_attr(config.entity, 'color', "#00000000") %} | |
| background: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 4 4"><rect width="5" height="5" fill="%23ffffff50" /><path d="M0,0V5H1V0zM2,0V5H3V0zM4,0V5H5V0zM0,0H5V1H0zM0,2H5V3H0zM0,4H5V5H0z" fill="%23aaaaaa50" fill-rule="evenodd"/></svg>'); | |
| background-color: white!important; | |
| --icon-color: white; | |
| {% else %} | |
| background-color: var(--filament-color)!important; | |
| --icon-color: var(--filament-color); | |
| {% endif %} | |
| border-radius: 50% !important; | |
| } | |
| ha-state-icon$: | | |
| @keyframes shake { | |
| 50% { | |
| transform: translate3d(4px, 0, 0); | |
| } | |
| } | |
| ha-icon { | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| animation: shake 0.2s infinite linear; | |
| {% endif %} | |
| filter: invert(1) grayscale(1) brightness(500%) opacity(0.5); | |
| } | |
| - type: custom:mushroom-template-card | |
| entity: sensor.p1s_ams_1_tray_2 | |
| primary: > | |
| {{ state_translated(config.entity) }}{% if | |
| is_state_attr(config.entity, "name", None) %} {{ | |
| state_attr(config.entity, 'type') }}{% endif %} | |
| secondary: | | |
| {% if state_attr(config.entity, 'remain') > -1 %}{{ | |
| state_attr(config.entity, 'remain') }}%{% endif %} | |
| icon: | | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| mdi:printer-3d-nozzle | |
| {% elif is_state_attr(config.entity, 'empty', true) %} | |
| mdi:slash-forward | |
| {% elif is_state_attr(config.entity, 'color', "#00000000") %} | |
| mdi:help | |
| {% else %} | |
| mdi: | |
| {% endif %} | |
| layout: vertical | |
| multiline_secondary: true | |
| tap_action: | |
| action: more-info | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { height: 140px !important; } | |
| mushroom-card { } | |
| mushroom-state-item$: | | |
| div.container { justify-content: normal; } | |
| mushroom-state-info$: | | |
| .primary { | |
| white-space: pre-wrap!important; | |
| height: 60px; | |
| font-size: var(--card-secondary-font-size)!important; | |
| line-height: var(--card-secondary-line-height)!important; | |
| } | |
| mushroom-shape-icon$: | | |
| .shape { | |
| --filament-color: {{ state_attr(config.entity, 'color') }}; | |
| display: flex; | |
| box-shadow: 0 0 0 5px var(--shape-color) !important; | |
| {% if is_state_attr(config.entity, 'empty', true) or is_state_attr(config.entity, 'color', "#00000000") %} | |
| background: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 4 4"><rect width="5" height="5" fill="%23ffffff50" /><path d="M0,0V5H1V0zM2,0V5H3V0zM4,0V5H5V0zM0,0H5V1H0zM0,2H5V3H0zM0,4H5V5H0z" fill="%23aaaaaa50" fill-rule="evenodd"/></svg>'); | |
| background-color: white!important; | |
| --icon-color: white; | |
| {% else %} | |
| background-color: var(--filament-color)!important; | |
| --icon-color: var(--filament-color); | |
| {% endif %} | |
| border-radius: 50% !important; | |
| } | |
| ha-state-icon$: | | |
| @keyframes shake { | |
| 50% { | |
| transform: translate3d(4px, 0, 0); | |
| } | |
| } | |
| ha-icon { | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| animation: shake 0.2s infinite linear; | |
| {% endif %} | |
| filter: invert(1) grayscale(1) brightness(500%) opacity(0.5); | |
| } | |
| - type: custom:mushroom-template-card | |
| entity: sensor.p1s_ams_1_tray_3 | |
| primary: > | |
| {{ state_translated(config.entity) }}{% if | |
| is_state_attr(config.entity, "name", None) %} {{ | |
| state_attr(config.entity, 'type') }}{% endif %} | |
| secondary: | | |
| {% if state_attr(config.entity, 'remain') > -1 %}{{ | |
| state_attr(config.entity, 'remain') }}%{% endif %} | |
| icon: | | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| mdi:printer-3d-nozzle | |
| {% elif is_state_attr(config.entity, 'empty', true) %} | |
| mdi:slash-forward | |
| {% elif is_state_attr(config.entity, 'color', "#00000000") %} | |
| mdi:help | |
| {% else %} | |
| mdi: | |
| {% endif %} | |
| layout: vertical | |
| multiline_secondary: true | |
| tap_action: | |
| action: more-info | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { height: 140px !important; } | |
| mushroom-card { } | |
| mushroom-state-item$: | | |
| div.container { justify-content: normal; } | |
| mushroom-state-info$: | | |
| .primary { | |
| white-space: pre-wrap!important; | |
| height: 60px; | |
| font-size: var(--card-secondary-font-size)!important; | |
| line-height: var(--card-secondary-line-height)!important; | |
| } | |
| mushroom-shape-icon$: | | |
| .shape { | |
| --filament-color: {{ state_attr(config.entity, 'color') }}; | |
| display: flex; | |
| box-shadow: 0 0 0 5px var(--shape-color) !important; | |
| {% if is_state_attr(config.entity, 'empty', true) or is_state_attr(config.entity, 'color', "#00000000") %} | |
| background: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 4 4"><rect width="5" height="5" fill="%23ffffff50" /><path d="M0,0V5H1V0zM2,0V5H3V0zM4,0V5H5V0zM0,0H5V1H0zM0,2H5V3H0zM0,4H5V5H0z" fill="%23aaaaaa50" fill-rule="evenodd"/></svg>'); | |
| background-color: white!important; | |
| --icon-color: white; | |
| {% else %} | |
| background-color: var(--filament-color)!important; | |
| --icon-color: var(--filament-color); | |
| {% endif %} | |
| border-radius: 50% !important; | |
| } | |
| ha-state-icon$: | | |
| @keyframes shake { | |
| 50% { | |
| transform: translate3d(4px, 0, 0); | |
| } | |
| } | |
| ha-icon { | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| animation: shake 0.2s infinite linear; | |
| {% endif %} | |
| filter: invert(1) grayscale(1) brightness(500%) opacity(0.5); | |
| } | |
| - type: custom:mushroom-template-card | |
| entity: sensor.p1s_ams_1_tray_4 | |
| primary: > | |
| {{ state_translated(config.entity) }}{% if | |
| is_state_attr(config.entity, "name", None) %} {{ | |
| state_attr(config.entity, 'type') }}{% endif %} | |
| secondary: | | |
| {% if state_attr(config.entity, 'remain') > -1 %}{{ | |
| state_attr(config.entity, 'remain') }}%{% endif %} | |
| icon: | | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| mdi:printer-3d-nozzle | |
| {% elif is_state_attr(config.entity, 'empty', true) %} | |
| mdi:slash-forward | |
| {% elif is_state_attr(config.entity, 'color', "#00000000") %} | |
| mdi:help | |
| {% else %} | |
| mdi: | |
| {% endif %} | |
| layout: vertical | |
| multiline_secondary: true | |
| tap_action: | |
| action: more-info | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { height: 140px !important; } | |
| mushroom-card { } | |
| mushroom-state-item$: | | |
| div.container { justify-content: normal; } | |
| mushroom-state-info$: | | |
| .primary { | |
| white-space: pre-wrap!important; | |
| height: 60px; | |
| font-size: var(--card-secondary-font-size)!important; | |
| line-height: var(--card-secondary-line-height)!important; | |
| } | |
| mushroom-shape-icon$: | | |
| .shape { | |
| --filament-color: {{ state_attr(config.entity, 'color') }}; | |
| display: flex; | |
| box-shadow: 0 0 0 5px var(--shape-color) !important; | |
| {% if is_state_attr(config.entity, 'empty', true) or is_state_attr(config.entity, 'color', "#00000000") %} | |
| background: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 4 4"><rect width="5" height="5" fill="%23ffffff50" /><path d="M0,0V5H1V0zM2,0V5H3V0zM4,0V5H5V0zM0,0H5V1H0zM0,2H5V3H0zM0,4H5V5H0z" fill="%23aaaaaa50" fill-rule="evenodd"/></svg>'); | |
| background-color: white!important; | |
| --icon-color: white; | |
| {% else %} | |
| background-color: var(--filament-color)!important; | |
| --icon-color: var(--filament-color); | |
| {% endif %} | |
| border-radius: 50% !important; | |
| } | |
| ha-state-icon$: | | |
| @keyframes shake { | |
| 50% { | |
| transform: translate3d(4px, 0, 0); | |
| } | |
| } | |
| ha-icon { | |
| {% if is_state_attr(config.entity, "active", true) %} | |
| animation: shake 0.2s infinite linear; | |
| {% endif %} | |
| filter: invert(1) grayscale(1) brightness(500%) opacity(0.5); | |
| } | |
| grid_options: | |
| columns: 9 | |
| rows: auto | |
| visibility: | |
| - condition: state | |
| entity: input_boolean.enable_ha_bambulab_ams_spool_cards | |
| state: "off" | |
| - type: heading | |
| icon: fas:temperature-half | |
| heading: Temperatures | |
| heading_style: subtitle | |
| - type: custom:mini-graph-card | |
| name: Nozzle Temp. | |
| line_width: 7 | |
| font_size: 60 | |
| animate: true | |
| decimals: 1 | |
| points_per_hour: 60 | |
| unit: " " | |
| show: | |
| labels: false | |
| points: false | |
| state: true | |
| fill: false | |
| tap_action: | |
| action: none | |
| state_map: | |
| - value: "005" | |
| label: "Off" | |
| entities: | |
| - entity: sensor.p1s_nozzle_target_temperature | |
| name: Target | |
| state_adaptive_color: true | |
| show_state: true | |
| show_fill: true | |
| show_line: true | |
| font_size: 50 | |
| smooth: false | |
| - entity: sensor.p1s_nozzle_temperature | |
| name: Nozzle | |
| state_adaptive_color: true | |
| show_state: true | |
| show_fill: false | |
| hours_to_show: 6 | |
| grid_options: | |
| columns: 6 | |
| - type: custom:mini-graph-card | |
| name: Bed Temp. | |
| line_width: 7 | |
| font_size: 60 | |
| animate: true | |
| decimals: 1 | |
| points_per_hour: 60 | |
| unit: " " | |
| show: | |
| labels: false | |
| points: false | |
| state: true | |
| fill: false | |
| tap_action: | |
| action: none | |
| state_map: | |
| - value: "005" | |
| label: "Off" | |
| entities: | |
| - entity: sensor.p1s_bed_target_temperature | |
| name: Target | |
| state_adaptive_color: true | |
| show_state: true | |
| show_fill: true | |
| show_line: true | |
| font_size: 50 | |
| smooth: false | |
| - entity: sensor.p1s_bed_temperature | |
| name: Bed | |
| state_adaptive_color: true | |
| show_state: true | |
| show_fill: false | |
| hours_to_show: 6 | |
| grid_options: | |
| columns: 6 | |
| - type: grid | |
| cards: | |
| - type: heading | |
| icon: fas:temperature-half | |
| heading: Temperature History | |
| heading_style: subtitle | |
| - chart_type: line | |
| period: 5minute | |
| type: statistics-graph | |
| entities: | |
| - entity: sensor.p1s_nozzle_temperature | |
| name: Nozzle | |
| - entity: sensor.p1s_bed_temperature | |
| name: Bed | |
| - entity: sensor.p1s_chamber_multi_sensor_temperature | |
| name: Chamber | |
| - entity: sensor.p1s_ams_1_multi_sensor_temperature | |
| name: AMS | |
| stat_types: | |
| - mean | |
| days_to_show: 0.2 | |
| - type: heading | |
| icon: mdi:fan | |
| heading: Fans | |
| heading_style: subtitle | |
| - chart_type: line | |
| period: 5minute | |
| type: statistics-graph | |
| entities: | |
| - entity: sensor.p1s_aux_fan_speed | |
| name: Aux | |
| - entity: sensor.p1s_cooling_fan_speed | |
| name: Cooling | |
| - entity: sensor.p1s_chamber_fan_speed | |
| name: Chamber | |
| - entity: sensor.p1s_heatbreak_fan_speed | |
| name: Heat Break | |
| stat_types: | |
| - mean | |
| days_to_show: 0.2 | |
| logarithmic_scale: false | |
| - type: heading | |
| icon: fas:triangle-exclamation | |
| heading: Errors History | |
| heading_style: subtitle | |
| - type: custom:multiple-logbook-card | |
| entities: | |
| - entity: binary_sensor.p1s_print_error | |
| attributes: | |
| - value: code | |
| - value: error | |
| hidden_state: | |
| - "off" | |
| - unavailable | |
| - entity: binary_sensor.p1s_hms_errors | |
| attributes: | |
| - value: 1-Code | |
| label: Code | |
| - value: 1-Error | |
| label: Error | |
| - value: 1-Wiki | |
| label: Wiki | |
| type: url | |
| link_label: Click to visit | |
| - value: count | |
| hidden_state: | |
| - "off" | |
| - unavailable | |
| show: | |
| state: false | |
| duration: true | |
| start_date: true | |
| end_date: false | |
| icon: true | |
| separator: true | |
| entity_name: true | |
| custom_logs: false | |
| grid_options: | |
| columns: 12 | |
| subview: true | |
| cards: [] | |
| badges: [] | |
| top_margin: false | |
| header: | |
| layout: responsive | |
| badges_position: bottom |
| type: custom:stack-in-card | |
| horizontal: true | |
| cards: | |
| - type: custom:mushroom-template-card | |
| primary: | | |
| P1S - {{ state_translated("sensor.p1s_current_stage") }} | |
| secondary: "{{ state_translated(\"sensor.p1s_task_name\") }}" | |
| icon: none | |
| icon_color: blue | |
| layout: horizontal | |
| fill_container: false | |
| multiline_secondary: true | |
| tap_action: | |
| action: navigate | |
| navigation_path: /lovelace/p1s | |
| card_mod: | |
| style: | |
| .: | | |
| ha-card { | |
| dheight: 140px !important; | |
| --icon-size: 96px ; | |
| } | |
| mushroom-card { } | |
| mushroom-state-item$: | | |
| div.container { | |
| justify-content: normal; | |
| flex-direction: row-reverse; | |
| {% if (states("sensor.p1s_print_progress") | int) == 100 %} | |
| padding-bottom: 10px; | |
| {% else %} | |
| padding-bottom: 0px; | |
| {% endif %} | |
| } | |
| mushroom-state-info$: | | |
| .primary { | |
| white-space: pre-wrap!important; | |
| height: 45px; | |
| align-content: flex-end; | |
| color: green !important; | |
| font-size: 16px !important; | |
| } | |
| .secondary { | |
| } | |
| mushroom-shape-icon$: | | |
| .shape { | |
| display: flex; | |
| xbox-shadow: 0 0 0 5px var(--shape-color) !important; | |
| background: url("{{ state_attr('image.p1s_cover_image', 'entity_picture') }}"); | |
| background: | |
| center / contain no-repeat | |
| url("{{ state_attr('image.p1s_cover_image', 'entity_picture') }}"), | |
| linear-gradient(#999999, #444444); | |
| border-radius: 20% !important; | |
| } | |
| - type: custom:entity-progress-card | |
| entity: sensor.p1s_print_progress | |
| unit: "%" | |
| show_more_info: false | |
| bar_size: small | |
| bar_color: var(--green-color) | |
| layout: horizontal | |
| icon: none | |
| hide: | |
| - icon | |
| - name | |
| - secondary_info | |
| tap_action: | |
| action: navigate | |
| navigation_path: /lovelace/p1s | |
| card_mod: | |
| style: | | |
| ha-card { | |
| height: 10px; | |
| margin-top: 0px; | |
| margin-bottom: 0px; | |
| } | |
| visibility: | |
| - condition: numeric_state | |
| entity: sensor.p1s_print_progress | |
| below: 100 | |
| - type: markdown | |
| content: | | |
| <table width=100%> | |
| <tr> | |
| <td align=left valign=top> | |
| <font size=2>Time Left</font><br /> | |
| <strong> | |
| -{{ (states("sensor.p1s_remaining_time") | int/60) | int }}h{{states("sensor.p1s_remaining_time") | int % 60 }}m | |
| </strong> | |
| </td> | |
| <td align=left valign=top width=78> | |
| <font size=2>ETA</font><br /> | |
| <strong>{{ as_datetime(states("sensor.p1s_end_time")).strftime("%H:%M") }}</strong> | |
| <font size=1>{{ as_datetime(states("sensor.p1s_end_time")).strftime("%b%-d") }}</font> | |
| </td> | |
| </tr> | |
| </table> | |
| card_mod: | |
| style: | | |
| ha-markdown { | |
| padding-top: 0px !important; | |
| padding-bottom: 4px !important; | |
| padding-left: 10px !important; | |
| } | |
| navigate_to: /lovelace/p1s | |
| visibility: | |
| - condition: numeric_state | |
| entity: sensor.p1s_print_progress | |
| below: 100 | |
| grid_options: | |
| columns: 12 | |
| rows: auto |
Hey, is there a way to sort/reduce logbook failures, that are not really relevant?

In the docs i did not found some clever advice, at least, i have no working yaml yet.:
Multiple entities Logbook Card options
I think there is. check the hidden_state in the following example. it will hide when the 1-Code attribute has the value HMS_0C00_0300_0003_000B in binary_sensor.p1s_hms_errors
Or you can use state maps to change the icon and display some codes as "informational" maybe?
type: custom:multiple-logbook-card
entities:
- entity: binary_sensor.p1s_print_error
attributes:
- value: code
label: "Code: "
- value: error
label: "Error: "
hidden_state:
- "off"
- unavailable
- entity: binary_sensor.p1s_hms_errors
attributes:
- value: 1-Code
label: "Code:"
- value: 1-Error
label: "Error:"
- value: 1-Wiki
label: "Wiki:"
type: url
link_label: Click to visit
- value: count
hidden_state:
- "off"
- unavailable
- attribute:
name: "1-Code"
value: "HMS_0C00_0300_0003_000B"
show:
state: false
duration: true
start_date: true
end_date: false
icon: true
separator: true
entity_name: true
custom_logs: falsethanks - that was the solution!!
Help!
I'm having trouble with this part:
Code for this section looks like:
`
type: custom:stack-in-card
horizontal: true
cards:
-
type: markdown
content: >{{ states.sensor.frog_p1s_task_name.state [:60] }}Printed layers {{ states.sensor.frog_p1s_current_layer.state}}/{{states.sensor.frog_p1s_total_layer_count.state}} card_mod: style: .: | ha-card { position: absolute; top: 0px; } ha-markdown: $: | div { height: 135px; overflow: hidden; word-break: break-words; hyphens: auto!important; hyphenate-character: " "; } grid_options: columns: 6 rows: 3{{ states.sensor.frog_p1s_print_progress.state}}% {% if (states.sensor.frog_p1s_remaining_time.state | int) == 0 %} Success {% else %} -{{(states.sensor.frog_p1s_remaining_time.state | int/60) | int }}h{{ states.sensor.frog_p1s_remaining_time.state| int % 60 }}m {% endif %} -
type: custom:entity-progress-card
entity: sensor.frog_p1s_print_progress
unit: "%"
show_more_info: false
bar_size: small
bar_color: var(--green-color)
layout: horizontal
icon: none
hide:- icon
- name
- secondary_info
grid_options:
columns: 6
rows: 1
card_mod:
style: |
ha-card {
height: 100%;
align-content: end;
}
grid_options:
columns: 6
rows: 4
`
So, couple things here.
- The sensor states. How are they set up?
- Something is improperly configured. Have no idea what.
Thanks for any guidance
Sorry for the weird formatting.
chris
I got the card working, but am still looking for mere info on the sensor states.
Thank you!
Thank you very much. Works great! :)
Not sure why, but my Bambulab created entities with German entity names. So if someone else wants to save same time, here is the code with german entity names. You only need to change the printers name (mine is r2d2).