Enhance display configuration and add 3D printer progress bar; update security key in mateusz-room-switch.yaml
This commit is contained in:
		
							parent
							
								
									074c0d3fda
								
							
						
					
					
						commit
						89d8008b79
					
				
							
								
								
									
										45
									
								
								display.yaml
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								display.yaml
									
									
									
									
									
								
							| @ -51,16 +51,16 @@ display: | ||||
|     reset_pin: 4 | ||||
|     lambda: |- | ||||
|       // Define row positions | ||||
|       int icon_row = 5; | ||||
|       int row_y = icon_row + 25; | ||||
|       int margin = 5; | ||||
|       int y_step = 30; | ||||
|       int col_start = 5; | ||||
|       int col_offset = col_start + 25; | ||||
|       int screen_width = 240; | ||||
|       int row_y = margin + 25; | ||||
|       int col_offset = margin + 25; | ||||
|       int icon_size = y_step * 0.75; | ||||
| 
 | ||||
|       // Calculate column and row positions | ||||
|       int col_array[] = {col_start, col_offset + y_step, col_offset + y_step * 2, col_offset + y_step * 3, col_offset + y_step * 5, col_offset + y_step * 7};  | ||||
|       int row_array[] = {icon_row, row_y, row_y + y_step, row_y + y_step * 2, row_y + y_step * 3, row_y + y_step * 4}; | ||||
|       int col_array[] = {margin, col_offset + y_step, col_offset + y_step * 2, col_offset + y_step * 3, col_offset + y_step * 5, col_offset + y_step * 7};  | ||||
|       int row_array[] = {margin, row_y, row_y + y_step, row_y + y_step * 2, row_y + y_step * 3, row_y + y_step * 4}; | ||||
| 
 | ||||
|       it.fill(Color(0, 0, 0));  // Clear screen | ||||
| 
 | ||||
| @ -80,8 +80,10 @@ display: | ||||
|         } | ||||
|          | ||||
|         if (text == "unavailable" || text == "unknown") { | ||||
|             it.filled_triangle(x, y + icon_size, x + icon_size, y + icon_size, x + (icon_size / 2), y, Color(255, 0, 0)); | ||||
|             it.print((x + icon_size / 3) + 1, y, id(my_font), Color(255, 255, 255), "!"); | ||||
|           if (id(triangle_visible)) { | ||||
|             it.filled_triangle(center, y + icon_size, center + icon_size, y + icon_size, center + (icon_size / 2), y, Color(255, 0, 0)); | ||||
|             it.print((center + icon_size / 3) + 1, y, id(my_font), Color(255, 255, 255), "!"); | ||||
|           } | ||||
|         } else if (text == "" && type == "door" || text == "" && type == "motion") { | ||||
|           it.filled_rectangle(x, y, icon_size, icon_size, Color(128, 128, 128)); | ||||
|         } else if (text == "on") { | ||||
| @ -134,6 +136,16 @@ display: | ||||
|       handle_state(4, 4, id(tomek_humidity).state, "humidity"); | ||||
|       handle_state(4, 5, id(mateusz_humidity).state, "humidity"); | ||||
| 
 | ||||
|       // 3D Printer progress bar | ||||
|       if (id(printer_3d_progress).state != "" && id(printer_3d_progress).state != "unknown" && id(printer_3d_progress).state != "unavailable" && id(printer_3d_progress).state != "0") { | ||||
|         int progress_y = row_array[5] + y_step; | ||||
|         it.print(margin, progress_y, id(my_font), Color(255, 255, 255), "3D Printer:"); | ||||
|         int progress_width = screen_width - (2 * margin) - 100; | ||||
|         int progress = (atoi(id(printer_3d_progress).state.c_str()) / 100) * progress_width; | ||||
|         it.filled_rectangle(margin + 90, progress_y, progress, 20, Color(0, 255, 0)); | ||||
|         it.rectangle(margin + 90, progress_y, progress_width, 20, Color(255, 255, 255)); | ||||
|       } | ||||
| 
 | ||||
| # Home Assistant integration | ||||
| text_sensor: | ||||
|   - platform: homeassistant | ||||
| @ -199,6 +211,9 @@ text_sensor: | ||||
|   - platform: homeassistant | ||||
|     entity_id: sensor.mateusz_s_room_sensor_humidity | ||||
|     id: mateusz_humidity | ||||
|   - platform: homeassistant | ||||
|     entity_id: sensor.octoprint_job_percentage | ||||
|     id: printer_3d_progress | ||||
| 
 | ||||
| font: | ||||
|   - id: my_font | ||||
| @ -208,3 +223,17 @@ font: | ||||
|     file: "fonts/JetBrains.ttf" | ||||
|     size: 20 | ||||
|     glyphs: [ "", "", "", "", "" ] | ||||
| 
 | ||||
| interval: | ||||
|   - interval: 1s | ||||
|     then: | ||||
|       lambda: |- | ||||
|         static bool toggle = false; | ||||
|         toggle = !toggle; | ||||
|         id(triangle_visible) = toggle; | ||||
| 
 | ||||
| globals: | ||||
|   - id: triangle_visible | ||||
|     type: bool | ||||
|     restore_value: no | ||||
|     initial_value: 'true' | ||||
|  | ||||
| @ -15,7 +15,7 @@ mdns: | ||||
| 
 | ||||
| api: | ||||
|   encryption: | ||||
|     key: "" | ||||
|     key: "6XGt8kCrllL861S4s3oBM5eUZ+p84JhxZqP6X4EsWE4=" | ||||
| 
 | ||||
| ota: | ||||
|   platform: esphome | ||||
|  | ||||
| @ -47,6 +47,18 @@ binary_sensor: | ||||
|             id(power_switch).publish_state(x); | ||||
|           } | ||||
| 
 | ||||
| text_sensor: | ||||
|   - platform: homeassistant | ||||
|     entity_id: remote.chromecast_hd | ||||
|     id: tv_status | ||||
|     on_value: | ||||
|       - lambda: |- | ||||
|           if (x == "on") { | ||||
|             id(power_switch).turn_on(); | ||||
|           } else { | ||||
|             id(power_switch).turn_off(); | ||||
|           } | ||||
| 
 | ||||
| # Define the switch to control TV power (Only toggled via Home Assistant) | ||||
| switch: | ||||
|   - platform: template | ||||
| @ -54,10 +66,10 @@ switch: | ||||
|     id: power_switch | ||||
|     optimistic: true | ||||
|     restore_mode: RESTORE_DEFAULT_OFF | ||||
|     turn_on_action: | ||||
|       - output.turn_off: tv_relay  # Set P23 LOW | ||||
|       - delay: 300ms | ||||
|       - output.turn_on: tv_relay   # Set P23 HIGH | ||||
|     # turn_on_action: | ||||
|     #   - output.turn_off: tv_relay  # Set P23 LOW | ||||
|     #   - delay: 300ms | ||||
|     #   - output.turn_on: tv_relay   # Set P23 HIGH | ||||
|     turn_off_action: | ||||
|       - output.turn_off: tv_relay  # Set P23 LOW | ||||
|       - delay: 1500ms | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user