Ustatnia modyfikacja 1 stycznia 2024 przez Olek
Ponad rok-dwa lata temu wykonałem urządzenie które pozwala na zdalny odczyt wskazań wodomierzy Apator1. Użyłem do tego celu modułu ESP8266 Wemos D1 Mini podłączonego do modułu radiowego CC1101 pracującego na częstotliwości 868MHz. Nakładka licznika wysyła informacje korzystając z protokołu M-BUS2 w wersji radiowej (wireless) WM-BUS. Korzystając z biblioteki wmbusmeters na Github-ie3 stworzyłem własny kod C++ który zaimplementowałem do ESP8266 za pomocą pakietu PlatformIO4 i zaimplementowanego z edytorem VSC5. Komunikacja z HA odbywała się za pośrednictwem protokołu MQTT6. To wszystko wykonałem jeszcze przed tym jak w Home Assistant nie było specjalnej karty zużycia wody w sekcji Energia.
Po kilku miesiącach na forum ArturHome.pl (bardzo dobrego zresztą) napotkałem podobny wątek7 na temat podobnego rozwiązania i podzieliłem się moim. To chyba mocno przyczyniło się do postępu prac. Wynikiem czego powstało bardzo fajna integracja8 na bazie już popularnego i wygodnego dodatku do HA czyli ESPHome9.
Przed kilkoma dniami też się wreszcie przesiadłem na te rozwiązanie. Dążę do tego aby wszystkie elementy zbudowane na ESP były zintegrowana poprzez ESPHome. Daje to wygodną i przejrzystą kontrolę nad tymi elementami.
esphome: name: licznik-wody friendly_name: licznik-wody esp8266: board: d1_mini # Enable logging logger: # level: INFO level: DEBUG # level: VERBOSE # level: VERY_VERBOSE # Enable Home Assistant API api: encryption: key: "xxx" ota: password: "xxx" wifi: networks: - ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Licznik-Wody Fallback Hotspot" password: "xxx" manual_ip: static_ip: 192.168.x.xxx gateway: 192.168.x.x subnet: 255.255.255.x dns1: 192.168.x.x web_server: port: 80 captive_portal: external_components: - source: github://SzczepanLeon/esphome-components@main components: [ wmbus ] time: - platform: sntp id: time_sntp wmbus: mosi_pin: GPIO13 miso_pin: GPIO12 clk_pin: GPIO14 cs_pin: GPIO2 gdo0_pin: GPIO4 gdo2_pin: GPIO5 log_unknown: True sensor: - platform: wmbus meter_id: 0X02198188 type: apator162 key: "00000000000000000000000000000000" add_prefix: False lqi: name: "LQI główny" rssi: name: "RSSI główny" total_water_m3: name: "glowny" - platform: wmbus meter_id: 0X02728389 type: apator162 key: "00000000000000000000000000000000" add_prefix: False lqi: name: "LQI ogrodowy" rssi: name: "RSSI ogrodowy" total_water_m3: name: "ogrodowy" text_sensor: - platform: wmbus name: "Text debug for Apator 16-2" # # https://github.com/SzczepanLeon/esphome-components # # https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-szczepanleon-wersja-2-x-watek-ogolny/9117/69 # # # *********************** Podłączenie fizyczne modułów **************************************** # # +-----------------+| # | | | | | | # [RST] |o o| [TX ] [GPIO1] # [ ADC1 ] [ A0] |o o| [RX ] [GPIO3] # 4 fiolet [GPIO16] [ D0] |o W E M O S o| [D1 ] [GPIO5] 6 zielony # [ SCK] [GPIO14] [ D5] |o o| [D2 ] [GPIO4] 7 żółty # 5 niebie [MISO] [GPIO12] [ D6] |o D1 MINI o| [D3 ] [GPIO0] # 3 biały [MOSI] [GPIO13] [ D7] |o o| [D4 ] [GPIO2] 8 pomar # [ SS ] [GPIO15] [ D8] |o o| [GND] 2 szary # 1 czarny [3v3] |o o| [5V ] # | | # |----|usb|-------| # # # +---------------------+ # 1 czarny [ VCC] |o | # 2 szary [ GND] |o | # 3 biały [MOSI] |o o| [GND] # 4 fiolet [SCLK] |o CC1101 o| [ATN] /\/\/\/\/ # 5 niebie [MISO] |o o| [GND] # 6 zielony [GDO2] |o | # 7 żółty [GDO0] |o | # 8 pomar [ CSN] |o | # +---------------------+ # #
Dorobiłem tylko mocowanie do tych elementów tak aby bezpiecznie przymocować do mojej rozdzielni.
Przy okazji już wspomnę, że mam jeszcze jeden projekt który korzysta z tego samego zestawu hardware. Mianowicie komunikacja ze stacją pogodową Bresser 10. Mam działający produkt na czystym C++ i MQTT. Jest na etapie przejścia do ESPHome, jak się uda to na pewno się tym tu podzielę.
- https://www.apator.com/nasze-rozwiazania/woda-i-cieplo/system-zdalnego-odczytu-mediow/system-radiowy/at-wmbus-16-2-apt-o3a-1 ↩︎
- https://pl.wikipedia.org/wiki/M-Bus ↩︎
- https://github.com/wmbusmeters/wmbusmeters ↩︎
- https://platformio.org/ ↩︎
- https://code.visualstudio.com/ ↩︎
- https://en.wikipedia.org/wiki/MQTT ↩︎
- https://forum.arturhome.pl/t/apator-izar-at-wmbus-16-2-odczyt-wodomierza-esphome-cc1101/7197/12 ↩︎
- https://github.com/SzczepanLeon/esphome-components ↩︎
- https://esphome.io/ ↩︎
- https://www.bresser.de/pl/bresser-bresser-2/Stacje-meteorologiczne/Centrum-pogodowe-BRESSER-5-w-1-COMFORT-z-kolorowym-wy-wietlaczem.html ↩︎