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 ↩︎