Created
June 7, 2024 13:53
-
-
Save dskvr/9775d1a4dcbd86e99c79b486be0b0af8 to your computer and use it in GitHub Desktop.
Bambu Lab P1S Lovelace Dashboard
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| type: vertical-stack | |
| cards: | |
| - type: horizontal-stack | |
| cards: | |
| - type: custom:mushroom-title-card | |
| title: Bambu Lab X1C | |
| alignment: start | |
| - type: custom:mod-card | |
| card: | |
| type: custom:mushroom-chips-card | |
| chips: | |
| - type: entity | |
| entity: button.p1s_stop_printing | |
| icon: mdi:stop | |
| content_info: false | |
| - type: entity | |
| entity: button.p1s_pause_printing | |
| icon: mdi:pause | |
| content_info: false | |
| - type: entity | |
| entity: button.p1s_resume_printing | |
| icon: mdi:play | |
| content_info: false | |
| card_mod: | |
| style: | | |
| ha-card { | |
| display: flex; | |
| justify-content: end; | |
| align-items: center; | |
| height: 80px; | |
| } | |
| - type: custom:mod-card | |
| card: | |
| camera_view: live | |
| type: picture-glance | |
| entities: [] | |
| camera_image: camera.p1s_camera | |
| - type: custom:mod-card | |
| card_mod: | |
| style: | |
| hui-horizontal-stack-card $: | | |
| div#root > :first-child { | |
| width: 20%; | |
| flex: auto; | |
| } | |
| div#root > :last-child { | |
| width: 80%; | |
| flex: auto; | |
| } | |
| card: | |
| type: horizontal-stack | |
| cards: | |
| - type: custom:mushroom-chips-card | |
| chips: | |
| - type: template | |
| entity: binary_sensor.p1s_online | |
| content: EXT. | |
| card_mod: | |
| style: | | |
| ha-card { | |
| background: none !important; | |
| border: none; | |
| font-size: 4rem !important; | |
| } | |
| - type: custom:mushroom-chips-card | |
| chips: | |
| - type: template | |
| entity: binary_sensor.p1s_online | |
| content: AMS | |
| card_mod: | |
| style: | | |
| ha-card { | |
| background: none !important; | |
| border: none; | |
| font-size: 4rem !important; | |
| } | |
| - type: spacer | |
| - type: entity | |
| entity: sensor.p1s_ams_1_temperature | |
| - type: entity | |
| entity: sensor.p1s_ams_1_humidity_index | |
| icon: mdi:water-opacity | |
| - type: custom:mod-card | |
| card_mod: | |
| style: | |
| hui-horizontal-stack-card $: | | |
| div#root > :first-child { | |
| width: 20%; | |
| flex: auto; | |
| } | |
| div#root > :last-child { | |
| width: 80%; | |
| flex: auto; | |
| } | |
| card: | |
| type: horizontal-stack | |
| cards: | |
| - type: custom:mod-card | |
| card_mod: | |
| style: | | |
| ha-card { | |
| font-size: 10px; | |
| --external_spool_color: {{state_attr('sensor.p1s_externalspool_external_spool', 'color') }}; | |
| --tray_1_color: {{state_attr('sensor.p1s_ams_1_tray_1', 'color') }}; | |
| --tray_2_color: {{state_attr('sensor.p1s_ams_1_tray_2', 'color') }}; | |
| --tray_3_color: {{state_attr('sensor.p1s_ams_1_tray_3', 'color') }}; | |
| --tray_4_color: {{state_attr('sensor.p1s_ams_1_tray_4', 'color') }}; | |
| --external_spool_bg: {% if is_state_attr('sensor.p1s_externalspool_external_spool', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| --tray_1_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_1', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| --tray_2_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_2', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| --tray_3_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_3', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| --tray_4_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_4', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| } | |
| card: | |
| card_mod: | |
| style: | | |
| .entities { | |
| align-items: start !important; | |
| } | |
| show_name: false | |
| show_icon: true | |
| show_state: true | |
| type: glance | |
| entities: | |
| - entity: sensor.p1s_externalspool_external_spool | |
| icon: mdi:circle-slice-8 | |
| card_mod: | |
| style: | | |
| :host { | |
| --paper-item-icon-color: var(--external_spool_color); | |
| } | |
| state-badge { | |
| background-color: var(--external_spool_bg); | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| - type: custom:mod-card | |
| card_mod: | |
| style: | | |
| ha-card { | |
| font-size: 10px; | |
| --external_spool_color: {{state_attr('sensor.p1s_externalspool_external_spool', 'color') }}; | |
| --tray_1_color: {{state_attr('sensor.p1s_ams_1_tray_1', 'color') }}; | |
| --tray_2_color: {{state_attr('sensor.p1s_ams_1_tray_2', 'color') }}; | |
| --tray_3_color: {{state_attr('sensor.p1s_ams_1_tray_3', 'color') }}; | |
| --tray_4_color: {{state_attr('sensor.p1s_ams_1_tray_4', 'color') }}; | |
| --external_spool_bg: {% if is_state_attr('sensor.p1s_externalspool_external_spool', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| --tray_1_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_1', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| --tray_2_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_2', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| --tray_3_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_3', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| --tray_4_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_4', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %}; | |
| } | |
| card: | |
| card_mod: | |
| style: | | |
| .entities { | |
| align-items: start !important; | |
| } | |
| show_name: false | |
| show_icon: true | |
| show_state: true | |
| type: glance | |
| entities: | |
| - entity: sensor.p1s_ams_1_tray_1 | |
| icon: mdi:circle-slice-8 | |
| card_mod: | |
| style: | | |
| :host { | |
| --paper-item-icon-color: var(--tray_1_color); | |
| } | |
| state-badge { | |
| background-color: var(--tray_1_bg); | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| - entity: sensor.p1s_ams_1_tray_2 | |
| icon: mdi:circle-slice-8 | |
| card_mod: | |
| style: | | |
| :host { | |
| --paper-item-icon-color: var(--tray_2_color); | |
| } | |
| state-badge { | |
| background-color: var(--tray_2_bg); | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| - entity: sensor.p1s_ams_1_tray_3 | |
| icon: mdi:circle-slice-8 | |
| card_mod: | |
| style: | | |
| :host { | |
| --paper-item-icon-color: var(--tray_3_color); | |
| } | |
| state-badge { | |
| background-color: var(--tray_3_bg); | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| - entity: sensor.p1s_ams_1_tray_4 | |
| icon: mdi:circle-slice-8 | |
| card_mod: | |
| style: | | |
| :host { | |
| --paper-item-icon-color: var(--tray_4_color); | |
| } | |
| state-badge { | |
| background-color: var(--tray_4_bg); | |
| border-radius: 50%; | |
| } | |
| div { | |
| white-space: unset !important; | |
| text-wrap: balance !important; | |
| } | |
| - type: custom:mod-card | |
| card: | |
| type: custom:mushroom-chips-card | |
| chips: | |
| - type: template | |
| entity: binary_sensor.p1s_online | |
| content: Printer | |
| card_mod: | |
| style: | | |
| ha-card { | |
| background: none !important; | |
| border: none; | |
| font-size: 4rem !important; | |
| } | |
| - type: spacer | |
| - type: entity | |
| entity: sensor.p1s_current_stage | |
| - type: light | |
| icon: mdi:lightbulb | |
| entity: light.p1s_chamber_light | |
| - type: entity | |
| entity: sensor.p1s_wi_fi_signal | |
| - type: entity | |
| entity: binary_sensor.p1s_hms_errors | |
| icon: mdi:alert-circle | |
| - type: custom:mod-card | |
| card: | |
| show_name: false | |
| show_icon: true | |
| show_state: true | |
| type: glance | |
| entities: | |
| - entity: sensor.p1s_nozzle_temperature | |
| icon: mdi:printer-3d-nozzle-heat | |
| - entity: sensor.p1s_bed_temperature | |
| icon: mdi:train-car-flatbed | |
| - entity: sensor.p1s_chamber_temperature | |
| icon: mdi:minus-box-outline | |
| - entity: sensor.p1s_speed_profile | |
| state_color: false | |
| - type: custom:mod-card | |
| card: | |
| type: custom:timer-bar-card | |
| entities: | |
| - entity: sensor.p1s_print_progress | |
| guess_mode: true | |
| active_icon: mdi:printer-3d | |
| start_time: | |
| entity: sensor.p1s_start_time | |
| end_time: | |
| entity: sensor.p1s_end_time | |
| layout: full_row | |
| text_width: 0px | |
| mushroom: null | |
| - type: custom:mushroom-chips-card | |
| chips: | |
| - type: entity | |
| entity: sensor.p1s_print_progress | |
| - type: entity | |
| entity: sensor.p1s_end_time | |
| alignment: justify |
Ok got it workin with 2 AMS units no external spool.
Also for the A1.
If anyone needs it please ask
Hallo odin6796
darf ich fragen, wie Du es geschafft hast?
Got it working with my P1P (upgraded to P1S) by replacing all P1/X1 references with p1p_xxxserialnumberxxx, probably because I am in LAN only mode. Except for the print progress bar, can't seem to get that working, it's just blank space.
WIth the P1S,my print progress bar is also not working, we need some help
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Need some help here if possible.....
I do not use the External Spool but I do have a second AMS on my P1S.
How can I add it?
type: custom:mod-card
card_mod:
style:
hui-horizontal-stack-card $: |
div#root > :first-child {
width: 20%;
flex: auto;
}
div#root > :last-child {
width: 80%;
flex: auto;
}
card:
type: horizontal-stack
cards:
- type: custom:mod-card
card_mod:
style: |
ha-card {
font-size: 10px;
--external_spool_color: {{state_attr('sensor.p1s_externalspool_external_spool', 'color') }};
--tray_1_color: {{state_attr('sensor.p1s_ams_1_tray_1', 'color') }};
--tray_2_color: {{state_attr('sensor.p1s_ams_1_tray_2', 'color') }};
--tray_3_color: {{state_attr('sensor.p1s_ams_1_tray_3', 'color') }};
--tray_4_color: {{state_attr('sensor.p1s_ams_1_tray_4', 'color') }};
--external_spool_bg: {% if is_state_attr('sensor.p1s_externalspool_external_spool', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
--tray_1_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_1', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
--tray_2_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_2', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
--tray_3_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_3', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
--tray_4_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_4', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
}
card:
card_mod:
style: |
.entities {
align-items: start !important;
}
show_name: false
show_icon: true
show_state: true
type: glance
entities:
- entity: sensor.p1s_externalspool_external_spool
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--external_spool_color);
}
state-badge {
background-color: var(--external_spool_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}
- type: custom:mod-card
card_mod:
style: |
ha-card {
font-size: 10px;
--external_spool_color: {{state_attr('sensor.p1s_externalspool_external_spool', 'color') }};
--tray_1_color: {{state_attr('sensor.p1s_ams_1_tray_1', 'color') }};
--tray_2_color: {{state_attr('sensor.p1s_ams_1_tray_2', 'color') }};
--tray_3_color: {{state_attr('sensor.p1s_ams_1_tray_3', 'color') }};
--tray_4_color: {{state_attr('sensor.p1s_ams_1_tray_4', 'color') }};
--external_spool_bg: {% if is_state_attr('sensor.p1s_externalspool_external_spool', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
--tray_1_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_1', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
--tray_2_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_2', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
--tray_3_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_3', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
--tray_4_bg: {% if is_state_attr('sensor.p1s_ams_1_tray_4', 'active', true) %} rgba(255,254,249, 0.25); {% else %} rgba(111,111,111, 0.2) {% endif %};
}
card:
card_mod:
style: |
.entities {
align-items: start !important;
}
show_name: false
show_icon: true
show_state: true
type: glance
entities:
- entity: sensor.p1s_ams_1_tray_1
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--tray_1_color);
}
state-badge {
background-color: var(--tray_1_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}
- entity: sensor.p1s_ams_1_tray_2
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--tray_2_color);
}
state-badge {
background-color: var(--tray_2_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}
- entity: sensor.p1s_ams_1_tray_3
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--tray_3_color);
}
state-badge {
background-color: var(--tray_3_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}
- entity: sensor.p1s_ams_1_tray_4
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--tray_4_color);
}
state-badge {
background-color: var(--tray_4_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}
card:
card_mod:
style: |
.entities {
align-items: start !important;
}
show_name: false
show_icon: true
show_state: true
type: glance
entities:
- entity: sensor.p1s_ams_2_tray_1
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--tray_1B_color);
}
state-badge {
background-color: var(--tray_1B_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}
- entity: sensor.p1s_ams_2_tray_2
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--tray_2B_color);
}
state-badge {
background-color: var(--tray_2B_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}
- entity: sensor.p1s_ams_2_tray_3
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--tray_3B_color);
}
state-badge {
background-color: var(--tray_3B_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}
- entity: sensor.p1s_ams_2_tray_4
icon: mdi:circle-slice-8
card_mod:
style: |
:host {
--paper-item-icon-color: var(--tray_4B_color);
}
state-badge {
background-color: var(--tray_4B_bg);
border-radius: 50%;
}
div {
white-space: unset !important;
text-wrap: balance !important;
}