# AUTO-GENERATED by bambu-display/generate.py. Edit printers.yaml or generate.py. sensor: - platform: homeassistant id: prints_charming_progress entity_id: sensor.p1s_01p09c470102673_print_progress internal: true - platform: homeassistant id: prints_charming_nozzle entity_id: sensor.p1s_01p09c470102673_nozzle_temperature internal: true - platform: homeassistant id: prints_charming_nozzle_target entity_id: sensor.p1s_01p09c470102673_nozzle_target_temperature internal: true - platform: homeassistant id: prints_charming_bed entity_id: sensor.p1s_01p09c470102673_bed_temperature internal: true - platform: homeassistant id: prints_charming_bed_target entity_id: sensor.p1s_01p09c470102673_bed_target_temperature internal: true - platform: homeassistant id: prints_charming_time_left entity_id: sensor.p1s_01p09c470102673_remaining_time internal: true - platform: homeassistant id: prints_charming_layer entity_id: sensor.p1s_01p09c470102673_current_layer internal: true - platform: homeassistant id: prints_charming_total_layers entity_id: sensor.p1s_01p09c470102673_total_layer_count internal: true - platform: homeassistant id: prints_charming_fan entity_id: sensor.p1s_01p09c470102673_cooling_fan_speed internal: true - platform: homeassistant id: prints_charming_aux_fan entity_id: sensor.p1s_01p09c470102673_aux_fan_speed internal: true - platform: homeassistant id: prints_charming_exhaust_fan entity_id: sensor.p1s_01p09c470102673_chamber_fan_speed internal: true - platform: homeassistant id: polly_pocket_progress entity_id: sensor.a1mini_0309ca580403653_print_progress internal: true - platform: homeassistant id: polly_pocket_nozzle entity_id: sensor.a1mini_0309ca580403653_nozzle_temperature internal: true - platform: homeassistant id: polly_pocket_nozzle_target entity_id: sensor.a1mini_0309ca580403653_nozzle_target_temperature internal: true - platform: homeassistant id: polly_pocket_bed entity_id: sensor.a1mini_0309ca580403653_bed_temperature internal: true - platform: homeassistant id: polly_pocket_bed_target entity_id: sensor.a1mini_0309ca580403653_bed_target_temperature internal: true - platform: homeassistant id: polly_pocket_time_left entity_id: sensor.a1mini_0309ca580403653_remaining_time internal: true - platform: homeassistant id: polly_pocket_layer entity_id: sensor.a1mini_0309ca580403653_current_layer internal: true - platform: homeassistant id: polly_pocket_total_layers entity_id: sensor.a1mini_0309ca580403653_total_layer_count internal: true - platform: homeassistant id: polly_pocket_fan entity_id: sensor.a1mini_0309ca580403653_cooling_fan_speed internal: true - platform: homeassistant id: ds_turd_flinger_progress entity_id: sensor.a1_03919d540806387_print_progress internal: true - platform: homeassistant id: ds_turd_flinger_nozzle entity_id: sensor.a1_03919d540806387_nozzle_temperature internal: true - platform: homeassistant id: ds_turd_flinger_nozzle_target entity_id: sensor.a1_03919d540806387_nozzle_target_temperature internal: true - platform: homeassistant id: ds_turd_flinger_bed entity_id: sensor.a1_03919d540806387_bed_temperature internal: true - platform: homeassistant id: ds_turd_flinger_bed_target entity_id: sensor.a1_03919d540806387_bed_target_temperature internal: true - platform: homeassistant id: ds_turd_flinger_time_left entity_id: sensor.a1_03919d540806387_remaining_time internal: true - platform: homeassistant id: ds_turd_flinger_layer entity_id: sensor.a1_03919d540806387_current_layer internal: true - platform: homeassistant id: ds_turd_flinger_total_layers entity_id: sensor.a1_03919d540806387_total_layer_count internal: true - platform: homeassistant id: ds_turd_flinger_fan entity_id: sensor.a1_03919d540806387_cooling_fan_speed internal: true - platform: homeassistant id: jordyns_layer_slayer_progress entity_id: sensor.jordyns_layer_slayer_print_progress internal: true - platform: homeassistant id: jordyns_layer_slayer_nozzle entity_id: sensor.jordyns_layer_slayer_nozzle_temperature internal: true - platform: homeassistant id: jordyns_layer_slayer_nozzle_target entity_id: sensor.jordyns_layer_slayer_nozzle_target_temperature internal: true - platform: homeassistant id: jordyns_layer_slayer_bed entity_id: sensor.jordyns_layer_slayer_bed_temperature internal: true - platform: homeassistant id: jordyns_layer_slayer_bed_target entity_id: sensor.jordyns_layer_slayer_bed_target_temperature internal: true - platform: homeassistant id: jordyns_layer_slayer_time_left entity_id: sensor.jordyns_layer_slayer_remaining_time internal: true - platform: homeassistant id: jordyns_layer_slayer_layer entity_id: sensor.jordyns_layer_slayer_current_layer internal: true - platform: homeassistant id: jordyns_layer_slayer_total_layers entity_id: sensor.jordyns_layer_slayer_total_layer_count internal: true - platform: homeassistant id: jordyns_layer_slayer_fan entity_id: sensor.jordyns_layer_slayer_cooling_fan_speed internal: true - platform: homeassistant id: constipation_orion_progress entity_id: sensor.constipation_orion_print_progress internal: true - platform: homeassistant id: constipation_orion_nozzle entity_id: sensor.constipation_orion_nozzle_temperature internal: true - platform: homeassistant id: constipation_orion_nozzle_target entity_id: sensor.constipation_orion_nozzle_target_temperature internal: true - platform: homeassistant id: constipation_orion_bed entity_id: sensor.constipation_orion_bed_temperature internal: true - platform: homeassistant id: constipation_orion_bed_target entity_id: sensor.constipation_orion_bed_target_temperature internal: true - platform: homeassistant id: constipation_orion_time_left entity_id: sensor.constipation_orion_remaining_time internal: true - platform: homeassistant id: constipation_orion_layer entity_id: sensor.constipation_orion_current_layer internal: true - platform: homeassistant id: constipation_orion_total_layers entity_id: sensor.constipation_orion_total_layer_count internal: true - platform: homeassistant id: constipation_orion_fan entity_id: sensor.constipation_orion_cooling_fan_speed internal: true - platform: homeassistant id: constipation_orion_left_nozzle entity_id: sensor.constipation_orion_left_nozzle_temperature internal: true - platform: homeassistant id: constipation_orion_left_target entity_id: sensor.constipation_orion_left_nozzle_target_temperature internal: true - platform: homeassistant id: constipation_orion_right_nozzle entity_id: sensor.constipation_orion_right_nozzle_temperature internal: true - platform: homeassistant id: constipation_orion_right_target entity_id: sensor.constipation_orion_right_nozzle_target_temperature internal: true - platform: homeassistant id: constipation_orion_exhaust_fan entity_id: sensor.constipation_orion_chamber_fan_speed internal: true - platform: homeassistant id: centauri_carbon_progress entity_id: sensor.centauri_carbon_percent_complete internal: true - platform: homeassistant id: centauri_carbon_time_left entity_id: sensor.centauri_carbon_remaining_print_time internal: true - platform: homeassistant id: centauri_carbon_layer entity_id: sensor.centauri_carbon_current_layer internal: true - platform: homeassistant id: centauri_carbon_total_layers entity_id: sensor.centauri_carbon_total_layers internal: true - platform: homeassistant id: centauri_carbon_nozzle entity_id: sensor.centauri_carbon_nozzle_temperature internal: true - platform: homeassistant id: centauri_carbon_bed entity_id: sensor.centauri_carbon_bed_temperature internal: true - platform: homeassistant id: centauri_carbon_nozzle_target entity_id: number.centauri_carbon_target_nozzle_temp internal: true - platform: homeassistant id: centauri_carbon_bed_target entity_id: number.centauri_carbon_target_bed_temp internal: true - platform: homeassistant id: centauri_carbon_fan entity_id: sensor.centauri_carbon_model_fan_speed internal: true - platform: homeassistant id: centauri_carbon_aux_fan entity_id: sensor.centauri_carbon_auxiliary_fan_speed internal: true - platform: homeassistant id: centauri_carbon_exhaust_fan entity_id: sensor.centauri_carbon_enclosure_fan_speed internal: true - platform: homeassistant id: saturn_progress entity_id: sensor.saturn_percent_complete internal: true - platform: homeassistant id: saturn_time_left entity_id: sensor.saturn_remaining_print_time internal: true - platform: homeassistant id: saturn_layer entity_id: sensor.saturn_current_layer internal: true - platform: homeassistant id: saturn_total_layers entity_id: sensor.saturn_total_layers internal: true - platform: homeassistant id: saturn_uv entity_id: sensor.saturn_uv_led_temp internal: true - platform: homeassistant id: saturn_elapsed entity_id: sensor.saturn_current_print_time internal: true text_sensor: - platform: homeassistant id: prints_charming_status entity_id: sensor.p1s_01p09c470102673_print_status internal: true - platform: homeassistant id: prints_charming_task entity_id: sensor.p1s_01p09c470102673_task_name internal: true - platform: homeassistant id: prints_charming_stage entity_id: sensor.p1s_01p09c470102673_current_stage internal: true - platform: homeassistant id: prints_charming_online entity_id: binary_sensor.p1s_01p09c470102673_online internal: true - platform: homeassistant id: prints_charming_print_error entity_id: binary_sensor.p1s_01p09c470102673_print_error internal: true - platform: homeassistant id: prints_charming_hms_error entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true - platform: homeassistant id: prints_charming_hms_count entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: Count - platform: homeassistant id: prints_charming_hms_1_message entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 1-Error - platform: homeassistant id: prints_charming_hms_1_code entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 1-Code - platform: homeassistant id: prints_charming_hms_1_severity entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 1-Severity - platform: homeassistant id: prints_charming_hms_2_message entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 2-Error - platform: homeassistant id: prints_charming_hms_2_code entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 2-Code - platform: homeassistant id: prints_charming_hms_2_severity entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 2-Severity - platform: homeassistant id: prints_charming_hms_3_message entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 3-Error - platform: homeassistant id: prints_charming_hms_3_code entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 3-Code - platform: homeassistant id: prints_charming_hms_3_severity entity_id: binary_sensor.p1s_01p09c470102673_hms_errors internal: true attribute: 3-Severity - platform: homeassistant id: prints_charming_print_error_message entity_id: binary_sensor.p1s_01p09c470102673_print_error internal: true attribute: error - platform: homeassistant id: prints_charming_print_error_code entity_id: binary_sensor.p1s_01p09c470102673_print_error internal: true attribute: code - platform: homeassistant id: prints_charming_remaining_unit entity_id: sensor.p1s_01p09c470102673_remaining_time internal: true attribute: unit_of_measurement - platform: homeassistant id: prints_charming_nozzle_unit entity_id: sensor.p1s_01p09c470102673_nozzle_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: prints_charming_bed_unit entity_id: sensor.p1s_01p09c470102673_bed_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: prints_charming_tray_0_type entity_id: sensor.p1s_01p09c470102673_ams_1_tray_1 internal: true attribute: type - platform: homeassistant id: prints_charming_tray_0_color entity_id: sensor.p1s_01p09c470102673_ams_1_tray_1 internal: true attribute: color - platform: homeassistant id: prints_charming_tray_0_active entity_id: sensor.p1s_01p09c470102673_ams_1_tray_1 internal: true attribute: active - platform: homeassistant id: prints_charming_tray_1_type entity_id: sensor.p1s_01p09c470102673_ams_1_tray_2 internal: true attribute: type - platform: homeassistant id: prints_charming_tray_1_color entity_id: sensor.p1s_01p09c470102673_ams_1_tray_2 internal: true attribute: color - platform: homeassistant id: prints_charming_tray_1_active entity_id: sensor.p1s_01p09c470102673_ams_1_tray_2 internal: true attribute: active - platform: homeassistant id: prints_charming_tray_2_type entity_id: sensor.p1s_01p09c470102673_ams_1_tray_3 internal: true attribute: type - platform: homeassistant id: prints_charming_tray_2_color entity_id: sensor.p1s_01p09c470102673_ams_1_tray_3 internal: true attribute: color - platform: homeassistant id: prints_charming_tray_2_active entity_id: sensor.p1s_01p09c470102673_ams_1_tray_3 internal: true attribute: active - platform: homeassistant id: prints_charming_tray_3_type entity_id: sensor.p1s_01p09c470102673_ams_1_tray_4 internal: true attribute: type - platform: homeassistant id: prints_charming_tray_3_color entity_id: sensor.p1s_01p09c470102673_ams_1_tray_4 internal: true attribute: color - platform: homeassistant id: prints_charming_tray_3_active entity_id: sensor.p1s_01p09c470102673_ams_1_tray_4 internal: true attribute: active - platform: homeassistant id: prints_charming_tray_4_type entity_id: sensor.p1s_01p09c470102673_ams_2_tray_1 internal: true attribute: type - platform: homeassistant id: prints_charming_tray_4_color entity_id: sensor.p1s_01p09c470102673_ams_2_tray_1 internal: true attribute: color - platform: homeassistant id: prints_charming_tray_4_active entity_id: sensor.p1s_01p09c470102673_ams_2_tray_1 internal: true attribute: active - platform: homeassistant id: prints_charming_tray_5_type entity_id: sensor.p1s_01p09c470102673_ams_2_tray_2 internal: true attribute: type - platform: homeassistant id: prints_charming_tray_5_color entity_id: sensor.p1s_01p09c470102673_ams_2_tray_2 internal: true attribute: color - platform: homeassistant id: prints_charming_tray_5_active entity_id: sensor.p1s_01p09c470102673_ams_2_tray_2 internal: true attribute: active - platform: homeassistant id: prints_charming_tray_6_type entity_id: sensor.p1s_01p09c470102673_ams_2_tray_3 internal: true attribute: type - platform: homeassistant id: prints_charming_tray_6_color entity_id: sensor.p1s_01p09c470102673_ams_2_tray_3 internal: true attribute: color - platform: homeassistant id: prints_charming_tray_6_active entity_id: sensor.p1s_01p09c470102673_ams_2_tray_3 internal: true attribute: active - platform: homeassistant id: prints_charming_tray_7_type entity_id: sensor.p1s_01p09c470102673_ams_2_tray_4 internal: true attribute: type - platform: homeassistant id: prints_charming_tray_7_color entity_id: sensor.p1s_01p09c470102673_ams_2_tray_4 internal: true attribute: color - platform: homeassistant id: prints_charming_tray_7_active entity_id: sensor.p1s_01p09c470102673_ams_2_tray_4 internal: true attribute: active - platform: homeassistant id: polly_pocket_status entity_id: sensor.a1mini_0309ca580403653_print_status internal: true - platform: homeassistant id: polly_pocket_task entity_id: sensor.a1mini_0309ca580403653_task_name internal: true - platform: homeassistant id: polly_pocket_stage entity_id: sensor.a1mini_0309ca580403653_current_stage internal: true - platform: homeassistant id: polly_pocket_online entity_id: binary_sensor.a1mini_0309ca580403653_online internal: true - platform: homeassistant id: polly_pocket_print_error entity_id: binary_sensor.a1mini_0309ca580403653_print_error internal: true - platform: homeassistant id: polly_pocket_hms_error entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true - platform: homeassistant id: polly_pocket_hms_count entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: Count - platform: homeassistant id: polly_pocket_hms_1_message entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 1-Error - platform: homeassistant id: polly_pocket_hms_1_code entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 1-Code - platform: homeassistant id: polly_pocket_hms_1_severity entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 1-Severity - platform: homeassistant id: polly_pocket_hms_2_message entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 2-Error - platform: homeassistant id: polly_pocket_hms_2_code entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 2-Code - platform: homeassistant id: polly_pocket_hms_2_severity entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 2-Severity - platform: homeassistant id: polly_pocket_hms_3_message entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 3-Error - platform: homeassistant id: polly_pocket_hms_3_code entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 3-Code - platform: homeassistant id: polly_pocket_hms_3_severity entity_id: binary_sensor.a1mini_0309ca580403653_hms_errors internal: true attribute: 3-Severity - platform: homeassistant id: polly_pocket_print_error_message entity_id: binary_sensor.a1mini_0309ca580403653_print_error internal: true attribute: error - platform: homeassistant id: polly_pocket_print_error_code entity_id: binary_sensor.a1mini_0309ca580403653_print_error internal: true attribute: code - platform: homeassistant id: polly_pocket_remaining_unit entity_id: sensor.a1mini_0309ca580403653_remaining_time internal: true attribute: unit_of_measurement - platform: homeassistant id: polly_pocket_nozzle_unit entity_id: sensor.a1mini_0309ca580403653_nozzle_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: polly_pocket_bed_unit entity_id: sensor.a1mini_0309ca580403653_bed_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: polly_pocket_tray_0_type entity_id: sensor.a1mini_0309ca580403653_externalspool_external_spool internal: true attribute: type - platform: homeassistant id: polly_pocket_tray_0_color entity_id: sensor.a1mini_0309ca580403653_externalspool_external_spool internal: true attribute: color - platform: homeassistant id: polly_pocket_tray_0_active entity_id: sensor.a1mini_0309ca580403653_externalspool_external_spool internal: true attribute: active - platform: homeassistant id: ds_turd_flinger_status entity_id: sensor.a1_03919d540806387_print_status internal: true - platform: homeassistant id: ds_turd_flinger_task entity_id: sensor.a1_03919d540806387_task_name internal: true - platform: homeassistant id: ds_turd_flinger_stage entity_id: sensor.a1_03919d540806387_current_stage internal: true - platform: homeassistant id: ds_turd_flinger_online entity_id: binary_sensor.a1_03919d540806387_online internal: true - platform: homeassistant id: ds_turd_flinger_print_error entity_id: binary_sensor.a1_03919d540806387_print_error internal: true - platform: homeassistant id: ds_turd_flinger_hms_error entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true - platform: homeassistant id: ds_turd_flinger_hms_count entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: Count - platform: homeassistant id: ds_turd_flinger_hms_1_message entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 1-Error - platform: homeassistant id: ds_turd_flinger_hms_1_code entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 1-Code - platform: homeassistant id: ds_turd_flinger_hms_1_severity entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 1-Severity - platform: homeassistant id: ds_turd_flinger_hms_2_message entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 2-Error - platform: homeassistant id: ds_turd_flinger_hms_2_code entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 2-Code - platform: homeassistant id: ds_turd_flinger_hms_2_severity entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 2-Severity - platform: homeassistant id: ds_turd_flinger_hms_3_message entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 3-Error - platform: homeassistant id: ds_turd_flinger_hms_3_code entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 3-Code - platform: homeassistant id: ds_turd_flinger_hms_3_severity entity_id: binary_sensor.a1_03919d540806387_hms_errors internal: true attribute: 3-Severity - platform: homeassistant id: ds_turd_flinger_print_error_message entity_id: binary_sensor.a1_03919d540806387_print_error internal: true attribute: error - platform: homeassistant id: ds_turd_flinger_print_error_code entity_id: binary_sensor.a1_03919d540806387_print_error internal: true attribute: code - platform: homeassistant id: ds_turd_flinger_remaining_unit entity_id: sensor.a1_03919d540806387_remaining_time internal: true attribute: unit_of_measurement - platform: homeassistant id: ds_turd_flinger_nozzle_unit entity_id: sensor.a1_03919d540806387_nozzle_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: ds_turd_flinger_bed_unit entity_id: sensor.a1_03919d540806387_bed_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: ds_turd_flinger_tray_0_type entity_id: sensor.a1_03919d540806387_ams_1_tray_1 internal: true attribute: type - platform: homeassistant id: ds_turd_flinger_tray_0_color entity_id: sensor.a1_03919d540806387_ams_1_tray_1 internal: true attribute: color - platform: homeassistant id: ds_turd_flinger_tray_0_active entity_id: sensor.a1_03919d540806387_ams_1_tray_1 internal: true attribute: active - platform: homeassistant id: ds_turd_flinger_tray_1_type entity_id: sensor.a1_03919d540806387_ams_1_tray_2 internal: true attribute: type - platform: homeassistant id: ds_turd_flinger_tray_1_color entity_id: sensor.a1_03919d540806387_ams_1_tray_2 internal: true attribute: color - platform: homeassistant id: ds_turd_flinger_tray_1_active entity_id: sensor.a1_03919d540806387_ams_1_tray_2 internal: true attribute: active - platform: homeassistant id: ds_turd_flinger_tray_2_type entity_id: sensor.a1_03919d540806387_ams_1_tray_3 internal: true attribute: type - platform: homeassistant id: ds_turd_flinger_tray_2_color entity_id: sensor.a1_03919d540806387_ams_1_tray_3 internal: true attribute: color - platform: homeassistant id: ds_turd_flinger_tray_2_active entity_id: sensor.a1_03919d540806387_ams_1_tray_3 internal: true attribute: active - platform: homeassistant id: ds_turd_flinger_tray_3_type entity_id: sensor.a1_03919d540806387_ams_1_tray_4 internal: true attribute: type - platform: homeassistant id: ds_turd_flinger_tray_3_color entity_id: sensor.a1_03919d540806387_ams_1_tray_4 internal: true attribute: color - platform: homeassistant id: ds_turd_flinger_tray_3_active entity_id: sensor.a1_03919d540806387_ams_1_tray_4 internal: true attribute: active - platform: homeassistant id: jordyns_layer_slayer_status entity_id: sensor.jordyns_layer_slayer_print_status internal: true - platform: homeassistant id: jordyns_layer_slayer_task entity_id: sensor.jordyns_layer_slayer_task_name internal: true - platform: homeassistant id: jordyns_layer_slayer_stage entity_id: sensor.jordyns_layer_slayer_current_stage internal: true - platform: homeassistant id: jordyns_layer_slayer_online entity_id: binary_sensor.jordyns_layer_slayer_online internal: true - platform: homeassistant id: jordyns_layer_slayer_print_error entity_id: binary_sensor.jordyns_layer_slayer_print_error internal: true - platform: homeassistant id: jordyns_layer_slayer_hms_error entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true - platform: homeassistant id: jordyns_layer_slayer_hms_count entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: Count - platform: homeassistant id: jordyns_layer_slayer_hms_1_message entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 1-Error - platform: homeassistant id: jordyns_layer_slayer_hms_1_code entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 1-Code - platform: homeassistant id: jordyns_layer_slayer_hms_1_severity entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 1-Severity - platform: homeassistant id: jordyns_layer_slayer_hms_2_message entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 2-Error - platform: homeassistant id: jordyns_layer_slayer_hms_2_code entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 2-Code - platform: homeassistant id: jordyns_layer_slayer_hms_2_severity entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 2-Severity - platform: homeassistant id: jordyns_layer_slayer_hms_3_message entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 3-Error - platform: homeassistant id: jordyns_layer_slayer_hms_3_code entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 3-Code - platform: homeassistant id: jordyns_layer_slayer_hms_3_severity entity_id: binary_sensor.jordyns_layer_slayer_hms_errors internal: true attribute: 3-Severity - platform: homeassistant id: jordyns_layer_slayer_print_error_message entity_id: binary_sensor.jordyns_layer_slayer_print_error internal: true attribute: error - platform: homeassistant id: jordyns_layer_slayer_print_error_code entity_id: binary_sensor.jordyns_layer_slayer_print_error internal: true attribute: code - platform: homeassistant id: jordyns_layer_slayer_remaining_unit entity_id: sensor.jordyns_layer_slayer_remaining_time internal: true attribute: unit_of_measurement - platform: homeassistant id: jordyns_layer_slayer_nozzle_unit entity_id: sensor.jordyns_layer_slayer_nozzle_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: jordyns_layer_slayer_bed_unit entity_id: sensor.jordyns_layer_slayer_bed_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: jordyns_layer_slayer_tray_0_type entity_id: sensor.jordyns_layer_slayer_ams_tray_1 internal: true attribute: type - platform: homeassistant id: jordyns_layer_slayer_tray_0_color entity_id: sensor.jordyns_layer_slayer_ams_tray_1 internal: true attribute: color - platform: homeassistant id: jordyns_layer_slayer_tray_0_active entity_id: sensor.jordyns_layer_slayer_ams_tray_1 internal: true attribute: active - platform: homeassistant id: jordyns_layer_slayer_tray_1_type entity_id: sensor.jordyns_layer_slayer_ams_tray_2 internal: true attribute: type - platform: homeassistant id: jordyns_layer_slayer_tray_1_color entity_id: sensor.jordyns_layer_slayer_ams_tray_2 internal: true attribute: color - platform: homeassistant id: jordyns_layer_slayer_tray_1_active entity_id: sensor.jordyns_layer_slayer_ams_tray_2 internal: true attribute: active - platform: homeassistant id: jordyns_layer_slayer_tray_2_type entity_id: sensor.jordyns_layer_slayer_ams_tray_3 internal: true attribute: type - platform: homeassistant id: jordyns_layer_slayer_tray_2_color entity_id: sensor.jordyns_layer_slayer_ams_tray_3 internal: true attribute: color - platform: homeassistant id: jordyns_layer_slayer_tray_2_active entity_id: sensor.jordyns_layer_slayer_ams_tray_3 internal: true attribute: active - platform: homeassistant id: jordyns_layer_slayer_tray_3_type entity_id: sensor.jordyns_layer_slayer_ams_tray_4 internal: true attribute: type - platform: homeassistant id: jordyns_layer_slayer_tray_3_color entity_id: sensor.jordyns_layer_slayer_ams_tray_4 internal: true attribute: color - platform: homeassistant id: jordyns_layer_slayer_tray_3_active entity_id: sensor.jordyns_layer_slayer_ams_tray_4 internal: true attribute: active - platform: homeassistant id: constipation_orion_status entity_id: sensor.constipation_orion_print_status internal: true - platform: homeassistant id: constipation_orion_task entity_id: sensor.constipation_orion_task_name internal: true - platform: homeassistant id: constipation_orion_stage entity_id: sensor.constipation_orion_current_stage internal: true - platform: homeassistant id: constipation_orion_online entity_id: binary_sensor.constipation_orion_online internal: true - platform: homeassistant id: constipation_orion_print_error entity_id: binary_sensor.constipation_orion_print_error internal: true - platform: homeassistant id: constipation_orion_hms_error entity_id: binary_sensor.constipation_orion_hms_errors internal: true - platform: homeassistant id: constipation_orion_hms_count entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: Count - platform: homeassistant id: constipation_orion_hms_1_message entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 1-Error - platform: homeassistant id: constipation_orion_hms_1_code entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 1-Code - platform: homeassistant id: constipation_orion_hms_1_severity entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 1-Severity - platform: homeassistant id: constipation_orion_hms_2_message entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 2-Error - platform: homeassistant id: constipation_orion_hms_2_code entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 2-Code - platform: homeassistant id: constipation_orion_hms_2_severity entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 2-Severity - platform: homeassistant id: constipation_orion_hms_3_message entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 3-Error - platform: homeassistant id: constipation_orion_hms_3_code entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 3-Code - platform: homeassistant id: constipation_orion_hms_3_severity entity_id: binary_sensor.constipation_orion_hms_errors internal: true attribute: 3-Severity - platform: homeassistant id: constipation_orion_print_error_message entity_id: binary_sensor.constipation_orion_print_error internal: true attribute: error - platform: homeassistant id: constipation_orion_print_error_code entity_id: binary_sensor.constipation_orion_print_error internal: true attribute: code - platform: homeassistant id: constipation_orion_remaining_unit entity_id: sensor.constipation_orion_remaining_time internal: true attribute: unit_of_measurement - platform: homeassistant id: constipation_orion_nozzle_unit entity_id: sensor.constipation_orion_nozzle_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: constipation_orion_bed_unit entity_id: sensor.constipation_orion_bed_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: constipation_orion_tray_0_type entity_id: sensor.constipation_orion_ams_1_tray_1 internal: true attribute: type - platform: homeassistant id: constipation_orion_tray_0_color entity_id: sensor.constipation_orion_ams_1_tray_1 internal: true attribute: color - platform: homeassistant id: constipation_orion_tray_0_active entity_id: sensor.constipation_orion_ams_1_tray_1 internal: true attribute: active - platform: homeassistant id: constipation_orion_tray_1_type entity_id: sensor.constipation_orion_ams_1_tray_2 internal: true attribute: type - platform: homeassistant id: constipation_orion_tray_1_color entity_id: sensor.constipation_orion_ams_1_tray_2 internal: true attribute: color - platform: homeassistant id: constipation_orion_tray_1_active entity_id: sensor.constipation_orion_ams_1_tray_2 internal: true attribute: active - platform: homeassistant id: constipation_orion_tray_2_type entity_id: sensor.constipation_orion_ams_1_tray_3 internal: true attribute: type - platform: homeassistant id: constipation_orion_tray_2_color entity_id: sensor.constipation_orion_ams_1_tray_3 internal: true attribute: color - platform: homeassistant id: constipation_orion_tray_2_active entity_id: sensor.constipation_orion_ams_1_tray_3 internal: true attribute: active - platform: homeassistant id: constipation_orion_tray_3_type entity_id: sensor.constipation_orion_ams_1_tray_4 internal: true attribute: type - platform: homeassistant id: constipation_orion_tray_3_color entity_id: sensor.constipation_orion_ams_1_tray_4 internal: true attribute: color - platform: homeassistant id: constipation_orion_tray_3_active entity_id: sensor.constipation_orion_ams_1_tray_4 internal: true attribute: active - platform: homeassistant id: constipation_orion_tray_4_type entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_1 internal: true attribute: type - platform: homeassistant id: constipation_orion_tray_4_color entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_1 internal: true attribute: color - platform: homeassistant id: constipation_orion_tray_4_active entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_1 internal: true attribute: active - platform: homeassistant id: constipation_orion_tray_5_type entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_2 internal: true attribute: type - platform: homeassistant id: constipation_orion_tray_5_color entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_2 internal: true attribute: color - platform: homeassistant id: constipation_orion_tray_5_active entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_2 internal: true attribute: active - platform: homeassistant id: constipation_orion_tray_6_type entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_3 internal: true attribute: type - platform: homeassistant id: constipation_orion_tray_6_color entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_3 internal: true attribute: color - platform: homeassistant id: constipation_orion_tray_6_active entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_3 internal: true attribute: active - platform: homeassistant id: constipation_orion_tray_7_type entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_4 internal: true attribute: type - platform: homeassistant id: constipation_orion_tray_7_color entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_4 internal: true attribute: color - platform: homeassistant id: constipation_orion_tray_7_active entity_id: sensor.h2c_31b8ap5a2200288_ams_2_tray_4 internal: true attribute: active - platform: homeassistant id: centauri_carbon_status entity_id: sensor.centauri_carbon_print_status internal: true - platform: homeassistant id: centauri_carbon_task entity_id: sensor.centauri_carbon_file_name internal: true - platform: homeassistant id: centauri_carbon_stage entity_id: sensor.centauri_carbon_current_status internal: true - platform: homeassistant id: centauri_carbon_print_error entity_id: sensor.centauri_carbon_print_error internal: true - platform: homeassistant id: centauri_carbon_print_error_reason entity_id: sensor.centauri_carbon_error_status_reason internal: true - platform: homeassistant id: centauri_carbon_online entity_id: binary_sensor.centauri_carbon_sdcp_status internal: true - platform: homeassistant id: centauri_carbon_remaining_unit entity_id: sensor.centauri_carbon_remaining_print_time internal: true attribute: unit_of_measurement - platform: homeassistant id: centauri_carbon_nozzle_unit entity_id: sensor.centauri_carbon_nozzle_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: centauri_carbon_bed_unit entity_id: sensor.centauri_carbon_bed_temperature internal: true attribute: unit_of_measurement - platform: homeassistant id: saturn_status entity_id: sensor.saturn_print_status internal: true - platform: homeassistant id: saturn_task entity_id: sensor.saturn_file_name internal: true - platform: homeassistant id: saturn_stage entity_id: sensor.saturn_current_status internal: true - platform: homeassistant id: saturn_print_error entity_id: sensor.saturn_print_error internal: true - platform: homeassistant id: saturn_print_error_reason entity_id: sensor.saturn_error_status_reason internal: true - platform: homeassistant id: saturn_online entity_id: binary_sensor.saturn_sdcp_status internal: true - platform: homeassistant id: saturn_remaining_unit entity_id: sensor.saturn_remaining_print_time internal: true attribute: unit_of_measurement - platform: homeassistant id: saturn_uv_unit entity_id: sensor.saturn_uv_led_temp internal: true attribute: unit_of_measurement - platform: homeassistant id: saturn_elapsed_unit entity_id: sensor.saturn_current_print_time internal: true attribute: unit_of_measurement script: - id: prints_charming_refresh then: - lambda: !lambda |- bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(prints_charming_progress).state; data.nozzle = id(prints_charming_nozzle).state; data.nozzle_target = id(prints_charming_nozzle_target).state; data.bed = id(prints_charming_bed).state; data.bed_target = id(prints_charming_bed_target).state; data.time_left = id(prints_charming_time_left).state; data.layer = id(prints_charming_layer).state; data.total_layers = id(prints_charming_total_layers).state; data.fan = id(prints_charming_fan).state; data.aux_fan = id(prints_charming_aux_fan).state; data.exhaust_fan = id(prints_charming_exhaust_fan).state; data.status = id(prints_charming_status).state; data.task = id(prints_charming_task).state; data.stage = id(prints_charming_stage).state; data.online = id(prints_charming_online).state; data.print_error = id(prints_charming_print_error).state; data.hms_error = id(prints_charming_hms_error).state; data.hms_count = id(prints_charming_hms_count).state; data.print_error_message = id(prints_charming_print_error_message).state; data.print_error_code = id(prints_charming_print_error_code).state; data.remaining_unit = id(prints_charming_remaining_unit).state; data.nozzle_unit = id(prints_charming_nozzle_unit).state; data.bed_unit = id(prints_charming_bed_unit).state; data.health_notices.push_back({id(prints_charming_hms_1_code).state, id(prints_charming_hms_1_message).state, id(prints_charming_hms_1_severity).state}); data.health_notices.push_back({id(prints_charming_hms_2_code).state, id(prints_charming_hms_2_message).state, id(prints_charming_hms_2_severity).state}); data.health_notices.push_back({id(prints_charming_hms_3_code).state, id(prints_charming_hms_3_message).state, id(prints_charming_hms_3_severity).state}); const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"A1", id(prints_charming_tray_0_type).state, id(prints_charming_tray_0_color).state, id(prints_charming_tray_0_active).state}); data.trays.push_back({"A2", id(prints_charming_tray_1_type).state, id(prints_charming_tray_1_color).state, id(prints_charming_tray_1_active).state}); data.trays.push_back({"A3", id(prints_charming_tray_2_type).state, id(prints_charming_tray_2_color).state, id(prints_charming_tray_2_active).state}); data.trays.push_back({"A4", id(prints_charming_tray_3_type).state, id(prints_charming_tray_3_color).state, id(prints_charming_tray_3_active).state}); data.trays.push_back({"B1", id(prints_charming_tray_4_type).state, id(prints_charming_tray_4_color).state, id(prints_charming_tray_4_active).state}); data.trays.push_back({"B2", id(prints_charming_tray_5_type).state, id(prints_charming_tray_5_color).state, id(prints_charming_tray_5_active).state}); data.trays.push_back({"B3", id(prints_charming_tray_6_type).state, id(prints_charming_tray_6_color).state, id(prints_charming_tray_6_active).state}); data.trays.push_back({"B4", id(prints_charming_tray_7_type).state, id(prints_charming_tray_7_color).state, id(prints_charming_tray_7_active).state}); bambu_display::render(data, {id(prints_charming_status_label), id(prints_charming_task_label), id(prints_charming_top_progress), id(prints_charming_remaining_label), id(prints_charming_layers_label), id(prints_charming_stage_label), id(prints_charming_health_details), {id(prints_charming_progress_arc), id(prints_charming_progress_label), id(prints_charming_progress_detail)}, {id(prints_charming_nozzle_arc), id(prints_charming_nozzle_label), id(prints_charming_nozzle_detail)}, {id(prints_charming_bed_arc), id(prints_charming_bed_label), id(prints_charming_bed_detail)}, {id(prints_charming_fan_arc), id(prints_charming_fan_label), id(prints_charming_fan_detail)}, {id(prints_charming_aux_arc), id(prints_charming_aux_label), id(prints_charming_aux_detail)}, {id(prints_charming_exhaust_arc), id(prints_charming_exhaust_label), id(prints_charming_exhaust_detail)}, {{id(prints_charming_tray_0_card), id(prints_charming_tray_0_swatch), id(prints_charming_tray_0_label)}, {id(prints_charming_tray_1_card), id(prints_charming_tray_1_swatch), id(prints_charming_tray_1_label)}, {id(prints_charming_tray_2_card), id(prints_charming_tray_2_swatch), id(prints_charming_tray_2_label)}, {id(prints_charming_tray_3_card), id(prints_charming_tray_3_swatch), id(prints_charming_tray_3_label)}, {id(prints_charming_tray_4_card), id(prints_charming_tray_4_swatch), id(prints_charming_tray_4_label)}, {id(prints_charming_tray_5_card), id(prints_charming_tray_5_swatch), id(prints_charming_tray_5_label)}, {id(prints_charming_tray_6_card), id(prints_charming_tray_6_swatch), id(prints_charming_tray_6_label)}, {id(prints_charming_tray_7_card), id(prints_charming_tray_7_swatch), id(prints_charming_tray_7_label)}}}); - id: polly_pocket_refresh then: - lambda: !lambda |- bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(polly_pocket_progress).state; data.nozzle = id(polly_pocket_nozzle).state; data.nozzle_target = id(polly_pocket_nozzle_target).state; data.bed = id(polly_pocket_bed).state; data.bed_target = id(polly_pocket_bed_target).state; data.time_left = id(polly_pocket_time_left).state; data.layer = id(polly_pocket_layer).state; data.total_layers = id(polly_pocket_total_layers).state; data.fan = id(polly_pocket_fan).state; data.status = id(polly_pocket_status).state; data.task = id(polly_pocket_task).state; data.stage = id(polly_pocket_stage).state; data.online = id(polly_pocket_online).state; data.print_error = id(polly_pocket_print_error).state; data.hms_error = id(polly_pocket_hms_error).state; data.hms_count = id(polly_pocket_hms_count).state; data.print_error_message = id(polly_pocket_print_error_message).state; data.print_error_code = id(polly_pocket_print_error_code).state; data.remaining_unit = id(polly_pocket_remaining_unit).state; data.nozzle_unit = id(polly_pocket_nozzle_unit).state; data.bed_unit = id(polly_pocket_bed_unit).state; data.health_notices.push_back({id(polly_pocket_hms_1_code).state, id(polly_pocket_hms_1_message).state, id(polly_pocket_hms_1_severity).state}); data.health_notices.push_back({id(polly_pocket_hms_2_code).state, id(polly_pocket_hms_2_message).state, id(polly_pocket_hms_2_severity).state}); data.health_notices.push_back({id(polly_pocket_hms_3_code).state, id(polly_pocket_hms_3_message).state, id(polly_pocket_hms_3_severity).state}); const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"EXT", id(polly_pocket_tray_0_type).state, id(polly_pocket_tray_0_color).state, id(polly_pocket_tray_0_active).state}); bambu_display::render(data, {id(polly_pocket_status_label), id(polly_pocket_task_label), id(polly_pocket_top_progress), id(polly_pocket_remaining_label), id(polly_pocket_layers_label), id(polly_pocket_stage_label), id(polly_pocket_health_details), {id(polly_pocket_progress_arc), id(polly_pocket_progress_label), id(polly_pocket_progress_detail)}, {id(polly_pocket_nozzle_arc), id(polly_pocket_nozzle_label), id(polly_pocket_nozzle_detail)}, {id(polly_pocket_bed_arc), id(polly_pocket_bed_label), id(polly_pocket_bed_detail)}, {id(polly_pocket_fan_arc), id(polly_pocket_fan_label), id(polly_pocket_fan_detail)}, {id(polly_pocket_aux_arc), id(polly_pocket_aux_label), id(polly_pocket_aux_detail)}, {id(polly_pocket_exhaust_arc), id(polly_pocket_exhaust_label), id(polly_pocket_exhaust_detail)}, {{id(polly_pocket_tray_0_card), id(polly_pocket_tray_0_swatch), id(polly_pocket_tray_0_label)}}}); - id: ds_turd_flinger_refresh then: - lambda: !lambda |- bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(ds_turd_flinger_progress).state; data.nozzle = id(ds_turd_flinger_nozzle).state; data.nozzle_target = id(ds_turd_flinger_nozzle_target).state; data.bed = id(ds_turd_flinger_bed).state; data.bed_target = id(ds_turd_flinger_bed_target).state; data.time_left = id(ds_turd_flinger_time_left).state; data.layer = id(ds_turd_flinger_layer).state; data.total_layers = id(ds_turd_flinger_total_layers).state; data.fan = id(ds_turd_flinger_fan).state; data.status = id(ds_turd_flinger_status).state; data.task = id(ds_turd_flinger_task).state; data.stage = id(ds_turd_flinger_stage).state; data.online = id(ds_turd_flinger_online).state; data.print_error = id(ds_turd_flinger_print_error).state; data.hms_error = id(ds_turd_flinger_hms_error).state; data.hms_count = id(ds_turd_flinger_hms_count).state; data.print_error_message = id(ds_turd_flinger_print_error_message).state; data.print_error_code = id(ds_turd_flinger_print_error_code).state; data.remaining_unit = id(ds_turd_flinger_remaining_unit).state; data.nozzle_unit = id(ds_turd_flinger_nozzle_unit).state; data.bed_unit = id(ds_turd_flinger_bed_unit).state; data.health_notices.push_back({id(ds_turd_flinger_hms_1_code).state, id(ds_turd_flinger_hms_1_message).state, id(ds_turd_flinger_hms_1_severity).state}); data.health_notices.push_back({id(ds_turd_flinger_hms_2_code).state, id(ds_turd_flinger_hms_2_message).state, id(ds_turd_flinger_hms_2_severity).state}); data.health_notices.push_back({id(ds_turd_flinger_hms_3_code).state, id(ds_turd_flinger_hms_3_message).state, id(ds_turd_flinger_hms_3_severity).state}); const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"A1", id(ds_turd_flinger_tray_0_type).state, id(ds_turd_flinger_tray_0_color).state, id(ds_turd_flinger_tray_0_active).state}); data.trays.push_back({"A2", id(ds_turd_flinger_tray_1_type).state, id(ds_turd_flinger_tray_1_color).state, id(ds_turd_flinger_tray_1_active).state}); data.trays.push_back({"A3", id(ds_turd_flinger_tray_2_type).state, id(ds_turd_flinger_tray_2_color).state, id(ds_turd_flinger_tray_2_active).state}); data.trays.push_back({"A4", id(ds_turd_flinger_tray_3_type).state, id(ds_turd_flinger_tray_3_color).state, id(ds_turd_flinger_tray_3_active).state}); bambu_display::render(data, {id(ds_turd_flinger_status_label), id(ds_turd_flinger_task_label), id(ds_turd_flinger_top_progress), id(ds_turd_flinger_remaining_label), id(ds_turd_flinger_layers_label), id(ds_turd_flinger_stage_label), id(ds_turd_flinger_health_details), {id(ds_turd_flinger_progress_arc), id(ds_turd_flinger_progress_label), id(ds_turd_flinger_progress_detail)}, {id(ds_turd_flinger_nozzle_arc), id(ds_turd_flinger_nozzle_label), id(ds_turd_flinger_nozzle_detail)}, {id(ds_turd_flinger_bed_arc), id(ds_turd_flinger_bed_label), id(ds_turd_flinger_bed_detail)}, {id(ds_turd_flinger_fan_arc), id(ds_turd_flinger_fan_label), id(ds_turd_flinger_fan_detail)}, {id(ds_turd_flinger_aux_arc), id(ds_turd_flinger_aux_label), id(ds_turd_flinger_aux_detail)}, {id(ds_turd_flinger_exhaust_arc), id(ds_turd_flinger_exhaust_label), id(ds_turd_flinger_exhaust_detail)}, {{id(ds_turd_flinger_tray_0_card), id(ds_turd_flinger_tray_0_swatch), id(ds_turd_flinger_tray_0_label)}, {id(ds_turd_flinger_tray_1_card), id(ds_turd_flinger_tray_1_swatch), id(ds_turd_flinger_tray_1_label)}, {id(ds_turd_flinger_tray_2_card), id(ds_turd_flinger_tray_2_swatch), id(ds_turd_flinger_tray_2_label)}, {id(ds_turd_flinger_tray_3_card), id(ds_turd_flinger_tray_3_swatch), id(ds_turd_flinger_tray_3_label)}}}); - id: jordyns_layer_slayer_refresh then: - lambda: !lambda |- bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(jordyns_layer_slayer_progress).state; data.nozzle = id(jordyns_layer_slayer_nozzle).state; data.nozzle_target = id(jordyns_layer_slayer_nozzle_target).state; data.bed = id(jordyns_layer_slayer_bed).state; data.bed_target = id(jordyns_layer_slayer_bed_target).state; data.time_left = id(jordyns_layer_slayer_time_left).state; data.layer = id(jordyns_layer_slayer_layer).state; data.total_layers = id(jordyns_layer_slayer_total_layers).state; data.fan = id(jordyns_layer_slayer_fan).state; data.status = id(jordyns_layer_slayer_status).state; data.task = id(jordyns_layer_slayer_task).state; data.stage = id(jordyns_layer_slayer_stage).state; data.online = id(jordyns_layer_slayer_online).state; data.print_error = id(jordyns_layer_slayer_print_error).state; data.hms_error = id(jordyns_layer_slayer_hms_error).state; data.hms_count = id(jordyns_layer_slayer_hms_count).state; data.print_error_message = id(jordyns_layer_slayer_print_error_message).state; data.print_error_code = id(jordyns_layer_slayer_print_error_code).state; data.remaining_unit = id(jordyns_layer_slayer_remaining_unit).state; data.nozzle_unit = id(jordyns_layer_slayer_nozzle_unit).state; data.bed_unit = id(jordyns_layer_slayer_bed_unit).state; data.health_notices.push_back({id(jordyns_layer_slayer_hms_1_code).state, id(jordyns_layer_slayer_hms_1_message).state, id(jordyns_layer_slayer_hms_1_severity).state}); data.health_notices.push_back({id(jordyns_layer_slayer_hms_2_code).state, id(jordyns_layer_slayer_hms_2_message).state, id(jordyns_layer_slayer_hms_2_severity).state}); data.health_notices.push_back({id(jordyns_layer_slayer_hms_3_code).state, id(jordyns_layer_slayer_hms_3_message).state, id(jordyns_layer_slayer_hms_3_severity).state}); const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"A1", id(jordyns_layer_slayer_tray_0_type).state, id(jordyns_layer_slayer_tray_0_color).state, id(jordyns_layer_slayer_tray_0_active).state}); data.trays.push_back({"A2", id(jordyns_layer_slayer_tray_1_type).state, id(jordyns_layer_slayer_tray_1_color).state, id(jordyns_layer_slayer_tray_1_active).state}); data.trays.push_back({"A3", id(jordyns_layer_slayer_tray_2_type).state, id(jordyns_layer_slayer_tray_2_color).state, id(jordyns_layer_slayer_tray_2_active).state}); data.trays.push_back({"A4", id(jordyns_layer_slayer_tray_3_type).state, id(jordyns_layer_slayer_tray_3_color).state, id(jordyns_layer_slayer_tray_3_active).state}); bambu_display::render(data, {id(jordyns_layer_slayer_status_label), id(jordyns_layer_slayer_task_label), id(jordyns_layer_slayer_top_progress), id(jordyns_layer_slayer_remaining_label), id(jordyns_layer_slayer_layers_label), id(jordyns_layer_slayer_stage_label), id(jordyns_layer_slayer_health_details), {id(jordyns_layer_slayer_progress_arc), id(jordyns_layer_slayer_progress_label), id(jordyns_layer_slayer_progress_detail)}, {id(jordyns_layer_slayer_nozzle_arc), id(jordyns_layer_slayer_nozzle_label), id(jordyns_layer_slayer_nozzle_detail)}, {id(jordyns_layer_slayer_bed_arc), id(jordyns_layer_slayer_bed_label), id(jordyns_layer_slayer_bed_detail)}, {id(jordyns_layer_slayer_fan_arc), id(jordyns_layer_slayer_fan_label), id(jordyns_layer_slayer_fan_detail)}, {id(jordyns_layer_slayer_aux_arc), id(jordyns_layer_slayer_aux_label), id(jordyns_layer_slayer_aux_detail)}, {id(jordyns_layer_slayer_exhaust_arc), id(jordyns_layer_slayer_exhaust_label), id(jordyns_layer_slayer_exhaust_detail)}, {{id(jordyns_layer_slayer_tray_0_card), id(jordyns_layer_slayer_tray_0_swatch), id(jordyns_layer_slayer_tray_0_label)}, {id(jordyns_layer_slayer_tray_1_card), id(jordyns_layer_slayer_tray_1_swatch), id(jordyns_layer_slayer_tray_1_label)}, {id(jordyns_layer_slayer_tray_2_card), id(jordyns_layer_slayer_tray_2_swatch), id(jordyns_layer_slayer_tray_2_label)}, {id(jordyns_layer_slayer_tray_3_card), id(jordyns_layer_slayer_tray_3_swatch), id(jordyns_layer_slayer_tray_3_label)}}}); - id: constipation_orion_refresh then: - lambda: !lambda |- bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(constipation_orion_progress).state; data.nozzle = id(constipation_orion_nozzle).state; data.nozzle_target = id(constipation_orion_nozzle_target).state; data.bed = id(constipation_orion_bed).state; data.bed_target = id(constipation_orion_bed_target).state; data.time_left = id(constipation_orion_time_left).state; data.layer = id(constipation_orion_layer).state; data.total_layers = id(constipation_orion_total_layers).state; data.fan = id(constipation_orion_fan).state; data.left_nozzle = id(constipation_orion_left_nozzle).state; data.left_target = id(constipation_orion_left_target).state; data.right_nozzle = id(constipation_orion_right_nozzle).state; data.right_target = id(constipation_orion_right_target).state; data.exhaust_fan = id(constipation_orion_exhaust_fan).state; data.status = id(constipation_orion_status).state; data.task = id(constipation_orion_task).state; data.stage = id(constipation_orion_stage).state; data.online = id(constipation_orion_online).state; data.print_error = id(constipation_orion_print_error).state; data.hms_error = id(constipation_orion_hms_error).state; data.hms_count = id(constipation_orion_hms_count).state; data.print_error_message = id(constipation_orion_print_error_message).state; data.print_error_code = id(constipation_orion_print_error_code).state; data.remaining_unit = id(constipation_orion_remaining_unit).state; data.nozzle_unit = id(constipation_orion_nozzle_unit).state; data.bed_unit = id(constipation_orion_bed_unit).state; data.health_notices.push_back({id(constipation_orion_hms_1_code).state, id(constipation_orion_hms_1_message).state, id(constipation_orion_hms_1_severity).state}); data.health_notices.push_back({id(constipation_orion_hms_2_code).state, id(constipation_orion_hms_2_message).state, id(constipation_orion_hms_2_severity).state}); data.health_notices.push_back({id(constipation_orion_hms_3_code).state, id(constipation_orion_hms_3_message).state, id(constipation_orion_hms_3_severity).state}); data.dual_nozzle = true; const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"A1", id(constipation_orion_tray_0_type).state, id(constipation_orion_tray_0_color).state, id(constipation_orion_tray_0_active).state}); data.trays.push_back({"A2", id(constipation_orion_tray_1_type).state, id(constipation_orion_tray_1_color).state, id(constipation_orion_tray_1_active).state}); data.trays.push_back({"A3", id(constipation_orion_tray_2_type).state, id(constipation_orion_tray_2_color).state, id(constipation_orion_tray_2_active).state}); data.trays.push_back({"A4", id(constipation_orion_tray_3_type).state, id(constipation_orion_tray_3_color).state, id(constipation_orion_tray_3_active).state}); data.trays.push_back({"B1", id(constipation_orion_tray_4_type).state, id(constipation_orion_tray_4_color).state, id(constipation_orion_tray_4_active).state}); data.trays.push_back({"B2", id(constipation_orion_tray_5_type).state, id(constipation_orion_tray_5_color).state, id(constipation_orion_tray_5_active).state}); data.trays.push_back({"B3", id(constipation_orion_tray_6_type).state, id(constipation_orion_tray_6_color).state, id(constipation_orion_tray_6_active).state}); data.trays.push_back({"B4", id(constipation_orion_tray_7_type).state, id(constipation_orion_tray_7_color).state, id(constipation_orion_tray_7_active).state}); bambu_display::render(data, {id(constipation_orion_status_label), id(constipation_orion_task_label), id(constipation_orion_top_progress), id(constipation_orion_remaining_label), id(constipation_orion_layers_label), id(constipation_orion_stage_label), id(constipation_orion_health_details), {id(constipation_orion_progress_arc), id(constipation_orion_progress_label), id(constipation_orion_progress_detail)}, {id(constipation_orion_nozzle_arc), id(constipation_orion_nozzle_label), id(constipation_orion_nozzle_detail)}, {id(constipation_orion_bed_arc), id(constipation_orion_bed_label), id(constipation_orion_bed_detail)}, {id(constipation_orion_fan_arc), id(constipation_orion_fan_label), id(constipation_orion_fan_detail)}, {id(constipation_orion_aux_arc), id(constipation_orion_aux_label), id(constipation_orion_aux_detail)}, {id(constipation_orion_exhaust_arc), id(constipation_orion_exhaust_label), id(constipation_orion_exhaust_detail)}, {{id(constipation_orion_tray_0_card), id(constipation_orion_tray_0_swatch), id(constipation_orion_tray_0_label)}, {id(constipation_orion_tray_1_card), id(constipation_orion_tray_1_swatch), id(constipation_orion_tray_1_label)}, {id(constipation_orion_tray_2_card), id(constipation_orion_tray_2_swatch), id(constipation_orion_tray_2_label)}, {id(constipation_orion_tray_3_card), id(constipation_orion_tray_3_swatch), id(constipation_orion_tray_3_label)}, {id(constipation_orion_tray_4_card), id(constipation_orion_tray_4_swatch), id(constipation_orion_tray_4_label)}, {id(constipation_orion_tray_5_card), id(constipation_orion_tray_5_swatch), id(constipation_orion_tray_5_label)}, {id(constipation_orion_tray_6_card), id(constipation_orion_tray_6_swatch), id(constipation_orion_tray_6_label)}, {id(constipation_orion_tray_7_card), id(constipation_orion_tray_7_swatch), id(constipation_orion_tray_7_label)}}}); - id: centauri_carbon_refresh then: - lambda: !lambda |- bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(centauri_carbon_progress).state; data.time_left = id(centauri_carbon_time_left).state; data.layer = id(centauri_carbon_layer).state; data.total_layers = id(centauri_carbon_total_layers).state; data.nozzle = id(centauri_carbon_nozzle).state; data.bed = id(centauri_carbon_bed).state; data.nozzle_target = id(centauri_carbon_nozzle_target).state; data.bed_target = id(centauri_carbon_bed_target).state; data.fan = id(centauri_carbon_fan).state; data.aux_fan = id(centauri_carbon_aux_fan).state; data.exhaust_fan = id(centauri_carbon_exhaust_fan).state; data.status = id(centauri_carbon_status).state; data.task = id(centauri_carbon_task).state; data.stage = id(centauri_carbon_stage).state; data.print_error = id(centauri_carbon_print_error).state; data.print_error_reason = id(centauri_carbon_print_error_reason).state; data.online = id(centauri_carbon_online).state; data.remaining_unit = id(centauri_carbon_remaining_unit).state; data.nozzle_unit = id(centauri_carbon_nozzle_unit).state; data.bed_unit = id(centauri_carbon_bed_unit).state; data.elegoo = true; const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); bambu_display::render(data, {id(centauri_carbon_status_label), id(centauri_carbon_task_label), id(centauri_carbon_top_progress), id(centauri_carbon_remaining_label), id(centauri_carbon_layers_label), id(centauri_carbon_stage_label), id(centauri_carbon_health_details), {id(centauri_carbon_progress_arc), id(centauri_carbon_progress_label), id(centauri_carbon_progress_detail)}, {id(centauri_carbon_nozzle_arc), id(centauri_carbon_nozzle_label), id(centauri_carbon_nozzle_detail)}, {id(centauri_carbon_bed_arc), id(centauri_carbon_bed_label), id(centauri_carbon_bed_detail)}, {id(centauri_carbon_fan_arc), id(centauri_carbon_fan_label), id(centauri_carbon_fan_detail)}, {id(centauri_carbon_aux_arc), id(centauri_carbon_aux_label), id(centauri_carbon_aux_detail)}, {id(centauri_carbon_exhaust_arc), id(centauri_carbon_exhaust_label), id(centauri_carbon_exhaust_detail)}, {}}); - id: saturn_refresh then: - lambda: !lambda |- bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(saturn_progress).state; data.time_left = id(saturn_time_left).state; data.layer = id(saturn_layer).state; data.total_layers = id(saturn_total_layers).state; data.uv = id(saturn_uv).state; data.elapsed = id(saturn_elapsed).state; data.status = id(saturn_status).state; data.task = id(saturn_task).state; data.stage = id(saturn_stage).state; data.print_error = id(saturn_print_error).state; data.print_error_reason = id(saturn_print_error_reason).state; data.online = id(saturn_online).state; data.remaining_unit = id(saturn_remaining_unit).state; data.uv_unit = id(saturn_uv_unit).state; data.elapsed_unit = id(saturn_elapsed_unit).state; data.elegoo = true; data.resin = true; const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); bambu_display::render(data, {id(saturn_status_label), id(saturn_task_label), id(saturn_top_progress), id(saturn_remaining_label), id(saturn_layers_label), id(saturn_stage_label), id(saturn_health_details), {id(saturn_progress_arc), id(saturn_progress_label), id(saturn_progress_detail)}, {}, {}, {}, {}, {}, {}, {id(saturn_uv_arc), id(saturn_uv_label), id(saturn_uv_detail)}, {id(saturn_layer_arc), id(saturn_layer_label), id(saturn_layer_detail)}, id(saturn_elapsed_label)}); - id: fleet_refresh then: - lambda: !lambda |- { bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(prints_charming_progress).state; data.nozzle = id(prints_charming_nozzle).state; data.nozzle_target = id(prints_charming_nozzle_target).state; data.bed = id(prints_charming_bed).state; data.bed_target = id(prints_charming_bed_target).state; data.time_left = id(prints_charming_time_left).state; data.layer = id(prints_charming_layer).state; data.total_layers = id(prints_charming_total_layers).state; data.fan = id(prints_charming_fan).state; data.aux_fan = id(prints_charming_aux_fan).state; data.exhaust_fan = id(prints_charming_exhaust_fan).state; data.status = id(prints_charming_status).state; data.task = id(prints_charming_task).state; data.stage = id(prints_charming_stage).state; data.online = id(prints_charming_online).state; data.print_error = id(prints_charming_print_error).state; data.hms_error = id(prints_charming_hms_error).state; data.hms_count = id(prints_charming_hms_count).state; data.print_error_message = id(prints_charming_print_error_message).state; data.print_error_code = id(prints_charming_print_error_code).state; data.remaining_unit = id(prints_charming_remaining_unit).state; data.nozzle_unit = id(prints_charming_nozzle_unit).state; data.bed_unit = id(prints_charming_bed_unit).state; data.health_notices.push_back({id(prints_charming_hms_1_code).state, id(prints_charming_hms_1_message).state, id(prints_charming_hms_1_severity).state}); data.health_notices.push_back({id(prints_charming_hms_2_code).state, id(prints_charming_hms_2_message).state, id(prints_charming_hms_2_severity).state}); data.health_notices.push_back({id(prints_charming_hms_3_code).state, id(prints_charming_hms_3_message).state, id(prints_charming_hms_3_severity).state}); const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"A1", id(prints_charming_tray_0_type).state, id(prints_charming_tray_0_color).state, id(prints_charming_tray_0_active).state}); data.trays.push_back({"A2", id(prints_charming_tray_1_type).state, id(prints_charming_tray_1_color).state, id(prints_charming_tray_1_active).state}); data.trays.push_back({"A3", id(prints_charming_tray_2_type).state, id(prints_charming_tray_2_color).state, id(prints_charming_tray_2_active).state}); data.trays.push_back({"A4", id(prints_charming_tray_3_type).state, id(prints_charming_tray_3_color).state, id(prints_charming_tray_3_active).state}); data.trays.push_back({"B1", id(prints_charming_tray_4_type).state, id(prints_charming_tray_4_color).state, id(prints_charming_tray_4_active).state}); data.trays.push_back({"B2", id(prints_charming_tray_5_type).state, id(prints_charming_tray_5_color).state, id(prints_charming_tray_5_active).state}); data.trays.push_back({"B3", id(prints_charming_tray_6_type).state, id(prints_charming_tray_6_color).state, id(prints_charming_tray_6_active).state}); data.trays.push_back({"B4", id(prints_charming_tray_7_type).state, id(prints_charming_tray_7_color).state, id(prints_charming_tray_7_active).state}); bambu_display::render_overview(data, {id(prints_charming_overview_arc), id(prints_charming_overview_value), id(prints_charming_overview_finish), id(prints_charming_overview_ring)}); } { bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(polly_pocket_progress).state; data.nozzle = id(polly_pocket_nozzle).state; data.nozzle_target = id(polly_pocket_nozzle_target).state; data.bed = id(polly_pocket_bed).state; data.bed_target = id(polly_pocket_bed_target).state; data.time_left = id(polly_pocket_time_left).state; data.layer = id(polly_pocket_layer).state; data.total_layers = id(polly_pocket_total_layers).state; data.fan = id(polly_pocket_fan).state; data.status = id(polly_pocket_status).state; data.task = id(polly_pocket_task).state; data.stage = id(polly_pocket_stage).state; data.online = id(polly_pocket_online).state; data.print_error = id(polly_pocket_print_error).state; data.hms_error = id(polly_pocket_hms_error).state; data.hms_count = id(polly_pocket_hms_count).state; data.print_error_message = id(polly_pocket_print_error_message).state; data.print_error_code = id(polly_pocket_print_error_code).state; data.remaining_unit = id(polly_pocket_remaining_unit).state; data.nozzle_unit = id(polly_pocket_nozzle_unit).state; data.bed_unit = id(polly_pocket_bed_unit).state; data.health_notices.push_back({id(polly_pocket_hms_1_code).state, id(polly_pocket_hms_1_message).state, id(polly_pocket_hms_1_severity).state}); data.health_notices.push_back({id(polly_pocket_hms_2_code).state, id(polly_pocket_hms_2_message).state, id(polly_pocket_hms_2_severity).state}); data.health_notices.push_back({id(polly_pocket_hms_3_code).state, id(polly_pocket_hms_3_message).state, id(polly_pocket_hms_3_severity).state}); const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"EXT", id(polly_pocket_tray_0_type).state, id(polly_pocket_tray_0_color).state, id(polly_pocket_tray_0_active).state}); bambu_display::render_overview(data, {id(polly_pocket_overview_arc), id(polly_pocket_overview_value), id(polly_pocket_overview_finish), id(polly_pocket_overview_ring)}); } { bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(ds_turd_flinger_progress).state; data.nozzle = id(ds_turd_flinger_nozzle).state; data.nozzle_target = id(ds_turd_flinger_nozzle_target).state; data.bed = id(ds_turd_flinger_bed).state; data.bed_target = id(ds_turd_flinger_bed_target).state; data.time_left = id(ds_turd_flinger_time_left).state; data.layer = id(ds_turd_flinger_layer).state; data.total_layers = id(ds_turd_flinger_total_layers).state; data.fan = id(ds_turd_flinger_fan).state; data.status = id(ds_turd_flinger_status).state; data.task = id(ds_turd_flinger_task).state; data.stage = id(ds_turd_flinger_stage).state; data.online = id(ds_turd_flinger_online).state; data.print_error = id(ds_turd_flinger_print_error).state; data.hms_error = id(ds_turd_flinger_hms_error).state; data.hms_count = id(ds_turd_flinger_hms_count).state; data.print_error_message = id(ds_turd_flinger_print_error_message).state; data.print_error_code = id(ds_turd_flinger_print_error_code).state; data.remaining_unit = id(ds_turd_flinger_remaining_unit).state; data.nozzle_unit = id(ds_turd_flinger_nozzle_unit).state; data.bed_unit = id(ds_turd_flinger_bed_unit).state; data.health_notices.push_back({id(ds_turd_flinger_hms_1_code).state, id(ds_turd_flinger_hms_1_message).state, id(ds_turd_flinger_hms_1_severity).state}); data.health_notices.push_back({id(ds_turd_flinger_hms_2_code).state, id(ds_turd_flinger_hms_2_message).state, id(ds_turd_flinger_hms_2_severity).state}); data.health_notices.push_back({id(ds_turd_flinger_hms_3_code).state, id(ds_turd_flinger_hms_3_message).state, id(ds_turd_flinger_hms_3_severity).state}); const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"A1", id(ds_turd_flinger_tray_0_type).state, id(ds_turd_flinger_tray_0_color).state, id(ds_turd_flinger_tray_0_active).state}); data.trays.push_back({"A2", id(ds_turd_flinger_tray_1_type).state, id(ds_turd_flinger_tray_1_color).state, id(ds_turd_flinger_tray_1_active).state}); data.trays.push_back({"A3", id(ds_turd_flinger_tray_2_type).state, id(ds_turd_flinger_tray_2_color).state, id(ds_turd_flinger_tray_2_active).state}); data.trays.push_back({"A4", id(ds_turd_flinger_tray_3_type).state, id(ds_turd_flinger_tray_3_color).state, id(ds_turd_flinger_tray_3_active).state}); bambu_display::render_overview(data, {id(ds_turd_flinger_overview_arc), id(ds_turd_flinger_overview_value), id(ds_turd_flinger_overview_finish), id(ds_turd_flinger_overview_ring)}); } { bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(jordyns_layer_slayer_progress).state; data.nozzle = id(jordyns_layer_slayer_nozzle).state; data.nozzle_target = id(jordyns_layer_slayer_nozzle_target).state; data.bed = id(jordyns_layer_slayer_bed).state; data.bed_target = id(jordyns_layer_slayer_bed_target).state; data.time_left = id(jordyns_layer_slayer_time_left).state; data.layer = id(jordyns_layer_slayer_layer).state; data.total_layers = id(jordyns_layer_slayer_total_layers).state; data.fan = id(jordyns_layer_slayer_fan).state; data.status = id(jordyns_layer_slayer_status).state; data.task = id(jordyns_layer_slayer_task).state; data.stage = id(jordyns_layer_slayer_stage).state; data.online = id(jordyns_layer_slayer_online).state; data.print_error = id(jordyns_layer_slayer_print_error).state; data.hms_error = id(jordyns_layer_slayer_hms_error).state; data.hms_count = id(jordyns_layer_slayer_hms_count).state; data.print_error_message = id(jordyns_layer_slayer_print_error_message).state; data.print_error_code = id(jordyns_layer_slayer_print_error_code).state; data.remaining_unit = id(jordyns_layer_slayer_remaining_unit).state; data.nozzle_unit = id(jordyns_layer_slayer_nozzle_unit).state; data.bed_unit = id(jordyns_layer_slayer_bed_unit).state; data.health_notices.push_back({id(jordyns_layer_slayer_hms_1_code).state, id(jordyns_layer_slayer_hms_1_message).state, id(jordyns_layer_slayer_hms_1_severity).state}); data.health_notices.push_back({id(jordyns_layer_slayer_hms_2_code).state, id(jordyns_layer_slayer_hms_2_message).state, id(jordyns_layer_slayer_hms_2_severity).state}); data.health_notices.push_back({id(jordyns_layer_slayer_hms_3_code).state, id(jordyns_layer_slayer_hms_3_message).state, id(jordyns_layer_slayer_hms_3_severity).state}); const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"A1", id(jordyns_layer_slayer_tray_0_type).state, id(jordyns_layer_slayer_tray_0_color).state, id(jordyns_layer_slayer_tray_0_active).state}); data.trays.push_back({"A2", id(jordyns_layer_slayer_tray_1_type).state, id(jordyns_layer_slayer_tray_1_color).state, id(jordyns_layer_slayer_tray_1_active).state}); data.trays.push_back({"A3", id(jordyns_layer_slayer_tray_2_type).state, id(jordyns_layer_slayer_tray_2_color).state, id(jordyns_layer_slayer_tray_2_active).state}); data.trays.push_back({"A4", id(jordyns_layer_slayer_tray_3_type).state, id(jordyns_layer_slayer_tray_3_color).state, id(jordyns_layer_slayer_tray_3_active).state}); bambu_display::render_overview(data, {id(jordyns_layer_slayer_overview_arc), id(jordyns_layer_slayer_overview_value), id(jordyns_layer_slayer_overview_finish), id(jordyns_layer_slayer_overview_ring)}); } { bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(constipation_orion_progress).state; data.nozzle = id(constipation_orion_nozzle).state; data.nozzle_target = id(constipation_orion_nozzle_target).state; data.bed = id(constipation_orion_bed).state; data.bed_target = id(constipation_orion_bed_target).state; data.time_left = id(constipation_orion_time_left).state; data.layer = id(constipation_orion_layer).state; data.total_layers = id(constipation_orion_total_layers).state; data.fan = id(constipation_orion_fan).state; data.left_nozzle = id(constipation_orion_left_nozzle).state; data.left_target = id(constipation_orion_left_target).state; data.right_nozzle = id(constipation_orion_right_nozzle).state; data.right_target = id(constipation_orion_right_target).state; data.exhaust_fan = id(constipation_orion_exhaust_fan).state; data.status = id(constipation_orion_status).state; data.task = id(constipation_orion_task).state; data.stage = id(constipation_orion_stage).state; data.online = id(constipation_orion_online).state; data.print_error = id(constipation_orion_print_error).state; data.hms_error = id(constipation_orion_hms_error).state; data.hms_count = id(constipation_orion_hms_count).state; data.print_error_message = id(constipation_orion_print_error_message).state; data.print_error_code = id(constipation_orion_print_error_code).state; data.remaining_unit = id(constipation_orion_remaining_unit).state; data.nozzle_unit = id(constipation_orion_nozzle_unit).state; data.bed_unit = id(constipation_orion_bed_unit).state; data.health_notices.push_back({id(constipation_orion_hms_1_code).state, id(constipation_orion_hms_1_message).state, id(constipation_orion_hms_1_severity).state}); data.health_notices.push_back({id(constipation_orion_hms_2_code).state, id(constipation_orion_hms_2_message).state, id(constipation_orion_hms_2_severity).state}); data.health_notices.push_back({id(constipation_orion_hms_3_code).state, id(constipation_orion_hms_3_message).state, id(constipation_orion_hms_3_severity).state}); data.dual_nozzle = true; const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); data.trays.push_back({"A1", id(constipation_orion_tray_0_type).state, id(constipation_orion_tray_0_color).state, id(constipation_orion_tray_0_active).state}); data.trays.push_back({"A2", id(constipation_orion_tray_1_type).state, id(constipation_orion_tray_1_color).state, id(constipation_orion_tray_1_active).state}); data.trays.push_back({"A3", id(constipation_orion_tray_2_type).state, id(constipation_orion_tray_2_color).state, id(constipation_orion_tray_2_active).state}); data.trays.push_back({"A4", id(constipation_orion_tray_3_type).state, id(constipation_orion_tray_3_color).state, id(constipation_orion_tray_3_active).state}); data.trays.push_back({"B1", id(constipation_orion_tray_4_type).state, id(constipation_orion_tray_4_color).state, id(constipation_orion_tray_4_active).state}); data.trays.push_back({"B2", id(constipation_orion_tray_5_type).state, id(constipation_orion_tray_5_color).state, id(constipation_orion_tray_5_active).state}); data.trays.push_back({"B3", id(constipation_orion_tray_6_type).state, id(constipation_orion_tray_6_color).state, id(constipation_orion_tray_6_active).state}); data.trays.push_back({"B4", id(constipation_orion_tray_7_type).state, id(constipation_orion_tray_7_color).state, id(constipation_orion_tray_7_active).state}); bambu_display::render_overview(data, {id(constipation_orion_overview_arc), id(constipation_orion_overview_value), id(constipation_orion_overview_finish), id(constipation_orion_overview_ring)}); } { bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(centauri_carbon_progress).state; data.time_left = id(centauri_carbon_time_left).state; data.layer = id(centauri_carbon_layer).state; data.total_layers = id(centauri_carbon_total_layers).state; data.nozzle = id(centauri_carbon_nozzle).state; data.bed = id(centauri_carbon_bed).state; data.nozzle_target = id(centauri_carbon_nozzle_target).state; data.bed_target = id(centauri_carbon_bed_target).state; data.fan = id(centauri_carbon_fan).state; data.aux_fan = id(centauri_carbon_aux_fan).state; data.exhaust_fan = id(centauri_carbon_exhaust_fan).state; data.status = id(centauri_carbon_status).state; data.task = id(centauri_carbon_task).state; data.stage = id(centauri_carbon_stage).state; data.print_error = id(centauri_carbon_print_error).state; data.print_error_reason = id(centauri_carbon_print_error_reason).state; data.online = id(centauri_carbon_online).state; data.remaining_unit = id(centauri_carbon_remaining_unit).state; data.nozzle_unit = id(centauri_carbon_nozzle_unit).state; data.bed_unit = id(centauri_carbon_bed_unit).state; data.elegoo = true; const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); bambu_display::render_overview(data, {id(centauri_carbon_overview_arc), id(centauri_carbon_overview_value), id(centauri_carbon_overview_finish), id(centauri_carbon_overview_ring)}); } { bambu_display::Snapshot data; data.connected = id(ha_api).is_connected_with_state_subscription(); data.progress = id(saturn_progress).state; data.time_left = id(saturn_time_left).state; data.layer = id(saturn_layer).state; data.total_layers = id(saturn_total_layers).state; data.uv = id(saturn_uv).state; data.elapsed = id(saturn_elapsed).state; data.status = id(saturn_status).state; data.task = id(saturn_task).state; data.stage = id(saturn_stage).state; data.print_error = id(saturn_print_error).state; data.print_error_reason = id(saturn_print_error_reason).state; data.online = id(saturn_online).state; data.remaining_unit = id(saturn_remaining_unit).state; data.uv_unit = id(saturn_uv_unit).state; data.elapsed_unit = id(saturn_elapsed_unit).state; data.elegoo = true; data.resin = true; const int seconds_left = bambu_display::duration_seconds(data.time_left, data.remaining_unit); const auto clock = id(ha_time).now(); if (clock.is_valid() && seconds_left >= 0) data.finish_time = esphome::ESPTime::from_epoch_local(clock.timestamp + seconds_left).strftime("%H:%M"); bambu_display::render_overview(data, {id(saturn_overview_arc), id(saturn_overview_value), id(saturn_overview_finish), id(saturn_overview_ring)}); } { const auto clock = id(ha_time).now(); std::string clock_text = "--:--"; if (clock.is_valid()) { clock_text = esphome::ESPTime::from_epoch_local(clock.timestamp).strftime("%I:%M %p"); if (!clock_text.empty() && clock_text[0] == '0') clock_text.erase(0, 1); } bambu_display::set_text(id(fleet_clock), clock_text); } interval: - interval: 1s then: - if: condition: lvgl.page.is_showing: prints_charming_page then: - script.execute: prints_charming_refresh - if: condition: lvgl.page.is_showing: polly_pocket_page then: - script.execute: polly_pocket_refresh - if: condition: lvgl.page.is_showing: ds_turd_flinger_page then: - script.execute: ds_turd_flinger_refresh - if: condition: lvgl.page.is_showing: jordyns_layer_slayer_page then: - script.execute: jordyns_layer_slayer_refresh - if: condition: lvgl.page.is_showing: constipation_orion_page then: - script.execute: constipation_orion_refresh - if: condition: lvgl.page.is_showing: centauri_carbon_page then: - script.execute: centauri_carbon_refresh - if: condition: lvgl.page.is_showing: saturn_page then: - script.execute: saturn_refresh - if: condition: lvgl.page.is_showing: fleet_page then: - script.execute: fleet_refresh lvgl: pages: - id: fleet_page bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false scrollbar_mode: 'OFF' on_swipe_left: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.next: animation: MOVE_LEFT time: 180ms on_swipe_right: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.previous: animation: MOVE_RIGHT time: 180ms on_load: - script.execute: fleet_refresh widgets: - label: text: Print Status Overview x: 16 y: 10 width: 520 height: 30 text_color: 65280 text_font: montserrat_22 long_mode: DOT gesture_bubble: true - label: text: --:-- x: 548 y: 12 width: 236 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true id: fleet_clock text_align: RIGHT - arc: id: prints_charming_overview_ring x: 23 y: 42 width: 153 height: 153 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 20 arc_color: 7239294 indicator: arc_color: 7239294 arc_width: 20 adjustable: false hidden: true gesture_bubble: true clickable: true on_click: - lvgl.page.show: prints_charming_page - arc: id: prints_charming_overview_arc x: 27 y: 46 width: 145 height: 145 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 12 arc_color: 65280 indicator: arc_color: 65280 arc_width: 12 adjustable: false gesture_bubble: true clickable: true on_click: - lvgl.page.show: prints_charming_page - label: text: -- x: 27 y: 90 width: 145 height: 40 text_color: 16777215 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: prints_charming_overview_value text_align: CENTER clickable: true on_click: - lvgl.page.show: prints_charming_page - label: text: '%' x: 27 y: 124 width: 145 height: 24 text_color: 16777215 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_overview_percent text_align: CENTER clickable: true on_click: - lvgl.page.show: prints_charming_page - label: text: PrintsCharming x: 19 y: 193 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER clickable: true on_click: - lvgl.page.show: prints_charming_page - label: text: -- x: 19 y: 213 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: prints_charming_overview_finish text_align: CENTER clickable: true on_click: - lvgl.page.show: prints_charming_page - arc: id: polly_pocket_overview_ring x: 223 y: 42 width: 153 height: 153 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 20 arc_color: 7239294 indicator: arc_color: 7239294 arc_width: 20 adjustable: false hidden: true gesture_bubble: true clickable: true on_click: - lvgl.page.show: polly_pocket_page - arc: id: polly_pocket_overview_arc x: 227 y: 46 width: 145 height: 145 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 12 arc_color: 65280 indicator: arc_color: 65280 arc_width: 12 adjustable: false gesture_bubble: true clickable: true on_click: - lvgl.page.show: polly_pocket_page - label: text: -- x: 227 y: 90 width: 145 height: 40 text_color: 16777215 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: polly_pocket_overview_value text_align: CENTER clickable: true on_click: - lvgl.page.show: polly_pocket_page - label: text: '%' x: 227 y: 124 width: 145 height: 24 text_color: 16777215 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_overview_percent text_align: CENTER clickable: true on_click: - lvgl.page.show: polly_pocket_page - label: text: Polly-Pocket x: 219 y: 193 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER clickable: true on_click: - lvgl.page.show: polly_pocket_page - label: text: -- x: 219 y: 213 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: polly_pocket_overview_finish text_align: CENTER clickable: true on_click: - lvgl.page.show: polly_pocket_page - arc: id: ds_turd_flinger_overview_ring x: 423 y: 42 width: 153 height: 153 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 20 arc_color: 7239294 indicator: arc_color: 7239294 arc_width: 20 adjustable: false hidden: true gesture_bubble: true clickable: true on_click: - lvgl.page.show: ds_turd_flinger_page - arc: id: ds_turd_flinger_overview_arc x: 427 y: 46 width: 145 height: 145 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 12 arc_color: 65280 indicator: arc_color: 65280 arc_width: 12 adjustable: false gesture_bubble: true clickable: true on_click: - lvgl.page.show: ds_turd_flinger_page - label: text: -- x: 427 y: 90 width: 145 height: 40 text_color: 16777215 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_overview_value text_align: CENTER clickable: true on_click: - lvgl.page.show: ds_turd_flinger_page - label: text: '%' x: 427 y: 124 width: 145 height: 24 text_color: 16777215 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_overview_percent text_align: CENTER clickable: true on_click: - lvgl.page.show: ds_turd_flinger_page - label: text: Ds-Turd-Flinger x: 419 y: 193 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER clickable: true on_click: - lvgl.page.show: ds_turd_flinger_page - label: text: -- x: 419 y: 213 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_overview_finish text_align: CENTER clickable: true on_click: - lvgl.page.show: ds_turd_flinger_page - arc: id: jordyns_layer_slayer_overview_ring x: 623 y: 42 width: 153 height: 153 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 20 arc_color: 7239294 indicator: arc_color: 7239294 arc_width: 20 adjustable: false hidden: true gesture_bubble: true clickable: true on_click: - lvgl.page.show: jordyns_layer_slayer_page - arc: id: jordyns_layer_slayer_overview_arc x: 627 y: 46 width: 145 height: 145 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 12 arc_color: 65280 indicator: arc_color: 65280 arc_width: 12 adjustable: false gesture_bubble: true clickable: true on_click: - lvgl.page.show: jordyns_layer_slayer_page - label: text: -- x: 627 y: 90 width: 145 height: 40 text_color: 16777215 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_overview_value text_align: CENTER clickable: true on_click: - lvgl.page.show: jordyns_layer_slayer_page - label: text: '%' x: 627 y: 124 width: 145 height: 24 text_color: 16777215 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_overview_percent text_align: CENTER clickable: true on_click: - lvgl.page.show: jordyns_layer_slayer_page - label: text: Jordyns-Layer-Slayer x: 619 y: 193 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER clickable: true on_click: - lvgl.page.show: jordyns_layer_slayer_page - label: text: -- x: 619 y: 213 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_overview_finish text_align: CENTER clickable: true on_click: - lvgl.page.show: jordyns_layer_slayer_page - arc: id: constipation_orion_overview_ring x: 123 y: 235 width: 153 height: 153 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 20 arc_color: 7239294 indicator: arc_color: 7239294 arc_width: 20 adjustable: false hidden: true gesture_bubble: true clickable: true on_click: - lvgl.page.show: constipation_orion_page - arc: id: constipation_orion_overview_arc x: 127 y: 239 width: 145 height: 145 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 12 arc_color: 65280 indicator: arc_color: 65280 arc_width: 12 adjustable: false gesture_bubble: true clickable: true on_click: - lvgl.page.show: constipation_orion_page - label: text: -- x: 127 y: 283 width: 145 height: 40 text_color: 16777215 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: constipation_orion_overview_value text_align: CENTER clickable: true on_click: - lvgl.page.show: constipation_orion_page - label: text: '%' x: 127 y: 317 width: 145 height: 24 text_color: 16777215 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_overview_percent text_align: CENTER clickable: true on_click: - lvgl.page.show: constipation_orion_page - label: text: Constipation-Orion x: 119 y: 386 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER clickable: true on_click: - lvgl.page.show: constipation_orion_page - label: text: -- x: 119 y: 406 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: constipation_orion_overview_finish text_align: CENTER clickable: true on_click: - lvgl.page.show: constipation_orion_page - arc: id: centauri_carbon_overview_ring x: 323 y: 235 width: 153 height: 153 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 20 arc_color: 7239294 indicator: arc_color: 7239294 arc_width: 20 adjustable: false hidden: true gesture_bubble: true clickable: true on_click: - lvgl.page.show: centauri_carbon_page - arc: id: centauri_carbon_overview_arc x: 327 y: 239 width: 145 height: 145 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 12 arc_color: 65280 indicator: arc_color: 65280 arc_width: 12 adjustable: false gesture_bubble: true clickable: true on_click: - lvgl.page.show: centauri_carbon_page - label: text: -- x: 327 y: 283 width: 145 height: 40 text_color: 16777215 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: centauri_carbon_overview_value text_align: CENTER clickable: true on_click: - lvgl.page.show: centauri_carbon_page - label: text: '%' x: 327 y: 317 width: 145 height: 24 text_color: 16777215 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_overview_percent text_align: CENTER clickable: true on_click: - lvgl.page.show: centauri_carbon_page - label: text: Centauri Carbon x: 319 y: 386 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER clickable: true on_click: - lvgl.page.show: centauri_carbon_page - label: text: -- x: 319 y: 406 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: centauri_carbon_overview_finish text_align: CENTER clickable: true on_click: - lvgl.page.show: centauri_carbon_page - arc: id: saturn_overview_ring x: 523 y: 235 width: 153 height: 153 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 20 arc_color: 7239294 indicator: arc_color: 7239294 arc_width: 20 adjustable: false hidden: true gesture_bubble: true clickable: true on_click: - lvgl.page.show: saturn_page - arc: id: saturn_overview_arc x: 527 y: 239 width: 145 height: 145 min_value: 0 max_value: 100 value: 100 start_angle: 135 end_angle: 45 arc_width: 12 arc_color: 65280 indicator: arc_color: 65280 arc_width: 12 adjustable: false gesture_bubble: true clickable: true on_click: - lvgl.page.show: saturn_page - label: text: -- x: 527 y: 283 width: 145 height: 40 text_color: 16777215 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: saturn_overview_value text_align: CENTER clickable: true on_click: - lvgl.page.show: saturn_page - label: text: '%' x: 527 y: 317 width: 145 height: 24 text_color: 16777215 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: saturn_overview_percent text_align: CENTER clickable: true on_click: - lvgl.page.show: saturn_page - label: text: Saturn x: 519 y: 386 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER clickable: true on_click: - lvgl.page.show: saturn_page - label: text: -- x: 519 y: 406 width: 161 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: saturn_overview_finish text_align: CENTER clickable: true on_click: - lvgl.page.show: saturn_page - button: x: 16 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: < align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.previous: {} - button: x: 720 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: '>' align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.next: {} - label: text: 1 / 8 x: 94 y: 449 width: 612 height: 22 text_color: 11449271 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER - id: prints_charming_page bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false scrollbar_mode: 'OFF' on_swipe_left: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.next: animation: MOVE_LEFT time: 180ms on_swipe_right: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.previous: animation: MOVE_RIGHT time: 180ms on_load: - script.execute: prints_charming_refresh widgets: - bar: id: prints_charming_top_progress x: 0 y: 0 width: 800 height: 5 min_value: 0 max_value: 100 value: 0 bg_color: 1647403 indicator: bg_color: 65280 gesture_bubble: true - label: text: PrintsCharming x: 16 y: 17 width: 485 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true - label: text: 2 / 8 x: 520 y: 24 width: 70 height: 22 text_color: 11449271 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: SYNCING x: 598 y: 21 width: 186 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_status_label text_align: RIGHT clickable: true on_click: - lvgl.widget.show: prints_charming_health_panel - obj: x: 578 y: 64 width: 1 height: 362 bg_color: 1647403 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - arc: id: prints_charming_progress_arc x: 24 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: prints_charming_progress_label text_align: CENTER - label: text: -- x: 30 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_progress_detail text_align: CENTER - label: text: Progress x: 16 y: 199 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: prints_charming_nozzle_arc x: 210 y: 62 width: 154 height: 154 min_value: 0 max_value: 300 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 16755200 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: prints_charming_nozzle_label text_align: CENTER - label: text: -- x: 216 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_nozzle_detail text_align: CENTER - label: text: Nozzle x: 202 y: 199 width: 170 height: 26 text_color: 16755200 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: prints_charming_bed_arc x: 396 y: 62 width: 154 height: 154 min_value: 0 max_value: 120 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 58853 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: prints_charming_bed_label text_align: CENTER - label: text: -- x: 402 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_bed_detail text_align: CENTER - label: text: Bed x: 388 y: 199 width: 170 height: 26 text_color: 58853 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: prints_charming_fan_arc x: 24 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: prints_charming_fan_label text_align: CENTER - label: text: -- x: 30 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_fan_detail text_align: CENTER - label: text: Part x: 16 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: prints_charming_aux_arc x: 210 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: prints_charming_aux_label text_align: CENTER - label: text: -- x: 216 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_aux_detail text_align: CENTER - label: text: Aux x: 202 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: prints_charming_exhaust_arc x: 396 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: prints_charming_exhaust_label text_align: CENTER - label: text: -- x: 402 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_exhaust_detail text_align: CENTER - label: text: Exhaust x: 388 y: 366 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: -- x: 16 y: 401 width: 544 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true id: prints_charming_remaining_label text_align: CENTER - label: text: Telemetry unavailable x: 16 y: 430 width: 544 height: 20 text_color: 11449271 text_font: montserrat_12 long_mode: SCROLL_CIRCULAR gesture_bubble: true id: prints_charming_stage_label text_align: CENTER clickable: true on_click: - lvgl.widget.show: prints_charming_health_panel - label: text: -- x: 594 y: 397 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: prints_charming_layers_label text_align: CENTER - label: text: AMS A x: 594 y: 70 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: id: prints_charming_tray_0_card x: 594 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: prints_charming_tray_0_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A1 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: prints_charming_tray_0_label text_align: CENTER - obj: id: prints_charming_tray_1_card x: 642 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: prints_charming_tray_1_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A2 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: prints_charming_tray_1_label text_align: CENTER - obj: id: prints_charming_tray_2_card x: 690 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: prints_charming_tray_2_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A3 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: prints_charming_tray_2_label text_align: CENTER - obj: id: prints_charming_tray_3_card x: 738 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: prints_charming_tray_3_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A4 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: prints_charming_tray_3_label text_align: CENTER - label: text: AMS B x: 594 y: 215 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: id: prints_charming_tray_4_card x: 594 y: 247 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: prints_charming_tray_4_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'B1 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: prints_charming_tray_4_label text_align: CENTER - obj: id: prints_charming_tray_5_card x: 642 y: 247 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: prints_charming_tray_5_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'B2 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: prints_charming_tray_5_label text_align: CENTER - obj: id: prints_charming_tray_6_card x: 690 y: 247 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: prints_charming_tray_6_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'B3 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: prints_charming_tray_6_label text_align: CENTER - obj: id: prints_charming_tray_7_card x: 738 y: 247 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: prints_charming_tray_7_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'B4 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: prints_charming_tray_7_label text_align: CENTER - button: x: 16 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: < align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.previous: {} - button: x: 720 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: '>' align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.next: {} - label: text: Waiting for Home Assistant x: 94 y: 449 width: 612 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: prints_charming_task_label text_align: CENTER - obj: id: prints_charming_health_panel x: 24 y: 62 width: 752 height: 366 hidden: true bg_color: 0 bg_opa: COVER border_width: 2 border_color: 11449271 radius: 10 pad_all: 0 scrollable: false gesture_bubble: false widgets: - label: text: Printer health / PrintsCharming x: 16 y: 14 width: 716 height: 28 text_color: 15658734 text_font: montserrat_20 long_mode: DOT gesture_bubble: true - obj: x: 12 y: 50 width: 724 height: 246 bg_color: 0 border_width: 0 pad_all: 0 scroll_dir: VER scrollbar_mode: AUTO gesture_bubble: false widgets: - label: text: No current health notifications. x: 0 y: 0 width: 700 height: SIZE_CONTENT text_color: 15658734 text_font: montserrat_18 long_mode: WRAP gesture_bubble: true id: prints_charming_health_details - button: x: 624 y: 310 width: 108 height: 40 bg_color: 1647403 radius: 6 widgets: - label: text: CLOSE align: CENTER on_click: - lvgl.widget.hide: prints_charming_health_panel - id: polly_pocket_page bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false scrollbar_mode: 'OFF' on_swipe_left: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.next: animation: MOVE_LEFT time: 180ms on_swipe_right: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.previous: animation: MOVE_RIGHT time: 180ms on_load: - script.execute: polly_pocket_refresh widgets: - bar: id: polly_pocket_top_progress x: 0 y: 0 width: 800 height: 5 min_value: 0 max_value: 100 value: 0 bg_color: 1647403 indicator: bg_color: 65280 gesture_bubble: true - label: text: Polly-Pocket x: 16 y: 17 width: 485 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true - label: text: 3 / 8 x: 520 y: 24 width: 70 height: 22 text_color: 11449271 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: SYNCING x: 598 y: 21 width: 186 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_status_label text_align: RIGHT clickable: true on_click: - lvgl.widget.show: polly_pocket_health_panel - obj: x: 578 y: 64 width: 1 height: 362 bg_color: 1647403 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - arc: id: polly_pocket_progress_arc x: 24 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: polly_pocket_progress_label text_align: CENTER - label: text: -- x: 30 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_progress_detail text_align: CENTER - label: text: Progress x: 16 y: 199 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: polly_pocket_nozzle_arc x: 210 y: 62 width: 154 height: 154 min_value: 0 max_value: 300 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 16755200 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: polly_pocket_nozzle_label text_align: CENTER - label: text: -- x: 216 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_nozzle_detail text_align: CENTER - label: text: Nozzle x: 202 y: 199 width: 170 height: 26 text_color: 16755200 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: polly_pocket_bed_arc x: 396 y: 62 width: 154 height: 154 min_value: 0 max_value: 120 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 58853 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: polly_pocket_bed_label text_align: CENTER - label: text: -- x: 402 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_bed_detail text_align: CENTER - label: text: Bed x: 388 y: 199 width: 170 height: 26 text_color: 58853 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: polly_pocket_fan_arc x: 24 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: polly_pocket_fan_label text_align: CENTER - label: text: -- x: 30 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_fan_detail text_align: CENTER - label: text: Part x: 16 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: polly_pocket_aux_arc x: 210 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: polly_pocket_aux_label text_align: CENTER - label: text: -- x: 216 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_aux_detail text_align: CENTER - label: text: Aux x: 202 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: polly_pocket_exhaust_arc x: 396 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: polly_pocket_exhaust_label text_align: CENTER - label: text: -- x: 402 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_exhaust_detail text_align: CENTER - label: text: Exhaust x: 388 y: 366 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: -- x: 16 y: 401 width: 544 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true id: polly_pocket_remaining_label text_align: CENTER - label: text: Telemetry unavailable x: 16 y: 430 width: 544 height: 20 text_color: 11449271 text_font: montserrat_12 long_mode: SCROLL_CIRCULAR gesture_bubble: true id: polly_pocket_stage_label text_align: CENTER clickable: true on_click: - lvgl.widget.show: polly_pocket_health_panel - label: text: -- x: 594 y: 397 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: polly_pocket_layers_label text_align: CENTER - label: text: EXTERNAL SPOOL x: 594 y: 70 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: id: polly_pocket_tray_0_card x: 594 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: polly_pocket_tray_0_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'EXT --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: polly_pocket_tray_0_label text_align: CENTER - button: x: 16 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: < align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.previous: {} - button: x: 720 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: '>' align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.next: {} - label: text: Waiting for Home Assistant x: 94 y: 449 width: 612 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: polly_pocket_task_label text_align: CENTER - obj: id: polly_pocket_health_panel x: 24 y: 62 width: 752 height: 366 hidden: true bg_color: 0 bg_opa: COVER border_width: 2 border_color: 11449271 radius: 10 pad_all: 0 scrollable: false gesture_bubble: false widgets: - label: text: Printer health / Polly-Pocket x: 16 y: 14 width: 716 height: 28 text_color: 15658734 text_font: montserrat_20 long_mode: DOT gesture_bubble: true - obj: x: 12 y: 50 width: 724 height: 246 bg_color: 0 border_width: 0 pad_all: 0 scroll_dir: VER scrollbar_mode: AUTO gesture_bubble: false widgets: - label: text: No current health notifications. x: 0 y: 0 width: 700 height: SIZE_CONTENT text_color: 15658734 text_font: montserrat_18 long_mode: WRAP gesture_bubble: true id: polly_pocket_health_details - button: x: 624 y: 310 width: 108 height: 40 bg_color: 1647403 radius: 6 widgets: - label: text: CLOSE align: CENTER on_click: - lvgl.widget.hide: polly_pocket_health_panel - id: ds_turd_flinger_page bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false scrollbar_mode: 'OFF' on_swipe_left: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.next: animation: MOVE_LEFT time: 180ms on_swipe_right: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.previous: animation: MOVE_RIGHT time: 180ms on_load: - script.execute: ds_turd_flinger_refresh widgets: - bar: id: ds_turd_flinger_top_progress x: 0 y: 0 width: 800 height: 5 min_value: 0 max_value: 100 value: 0 bg_color: 1647403 indicator: bg_color: 65280 gesture_bubble: true - label: text: Ds-Turd-Flinger x: 16 y: 17 width: 485 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true - label: text: 4 / 8 x: 520 y: 24 width: 70 height: 22 text_color: 11449271 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: SYNCING x: 598 y: 21 width: 186 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_status_label text_align: RIGHT clickable: true on_click: - lvgl.widget.show: ds_turd_flinger_health_panel - obj: x: 578 y: 64 width: 1 height: 362 bg_color: 1647403 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - arc: id: ds_turd_flinger_progress_arc x: 24 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_progress_label text_align: CENTER - label: text: -- x: 30 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_progress_detail text_align: CENTER - label: text: Progress x: 16 y: 199 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: ds_turd_flinger_nozzle_arc x: 210 y: 62 width: 154 height: 154 min_value: 0 max_value: 300 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 16755200 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_nozzle_label text_align: CENTER - label: text: -- x: 216 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_nozzle_detail text_align: CENTER - label: text: Nozzle x: 202 y: 199 width: 170 height: 26 text_color: 16755200 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: ds_turd_flinger_bed_arc x: 396 y: 62 width: 154 height: 154 min_value: 0 max_value: 120 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 58853 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_bed_label text_align: CENTER - label: text: -- x: 402 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_bed_detail text_align: CENTER - label: text: Bed x: 388 y: 199 width: 170 height: 26 text_color: 58853 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: ds_turd_flinger_fan_arc x: 24 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_fan_label text_align: CENTER - label: text: -- x: 30 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_fan_detail text_align: CENTER - label: text: Part x: 16 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: ds_turd_flinger_aux_arc x: 210 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_aux_label text_align: CENTER - label: text: -- x: 216 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_aux_detail text_align: CENTER - label: text: Aux x: 202 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: ds_turd_flinger_exhaust_arc x: 396 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_exhaust_label text_align: CENTER - label: text: -- x: 402 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_exhaust_detail text_align: CENTER - label: text: Exhaust x: 388 y: 366 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: -- x: 16 y: 401 width: 544 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_remaining_label text_align: CENTER - label: text: Telemetry unavailable x: 16 y: 430 width: 544 height: 20 text_color: 11449271 text_font: montserrat_12 long_mode: SCROLL_CIRCULAR gesture_bubble: true id: ds_turd_flinger_stage_label text_align: CENTER clickable: true on_click: - lvgl.widget.show: ds_turd_flinger_health_panel - label: text: -- x: 594 y: 397 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_layers_label text_align: CENTER - label: text: AMS A x: 594 y: 70 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: id: ds_turd_flinger_tray_0_card x: 594 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: ds_turd_flinger_tray_0_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A1 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_tray_0_label text_align: CENTER - obj: id: ds_turd_flinger_tray_1_card x: 642 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: ds_turd_flinger_tray_1_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A2 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_tray_1_label text_align: CENTER - obj: id: ds_turd_flinger_tray_2_card x: 690 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: ds_turd_flinger_tray_2_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A3 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_tray_2_label text_align: CENTER - obj: id: ds_turd_flinger_tray_3_card x: 738 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: ds_turd_flinger_tray_3_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A4 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_tray_3_label text_align: CENTER - button: x: 16 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: < align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.previous: {} - button: x: 720 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: '>' align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.next: {} - label: text: Waiting for Home Assistant x: 94 y: 449 width: 612 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: ds_turd_flinger_task_label text_align: CENTER - obj: id: ds_turd_flinger_health_panel x: 24 y: 62 width: 752 height: 366 hidden: true bg_color: 0 bg_opa: COVER border_width: 2 border_color: 11449271 radius: 10 pad_all: 0 scrollable: false gesture_bubble: false widgets: - label: text: Printer health / Ds-Turd-Flinger x: 16 y: 14 width: 716 height: 28 text_color: 15658734 text_font: montserrat_20 long_mode: DOT gesture_bubble: true - obj: x: 12 y: 50 width: 724 height: 246 bg_color: 0 border_width: 0 pad_all: 0 scroll_dir: VER scrollbar_mode: AUTO gesture_bubble: false widgets: - label: text: No current health notifications. x: 0 y: 0 width: 700 height: SIZE_CONTENT text_color: 15658734 text_font: montserrat_18 long_mode: WRAP gesture_bubble: true id: ds_turd_flinger_health_details - button: x: 624 y: 310 width: 108 height: 40 bg_color: 1647403 radius: 6 widgets: - label: text: CLOSE align: CENTER on_click: - lvgl.widget.hide: ds_turd_flinger_health_panel - id: jordyns_layer_slayer_page bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false scrollbar_mode: 'OFF' on_swipe_left: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.next: animation: MOVE_LEFT time: 180ms on_swipe_right: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.previous: animation: MOVE_RIGHT time: 180ms on_load: - script.execute: jordyns_layer_slayer_refresh widgets: - bar: id: jordyns_layer_slayer_top_progress x: 0 y: 0 width: 800 height: 5 min_value: 0 max_value: 100 value: 0 bg_color: 1647403 indicator: bg_color: 65280 gesture_bubble: true - label: text: Jordyns-Layer-Slayer x: 16 y: 17 width: 485 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true - label: text: 5 / 8 x: 520 y: 24 width: 70 height: 22 text_color: 11449271 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: SYNCING x: 598 y: 21 width: 186 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_status_label text_align: RIGHT clickable: true on_click: - lvgl.widget.show: jordyns_layer_slayer_health_panel - obj: x: 578 y: 64 width: 1 height: 362 bg_color: 1647403 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - arc: id: jordyns_layer_slayer_progress_arc x: 24 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_progress_label text_align: CENTER - label: text: -- x: 30 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_progress_detail text_align: CENTER - label: text: Progress x: 16 y: 199 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: jordyns_layer_slayer_nozzle_arc x: 210 y: 62 width: 154 height: 154 min_value: 0 max_value: 300 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 16755200 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_nozzle_label text_align: CENTER - label: text: -- x: 216 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_nozzle_detail text_align: CENTER - label: text: Nozzle x: 202 y: 199 width: 170 height: 26 text_color: 16755200 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: jordyns_layer_slayer_bed_arc x: 396 y: 62 width: 154 height: 154 min_value: 0 max_value: 120 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 58853 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_bed_label text_align: CENTER - label: text: -- x: 402 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_bed_detail text_align: CENTER - label: text: Bed x: 388 y: 199 width: 170 height: 26 text_color: 58853 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: jordyns_layer_slayer_fan_arc x: 24 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_fan_label text_align: CENTER - label: text: -- x: 30 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_fan_detail text_align: CENTER - label: text: Part x: 16 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: jordyns_layer_slayer_aux_arc x: 210 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_aux_label text_align: CENTER - label: text: -- x: 216 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_aux_detail text_align: CENTER - label: text: Aux x: 202 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: jordyns_layer_slayer_exhaust_arc x: 396 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_exhaust_label text_align: CENTER - label: text: -- x: 402 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_exhaust_detail text_align: CENTER - label: text: Exhaust x: 388 y: 366 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: -- x: 16 y: 401 width: 544 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_remaining_label text_align: CENTER - label: text: Telemetry unavailable x: 16 y: 430 width: 544 height: 20 text_color: 11449271 text_font: montserrat_12 long_mode: SCROLL_CIRCULAR gesture_bubble: true id: jordyns_layer_slayer_stage_label text_align: CENTER clickable: true on_click: - lvgl.widget.show: jordyns_layer_slayer_health_panel - label: text: -- x: 594 y: 397 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_layers_label text_align: CENTER - label: text: AMS A x: 594 y: 70 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: id: jordyns_layer_slayer_tray_0_card x: 594 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: jordyns_layer_slayer_tray_0_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A1 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_tray_0_label text_align: CENTER - obj: id: jordyns_layer_slayer_tray_1_card x: 642 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: jordyns_layer_slayer_tray_1_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A2 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_tray_1_label text_align: CENTER - obj: id: jordyns_layer_slayer_tray_2_card x: 690 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: jordyns_layer_slayer_tray_2_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A3 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_tray_2_label text_align: CENTER - obj: id: jordyns_layer_slayer_tray_3_card x: 738 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: jordyns_layer_slayer_tray_3_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A4 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_tray_3_label text_align: CENTER - button: x: 16 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: < align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.previous: {} - button: x: 720 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: '>' align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.next: {} - label: text: Waiting for Home Assistant x: 94 y: 449 width: 612 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: jordyns_layer_slayer_task_label text_align: CENTER - obj: id: jordyns_layer_slayer_health_panel x: 24 y: 62 width: 752 height: 366 hidden: true bg_color: 0 bg_opa: COVER border_width: 2 border_color: 11449271 radius: 10 pad_all: 0 scrollable: false gesture_bubble: false widgets: - label: text: Printer health / Jordyns-Layer-Slayer x: 16 y: 14 width: 716 height: 28 text_color: 15658734 text_font: montserrat_20 long_mode: DOT gesture_bubble: true - obj: x: 12 y: 50 width: 724 height: 246 bg_color: 0 border_width: 0 pad_all: 0 scroll_dir: VER scrollbar_mode: AUTO gesture_bubble: false widgets: - label: text: No current health notifications. x: 0 y: 0 width: 700 height: SIZE_CONTENT text_color: 15658734 text_font: montserrat_18 long_mode: WRAP gesture_bubble: true id: jordyns_layer_slayer_health_details - button: x: 624 y: 310 width: 108 height: 40 bg_color: 1647403 radius: 6 widgets: - label: text: CLOSE align: CENTER on_click: - lvgl.widget.hide: jordyns_layer_slayer_health_panel - id: constipation_orion_page bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false scrollbar_mode: 'OFF' on_swipe_left: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.next: animation: MOVE_LEFT time: 180ms on_swipe_right: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.previous: animation: MOVE_RIGHT time: 180ms on_load: - script.execute: constipation_orion_refresh widgets: - bar: id: constipation_orion_top_progress x: 0 y: 0 width: 800 height: 5 min_value: 0 max_value: 100 value: 0 bg_color: 1647403 indicator: bg_color: 65280 gesture_bubble: true - label: text: Constipation-Orion x: 16 y: 17 width: 485 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true - label: text: 6 / 8 x: 520 y: 24 width: 70 height: 22 text_color: 11449271 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: SYNCING x: 598 y: 21 width: 186 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_status_label text_align: RIGHT clickable: true on_click: - lvgl.widget.show: constipation_orion_health_panel - obj: x: 578 y: 64 width: 1 height: 362 bg_color: 1647403 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - arc: id: constipation_orion_progress_arc x: 24 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: constipation_orion_progress_label text_align: CENTER - label: text: -- x: 30 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_progress_detail text_align: CENTER - label: text: Progress x: 16 y: 199 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: constipation_orion_nozzle_arc x: 210 y: 62 width: 154 height: 154 min_value: 0 max_value: 300 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 16755200 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: constipation_orion_nozzle_label text_align: CENTER - label: text: -- x: 216 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_nozzle_detail text_align: CENTER - label: text: Nozzle L x: 202 y: 199 width: 170 height: 26 text_color: 16755200 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: constipation_orion_bed_arc x: 396 y: 62 width: 154 height: 154 min_value: 0 max_value: 120 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 58853 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: constipation_orion_bed_label text_align: CENTER - label: text: -- x: 402 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_bed_detail text_align: CENTER - label: text: Bed x: 388 y: 199 width: 170 height: 26 text_color: 58853 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: constipation_orion_fan_arc x: 24 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: constipation_orion_fan_label text_align: CENTER - label: text: -- x: 30 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_fan_detail text_align: CENTER - label: text: Part x: 16 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: constipation_orion_aux_arc x: 210 y: 229 width: 154 height: 154 min_value: 0 max_value: 300 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 16755200 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: constipation_orion_aux_label text_align: CENTER - label: text: -- x: 216 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_aux_detail text_align: CENTER - label: text: Nozzle R x: 202 y: 366 width: 170 height: 26 text_color: 16755200 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: constipation_orion_exhaust_arc x: 396 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: constipation_orion_exhaust_label text_align: CENTER - label: text: -- x: 402 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_exhaust_detail text_align: CENTER - label: text: Exhaust x: 388 y: 366 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: -- x: 16 y: 401 width: 544 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true id: constipation_orion_remaining_label text_align: CENTER - label: text: Telemetry unavailable x: 16 y: 430 width: 544 height: 20 text_color: 11449271 text_font: montserrat_12 long_mode: SCROLL_CIRCULAR gesture_bubble: true id: constipation_orion_stage_label text_align: CENTER clickable: true on_click: - lvgl.widget.show: constipation_orion_health_panel - label: text: -- x: 594 y: 397 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: constipation_orion_layers_label text_align: CENTER - label: text: AMS A x: 594 y: 70 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: id: constipation_orion_tray_0_card x: 594 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: constipation_orion_tray_0_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A1 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: constipation_orion_tray_0_label text_align: CENTER - obj: id: constipation_orion_tray_1_card x: 642 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: constipation_orion_tray_1_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A2 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: constipation_orion_tray_1_label text_align: CENTER - obj: id: constipation_orion_tray_2_card x: 690 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: constipation_orion_tray_2_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A3 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: constipation_orion_tray_2_label text_align: CENTER - obj: id: constipation_orion_tray_3_card x: 738 y: 102 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: constipation_orion_tray_3_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'A4 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: constipation_orion_tray_3_label text_align: CENTER - label: text: AMS B x: 594 y: 215 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: id: constipation_orion_tray_4_card x: 594 y: 247 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: constipation_orion_tray_4_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'B1 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: constipation_orion_tray_4_label text_align: CENTER - obj: id: constipation_orion_tray_5_card x: 642 y: 247 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: constipation_orion_tray_5_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'B2 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: constipation_orion_tray_5_label text_align: CENTER - obj: id: constipation_orion_tray_6_card x: 690 y: 247 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: constipation_orion_tray_6_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'B3 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: constipation_orion_tray_6_label text_align: CENTER - obj: id: constipation_orion_tray_7_card x: 738 y: 247 width: 44 height: 82 bg_color: 0 radius: 5 border_width: 1 border_color: 1647403 pad_all: 0 scrollable: false gesture_bubble: true widgets: - obj: id: constipation_orion_tray_7_swatch x: 3 y: 3 width: 36 height: 40 bg_color: 1647403 radius: 4 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - label: text: 'B4 --' x: 1 y: 46 width: 40 height: 34 text_color: 15658734 text_font: montserrat_12 long_mode: DOT gesture_bubble: true id: constipation_orion_tray_7_label text_align: CENTER - button: x: 16 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: < align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.previous: {} - button: x: 720 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: '>' align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.next: {} - label: text: Waiting for Home Assistant x: 94 y: 449 width: 612 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: constipation_orion_task_label text_align: CENTER - obj: id: constipation_orion_health_panel x: 24 y: 62 width: 752 height: 366 hidden: true bg_color: 0 bg_opa: COVER border_width: 2 border_color: 11449271 radius: 10 pad_all: 0 scrollable: false gesture_bubble: false widgets: - label: text: Printer health / Constipation-Orion x: 16 y: 14 width: 716 height: 28 text_color: 15658734 text_font: montserrat_20 long_mode: DOT gesture_bubble: true - obj: x: 12 y: 50 width: 724 height: 246 bg_color: 0 border_width: 0 pad_all: 0 scroll_dir: VER scrollbar_mode: AUTO gesture_bubble: false widgets: - label: text: No current health notifications. x: 0 y: 0 width: 700 height: SIZE_CONTENT text_color: 15658734 text_font: montserrat_18 long_mode: WRAP gesture_bubble: true id: constipation_orion_health_details - button: x: 624 y: 310 width: 108 height: 40 bg_color: 1647403 radius: 6 widgets: - label: text: CLOSE align: CENTER on_click: - lvgl.widget.hide: constipation_orion_health_panel - id: centauri_carbon_page bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false scrollbar_mode: 'OFF' on_swipe_left: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.next: animation: MOVE_LEFT time: 180ms on_swipe_right: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.previous: animation: MOVE_RIGHT time: 180ms on_load: - script.execute: centauri_carbon_refresh widgets: - bar: id: centauri_carbon_top_progress x: 0 y: 0 width: 800 height: 5 min_value: 0 max_value: 100 value: 0 bg_color: 1647403 indicator: bg_color: 65280 gesture_bubble: true - label: text: Centauri Carbon x: 16 y: 17 width: 485 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true - label: text: 7 / 8 x: 520 y: 24 width: 70 height: 22 text_color: 11449271 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: SYNCING x: 598 y: 21 width: 186 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_status_label text_align: RIGHT clickable: true on_click: - lvgl.widget.show: centauri_carbon_health_panel - obj: x: 578 y: 64 width: 1 height: 362 bg_color: 1647403 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - arc: id: centauri_carbon_progress_arc x: 24 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: centauri_carbon_progress_label text_align: CENTER - label: text: -- x: 30 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_progress_detail text_align: CENTER - label: text: Progress x: 16 y: 199 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: centauri_carbon_nozzle_arc x: 210 y: 62 width: 154 height: 154 min_value: 0 max_value: 300 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 16755200 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: centauri_carbon_nozzle_label text_align: CENTER - label: text: -- x: 216 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_nozzle_detail text_align: CENTER - label: text: Nozzle x: 202 y: 199 width: 170 height: 26 text_color: 16755200 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: centauri_carbon_bed_arc x: 396 y: 62 width: 154 height: 154 min_value: 0 max_value: 120 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 58853 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: centauri_carbon_bed_label text_align: CENTER - label: text: -- x: 402 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_bed_detail text_align: CENTER - label: text: Bed x: 388 y: 199 width: 170 height: 26 text_color: 58853 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: centauri_carbon_fan_arc x: 24 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: centauri_carbon_fan_label text_align: CENTER - label: text: -- x: 30 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_fan_detail text_align: CENTER - label: text: Part x: 16 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: centauri_carbon_aux_arc x: 210 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 15658734 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: centauri_carbon_aux_label text_align: CENTER - label: text: -- x: 216 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_aux_detail text_align: CENTER - label: text: Aux x: 202 y: 366 width: 170 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: centauri_carbon_exhaust_arc x: 396 y: 229 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 276 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: centauri_carbon_exhaust_label text_align: CENTER - label: text: -- x: 402 y: 315 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_exhaust_detail text_align: CENTER - label: text: Exhaust x: 388 y: 366 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: -- x: 16 y: 401 width: 544 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true id: centauri_carbon_remaining_label text_align: CENTER - label: text: Telemetry unavailable x: 16 y: 430 width: 544 height: 20 text_color: 11449271 text_font: montserrat_12 long_mode: SCROLL_CIRCULAR gesture_bubble: true id: centauri_carbon_stage_label text_align: CENTER clickable: true on_click: - lvgl.widget.show: centauri_carbon_health_panel - label: text: -- x: 594 y: 397 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: centauri_carbon_layers_label text_align: CENTER - label: text: ELEGOO x: 594 y: 150 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: FDM / Office x: 594 y: 185 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true text_align: CENTER - button: x: 16 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: < align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.previous: {} - button: x: 720 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: '>' align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.next: {} - label: text: Waiting for Home Assistant x: 94 y: 449 width: 612 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: centauri_carbon_task_label text_align: CENTER - obj: id: centauri_carbon_health_panel x: 24 y: 62 width: 752 height: 366 hidden: true bg_color: 0 bg_opa: COVER border_width: 2 border_color: 11449271 radius: 10 pad_all: 0 scrollable: false gesture_bubble: false widgets: - label: text: Printer health / Centauri Carbon x: 16 y: 14 width: 716 height: 28 text_color: 15658734 text_font: montserrat_20 long_mode: DOT gesture_bubble: true - obj: x: 12 y: 50 width: 724 height: 246 bg_color: 0 border_width: 0 pad_all: 0 scroll_dir: VER scrollbar_mode: AUTO gesture_bubble: false widgets: - label: text: No current health notifications. x: 0 y: 0 width: 700 height: SIZE_CONTENT text_color: 15658734 text_font: montserrat_18 long_mode: WRAP gesture_bubble: true id: centauri_carbon_health_details - button: x: 624 y: 310 width: 108 height: 40 bg_color: 1647403 radius: 6 widgets: - label: text: CLOSE align: CENTER on_click: - lvgl.widget.hide: centauri_carbon_health_panel - id: saturn_page bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false scrollbar_mode: 'OFF' on_swipe_left: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.next: animation: MOVE_LEFT time: 180ms on_swipe_right: - lambda: !lambda |- if (auto *input = lv_indev_active()) lv_indev_wait_release(input); - lvgl.page.previous: animation: MOVE_RIGHT time: 180ms on_load: - script.execute: saturn_refresh widgets: - bar: id: saturn_top_progress x: 0 y: 0 width: 800 height: 5 min_value: 0 max_value: 100 value: 0 bg_color: 1647403 indicator: bg_color: 65280 gesture_bubble: true - label: text: Saturn x: 16 y: 17 width: 485 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true - label: text: 8 / 8 x: 520 y: 24 width: 70 height: 22 text_color: 11449271 text_font: montserrat_14 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: SYNCING x: 598 y: 21 width: 186 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: saturn_status_label text_align: RIGHT clickable: true on_click: - lvgl.widget.show: saturn_health_panel - obj: x: 578 y: 64 width: 1 height: 362 bg_color: 1647403 border_width: 0 pad_all: 0 scrollable: false gesture_bubble: true - arc: id: saturn_progress_arc x: 24 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 65280 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 30 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: saturn_progress_label text_align: CENTER - label: text: -- x: 30 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: saturn_progress_detail text_align: CENTER - label: text: Progress x: 16 y: 199 width: 170 height: 26 text_color: 65280 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: saturn_uv_arc x: 210 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 16755200 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 216 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: saturn_uv_label text_align: CENTER - label: text: -- x: 216 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: saturn_uv_detail text_align: CENTER - label: text: UV LED x: 202 y: 199 width: 170 height: 26 text_color: 16755200 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - arc: id: saturn_layer_arc x: 396 y: 62 width: 154 height: 154 min_value: 0 max_value: 100 value: 0 start_angle: 135 end_angle: 45 arc_width: 13 arc_color: 1647403 indicator: arc_color: 58853 arc_width: 13 adjustable: false gesture_bubble: true - label: text: -- x: 402 y: 109 width: 142 height: 40 text_color: 15658734 text_font: montserrat_32 long_mode: DOT gesture_bubble: true id: saturn_layer_label text_align: CENTER - label: text: -- x: 402 y: 148 width: 142 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: saturn_layer_detail text_align: CENTER - label: text: Layer x: 388 y: 199 width: 170 height: 26 text_color: 58853 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: FINISH / TIME REMAINING x: 16 y: 260 width: 544 height: 26 text_color: 11449271 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: -- x: 16 y: 354 width: 544 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true id: saturn_elapsed_label text_align: CENTER - label: text: -- x: 16 y: 300 width: 544 height: 34 text_color: 65280 text_font: montserrat_26 long_mode: DOT gesture_bubble: true id: saturn_remaining_label text_align: CENTER - label: text: Telemetry unavailable x: 16 y: 430 width: 544 height: 20 text_color: 11449271 text_font: montserrat_12 long_mode: SCROLL_CIRCULAR gesture_bubble: true id: saturn_stage_label text_align: CENTER clickable: true on_click: - lvgl.widget.show: saturn_health_panel - label: text: -- x: 594 y: 397 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true id: saturn_layers_label text_align: CENTER - label: text: ELEGOO x: 594 y: 150 width: 190 height: 28 text_color: 11449271 text_font: montserrat_20 long_mode: DOT gesture_bubble: true text_align: CENTER - label: text: Resin / Garage x: 594 y: 185 width: 190 height: 24 text_color: 11449271 text_font: montserrat_16 long_mode: DOT gesture_bubble: true text_align: CENTER - button: x: 16 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: < align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.previous: {} - button: x: 720 y: 446 width: 64 height: 30 bg_color: 1647403 radius: 8 border_width: 0 pad_all: 0 gesture_bubble: true widgets: - label: text: '>' align: CENTER text_color: 15658734 text_font: montserrat_18 on_click: - lvgl.page.next: {} - label: text: Waiting for Home Assistant x: 94 y: 449 width: 612 height: 22 text_color: 15658734 text_font: montserrat_14 long_mode: DOT gesture_bubble: true id: saturn_task_label text_align: CENTER - obj: id: saturn_health_panel x: 24 y: 62 width: 752 height: 366 hidden: true bg_color: 0 bg_opa: COVER border_width: 2 border_color: 11449271 radius: 10 pad_all: 0 scrollable: false gesture_bubble: false widgets: - label: text: Printer health / Saturn x: 16 y: 14 width: 716 height: 28 text_color: 15658734 text_font: montserrat_20 long_mode: DOT gesture_bubble: true - obj: x: 12 y: 50 width: 724 height: 246 bg_color: 0 border_width: 0 pad_all: 0 scroll_dir: VER scrollbar_mode: AUTO gesture_bubble: false widgets: - label: text: No current health notifications. x: 0 y: 0 width: 700 height: SIZE_CONTENT text_color: 15658734 text_font: montserrat_18 long_mode: WRAP gesture_bubble: true id: saturn_health_details - button: x: 624 y: 310 width: 108 height: 40 bg_color: 1647403 radius: 6 widgets: - label: text: CLOSE align: CENTER on_click: - lvgl.widget.hide: saturn_health_panel - id: color_test_page skip: true bg_color: 0 bg_opa: COVER pad_all: 0 scrollable: false on_swipe_left: - lvgl.page.next: {} on_swipe_right: - lvgl.page.previous: {} widgets: - label: text: DISPLAY COLOR TEST x: 16 y: 18 width: 768 height: 36 text_color: 15658734 text_font: montserrat_28 long_mode: DOT gesture_bubble: true - label: text: Each block must match its label. Swipe to return to the printers. x: 16 y: 62 width: 768 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true - obj: x: 16 y: 118 width: 122 height: 200 bg_color: 16711680 bg_opa: COVER border_width: 0 scrollable: false gesture_bubble: true - label: text: RED x: 16 y: 332 width: 122 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: x: 145 y: 118 width: 122 height: 200 bg_color: 65280 bg_opa: COVER border_width: 0 scrollable: false gesture_bubble: true - label: text: GREEN x: 145 y: 332 width: 122 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: x: 274 y: 118 width: 122 height: 200 bg_color: 255 bg_opa: COVER border_width: 0 scrollable: false gesture_bubble: true - label: text: BLUE x: 274 y: 332 width: 122 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: x: 403 y: 118 width: 122 height: 200 bg_color: 16777215 bg_opa: COVER border_width: 0 scrollable: false gesture_bubble: true - label: text: WHITE x: 403 y: 332 width: 122 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: x: 532 y: 118 width: 122 height: 200 bg_color: 65535 bg_opa: COVER border_width: 0 scrollable: false gesture_bubble: true - label: text: CYAN x: 532 y: 332 width: 122 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER - obj: x: 661 y: 118 width: 122 height: 200 bg_color: 16711935 bg_opa: COVER border_width: 0 scrollable: false gesture_bubble: true - label: text: MAGENTA x: 661 y: 332 width: 122 height: 26 text_color: 15658734 text_font: montserrat_18 long_mode: DOT gesture_bubble: true text_align: CENTER button: - platform: template name: Display Color Test entity_category: diagnostic on_press: - lvgl.page.show: color_test_page