Powiadomienia
Wyczyść wszystko

Home Assistant ESPHome z CC1101

1 Wpisów
1 Użytkownicy
1 Likes
2,510 Wyświetleń
(@mig41)
Wpisów: 615
Ekspert
Autor tematu
 

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:

image

Ale po wgraniu flasha do ESP8266 HA wykryje urządzenie ,które dodajemy i później możemy takie encje z tego stworzyć :

image

 

 
Dodane : 08/03/2023 7:53 pm
adrian reacted
Udostępnij: