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ć :



