Być może kogoś to przekona do używania ESPHome dla ESP8266 i/lub ESP32.
Jest to bazowane na https://github.com/SzczepanLeon/esphome-components
Służy do odczytu z różnych liczników typu gazomierze , wodomierze ,które zdalnie wysyłają dane na częstotliwości 868MHz.
ESP8266 będzie standardowo odczytywał wodomierz , ale uzdatniłem go o funkcję szamba ( niestety w moim regionie oczyszczalnia nie jest możliwa , za wysoki poziom wód gruntowych).
Po naciśnięciu przycisku Szambowóz aktualny stan licznika jest zapisywany we flash (więc nie zginie po rebocie czy zaniku prądu) , a różnica stanu aktualnego i zapisanego jest wyświetlana jako stan szamba.
Wszystko będzie się mniej więcej zgadzać ( no chyba ,że jest nieszczelne 🙂 ) dopuki nie zaczniemy podlewać trawnika...
Yaml napisany w godzinę ,ale soft działa już z tydzień.
esphome: name: apator comment: Licznik wody esp8266: board: nodemcuv2 restore_from_flash: true external_components: - source: github://SzczepanLeon/esphome-components@main refresh: 12h components: [ wmbus ] # Enable logging logger: level: DEBUG # Enable Home Assistant API api: ota: # Serwer with a statistic data and OTA board update web_server: port: 80 version: 2 wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "*************" password: "***************" captive_portal: time: platform: sntp wmbus: mosi_pin: GPIO13 miso_pin: GPIO12 clk_pin: GPIO14 cs_pin: GPIO15 gdo0_pin: GPIO5 gdo2_pin: GPIO4 globals: # Example for global string variable - id: poziomzero type: float restore_value: yes initial_value: '0.001' sensor: - platform: wmbus name: "Wodomierz" meter_id: 0x****** type: apator162 key: "00000000000000000000000000000000" id: wodomierz icon: "mdi:water" - platform: template name: "Szambo" lambda: |- return (id(wodomierz).state - id(poziomzero)) ; unit_of_measurement: "m³" icon: "mdi:storage-tank" state_class: "measurement" accuracy_decimals: 3 update_interval: 60s button: - platform: template name: "Szambowóz" icon: "mdi:water-truck" id: kasowanie on_press: - logger.log: level: DEBUG format: 'Ustawienie poziomu zero szamba na %.5f m³' args: ['id(wodomierz).state'] - globals.set: id: poziomzero value: !lambda 'return id(wodomierz).state;'
Samo ESPHome instaluje się w HA w Ustawienia/Dodatki zaznaczając Uruchamianie przy starcie i Pokaż na pasku bocznym ( pozwoli nam na szybkie wejście w konfigurację) , wchdzimy w ten dodatek , dodajemy plusikiem New Device , wpisujemy nazwę , później je edytujemy na powyższy wzór , instalujemy ( jak wybierzemy Manual to ściągnie się gotowy plik bin do flashowania ESP8266 , później już możemy aktualizować w powietrzu).
Na samym użądzeniu będzie strona , która wygląda tak:
Ale po wgraniu flasha do ESP8266 HA wykryje urządzenie ,które dodajemy i później możemy takie encje z tego stworzyć :