esphome: name: network-monitor friendly_name: network-monitor min_version: 2024.11.0 name_add_mac_suffix: false esp32: board: esp32dev framework: type: esp-idf # Enable logging logger: # Enable Home Assistant API api: encryption: key: # Allow Over-The-Air updates ota: - platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_password sensor: - platform: homeassistant id: network_intake_temp entity_id: sensor.network_monitor_network_intake_temp internal: true - platform: homeassistant id: network_middle_temp entity_id: sensor.network_monitor_network_middle_temp internal: true - platform: homeassistant id: network_top_temp entity_id: sensor.network_monitor_network_top_temp internal: true - platform: homeassistant id: network_pdu_power entity_id: sensor.pdu_switch_0_power internal: true - platform: dht pin: GPIO21 model: DHT22 temperature: name: "Network Intake Temp" humidity: name: "Network Intake Humidity" update_interval: 10s - platform: dht pin: GPIO18 model: DHT22 temperature: name: "Network Middle Temp" humidity: name: "Network Middle Humidity" update_interval: 10s - platform: dht pin: GPIO19 model: DHT22 temperature: name: "Network Top Temp" humidity: name: "Network Top Humidity" update_interval: 10s font: - file: "arial.ttf" id: arial_lg size: 54 - file: "arial.ttf" id: arial_med size: 40 - file: "arial.ttf" id: arial_sm size: 14 i2c: - id: bus_a sda: GPIO27 scl: GPIO26 frequency: 800kHz - id: bus_b sda: GPIO33 scl: GPIO32 frequency: 800kHz display: - platform: ssd1306_i2c i2c_id: bus_a model: "SSD1306 128x64" address: 0x3C lambda: |- it.printf(0, 0, id(arial_med), "%.0f", id(network_intake_temp).state); it.printf(it.get_width(), 0, id(arial_med), TextAlign::TOP_RIGHT, "%3.0f", id(network_middle_temp).state); it.print(0, 47, id(arial_sm), "Intake °F"); it.print(78, 47, id(arial_sm), " Middle"); - platform: ssd1306_i2c i2c_id: bus_b model: "SSD1306 128x64" address: 0x3C lambda: |- it.printf(0, 0, id(arial_med), "%.0f", id(network_top_temp).state); it.print(0, 47, id(arial_sm), "Top °F "); it.print(78, 47, id(arial_sm), "PDU W"); it.printf(it.get_width(), 0, id(arial_med), TextAlign::TOP_RIGHT, "%3.0f", id(network_pdu_power).state);