From a0c5eb9f0731cfd354bb61bc4bbac0c17a7d3b68 Mon Sep 17 00:00:00 2001 From: Artem Sheremet Date: Wed, 1 Feb 2023 12:17:48 +0100 Subject: [PATCH] Upgrade / fortify esphome configs --- bathroomheater.yaml | 33 +++++++++++------------------ blinds.yaml | 20 ++++++++---------- boiler.yaml | 28 +++++++------------------ empty32.yaml | 16 ++++++++++++++ empty8266.yaml | 20 +++++------------- epaper.yaml | 51 --------------------------------------------- ruuvi.yaml | 20 +++++++----------- wardrobe.yaml | 20 +++++++----------- zehnder.h | 15 ++++++++++++- 9 files changed, 80 insertions(+), 143 deletions(-) create mode 100644 empty32.yaml delete mode 100644 epaper.yaml diff --git a/bathroomheater.yaml b/bathroomheater.yaml index da506eb..23ccf76 100644 --- a/bathroomheater.yaml +++ b/bathroomheater.yaml @@ -1,26 +1,21 @@ esphome: name: bathroomheater - platform: ESP8266 - board: nodemcuv2 + + project: + name: dasfoo.bathroomheater + version: "1.0" + includes: - zehnder.h -logger: +esp8266: + board: nodemcuv2 -web_server: - port: 80 +logger: mqtt: broker: mqtt -switch: -- platform: gpio - pin: - number: D4 - inverted: true - restore_mode: ALWAYS_OFF - name: "Bathroom Heater LED" - dallas: - pin: D1 @@ -28,6 +23,7 @@ sensor: - platform: dallas address: 0x0401212E565C7428 name: "Bathroom Heater Temperature" + id: bathroom_heater_temperature remote_transmitter: pin: D2 @@ -40,6 +36,7 @@ climate: auto heater = new Zehnder(); App.register_component(heater); heater->set_transmitter(id(heater_ir_transmitter)); + heater->add_temperature_sensor(id(bathroom_heater_temperature)); return {heater}; climates: - name: "Bathroom Heater" @@ -52,15 +49,9 @@ interval: lambda: static_cast(id(bathroom_heater))->retransmit(); ota: - password: "" + password: !secret ota_password wifi: ssid: !secret wifi_ssid password: !secret wifi_password - - # Enable fallback hotspot (captive portal) in case wifi connection fails - ap: - ssid: "bathroomheater" - password: !secret wifi_fallback_hotspot_password - -captive_portal: + domain: "" diff --git a/blinds.yaml b/blinds.yaml index 69df13e..57238aa 100644 --- a/blinds.yaml +++ b/blinds.yaml @@ -1,5 +1,10 @@ esphome: name: blinds + + project: + name: dasfoo.blinds + version: "1.0" + includes: - somfy.h @@ -8,9 +13,6 @@ esp8266: logger: -web_server: - port: 80 - mqtt: broker: mqtt id: mqtt_client @@ -18,6 +20,8 @@ mqtt: globals: - id: somfy_remote_id_base type: int + # Can be retrieved from MQTT server. Take the key with lowest integer value + # from /rolling_code/ path. initial_value: !secret somfy_remote_id_base cover: @@ -53,15 +57,9 @@ cover: - name: "Guest East door" ota: - password: "" + password: !secret ota_password wifi: ssid: !secret wifi_ssid password: !secret wifi_password - - # Enable fallback hotspot (captive portal) in case wifi connection fails - ap: - ssid: "blinds" - password: !secret wifi_fallback_hotspot_password - -captive_portal: + domain: "" diff --git a/boiler.yaml b/boiler.yaml index b9562f0..7cf4b79 100644 --- a/boiler.yaml +++ b/boiler.yaml @@ -1,24 +1,18 @@ esphome: name: boiler - platform: ESP8266 + + project: + name: dasfoo.boiler + version: "1.0" + +esp8266: board: nodemcuv2 logger: -web_server: - port: 80 - mqtt: broker: mqtt -switch: -- platform: gpio - pin: - number: D4 - inverted: true - restore_mode: ALWAYS_OFF - name: "Boiler LED" - dallas: - pin: D1 @@ -44,15 +38,9 @@ binary_sensor: - invert: ota: - password: "" + password: !secret ota_password wifi: ssid: !secret wifi_ssid password: !secret wifi_password - - # Enable fallback hotspot (captive portal) in case wifi connection fails - ap: - ssid: "boiler" - password: !secret wifi_fallback_hotspot_password - -captive_portal: + domain: "" diff --git a/empty32.yaml b/empty32.yaml new file mode 100644 index 0000000..5613be8 --- /dev/null +++ b/empty32.yaml @@ -0,0 +1,16 @@ +# To bootstrap and then use OTA to flash firmware. + +esphome: + name: empty32 + name_add_mac_suffix: true + +esp32: + board: esp32doit-devkit-v1 + +ota: + password: !secret ota_password + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + domain: "" diff --git a/empty8266.yaml b/empty8266.yaml index 9a0a68e..44d5085 100644 --- a/empty8266.yaml +++ b/empty8266.yaml @@ -2,25 +2,15 @@ esphome: name: empty8266 - platform: ESP8266 + name_add_mac_suffix: true + +esp8266: board: nodemcuv2 -logger: - -web_server: - port: 80 - -switch: -- platform: gpio - pin: - number: D4 - inverted: true - restore_mode: ALWAYS_OFF - name: "LED" - ota: - password: "" + password: !secret ota_password wifi: ssid: !secret wifi_ssid password: !secret wifi_password + domain: "" diff --git a/epaper.yaml b/epaper.yaml deleted file mode 100644 index 7c80043..0000000 --- a/epaper.yaml +++ /dev/null @@ -1,51 +0,0 @@ -esphome: - name: epaper - platform: ESP32 - board: esp32doit-devkit-v1 - -# Enable logging -logger: - -web_server: - port: 80 - -font: -- file: 'AvalonQuest.ttf' - id: avalon_quest - size: 16 - -spi: - mosi_pin: GPIO23 - clk_pin: GPIO18 - # wtf - miso_pin: GPIO19 - -display: - - platform: waveshare_epaper - cs_pin: GPIO5 - dc_pin: GPIO17 - reset_pin: GPIO16 - busy_pin: GPIO4 - model: 2.13in - rotation: 90° - full_update_every: 30 - lambda: |- - it.clear(); - it.print(10, 10, id(avalon_quest), "ABCD"); - it.print(10, 30, id(avalon_quest), "XXXX"); - it.print(10, 50, id(avalon_quest), "YYYY"); - it.print(10, 70, id(avalon_quest), "WHAT THE HELL"); - -ota: - password: "" - -wifi: - ssid: !secret wifi_ssid - password: !secret wifi_password - - # Enable fallback hotspot (captive portal) in case wifi connection fails - ap: - ssid: "Epaper Fallback Hotspot" - password: !secret wifi_fallback_hotspot_password - -captive_portal: diff --git a/ruuvi.yaml b/ruuvi.yaml index 24a7e9c..22fd209 100644 --- a/ruuvi.yaml +++ b/ruuvi.yaml @@ -1,6 +1,11 @@ esphome: name: ruuvi - platform: ESP32 + + project: + name: dasfoo.ruuvi + version: "1.0" + +esp32: board: esp32doit-devkit-v1 # Enable logging @@ -9,9 +14,6 @@ logger: mqtt: broker: mqtt -web_server: - port: 80 - # Required for ruuvitag. esp32_ble_tracker: @@ -42,15 +44,9 @@ sensor: name: "Outdoor West Sensor Battery Voltage" ota: - password: "" + password: !secret ota_password wifi: ssid: !secret wifi_ssid password: !secret wifi_password - - # Enable fallback hotspot (captive portal) in case wifi connection fails - ap: - ssid: "ruuvi Fallback Hotspot" - password: !secret wifi_fallback_hotspot_password - -captive_portal: + domain: "" diff --git a/wardrobe.yaml b/wardrobe.yaml index 8b6bf46..4f1b343 100644 --- a/wardrobe.yaml +++ b/wardrobe.yaml @@ -1,13 +1,15 @@ esphome: name: wardrobe - platform: ESP8266 + + project: + name: dasfoo.wardrobe + version: "1.0" + +esp8266: board: nodemcuv2 logger: -web_server: - port: 80 - mqtt: broker: mqtt @@ -20,15 +22,9 @@ sensor: name: "Aquarium Temperature" ota: - password: "" + password: !secret ota_password wifi: ssid: !secret wifi_ssid password: !secret wifi_password - - # Enable fallback hotspot (captive portal) in case wifi connection fails - ap: - ssid: "wardrobe" - password: !secret wifi_fallback_hotspot_password - -captive_portal: + domain: "" diff --git a/zehnder.h b/zehnder.h index 7d4dd2c..90d6ded 100644 --- a/zehnder.h +++ b/zehnder.h @@ -62,6 +62,10 @@ class Zehnder : public Component, public Climate { (MAX_TEMPERATURE - MIN_TEMPERATURE) / (TEMPERATURE_LEVELS - 1) ); + if (has_temperature_sensor_) { + traits.set_supports_current_temperature(true); + } + traits.set_supported_modes({ climate::CLIMATE_MODE_HEAT, climate::CLIMATE_MODE_OFF @@ -74,8 +78,17 @@ class Zehnder : public Component, public Climate { this->transmitter_ = transmitter; } + void add_temperature_sensor(sensor::Sensor *temperature_sensor) { + temperature_sensor->add_on_state_callback([this](float temperature_value) { + this->current_temperature = temperature_value; + this->publish_state(); + }); + has_temperature_sensor_ = true; + } + private: - remote_transmitter::RemoteTransmitterComponent *transmitter_; + remote_transmitter::RemoteTransmitterComponent *transmitter_ = nullptr; + bool has_temperature_sensor_ = false; bool transmit_temperature_(float temp) { return this->transmit_level_(temp == 0