Jedno z moich pierwszych urządzeń to pilot na podczerwień (odbiornik i nadajnik) oraz pomiar temperatury, wilgotności i ciśnienia (szacunkowy koszt ok 40 PLN, bez zasilacza). Jest też gotowy shield IR do Wemos D1 mini – co jest prostszym rozwiązaniem niż lutowanie całości.
Wykorzystane komponenty:
Wemos D1 mini
BME280
nadajnik i odbiornik podczerwieni
Poniżej schemat logiczny:
Układ połączeń
Uwaga – należy jak najdalej odsunąć czujnik BME280 od Wemos D1
Oprogramowanie
Do układu Wemos D1 mini zostało wgrane oprogramowanie Tasmota Sensor. Wcześniej używałem ESPHome, ale w tym przypadku trudniej obsługiwać sterowanie różnymi pilotami na podczerwień. Tasmota Sensor rozpoznaje kody pilotów różnych dostawców., dzięki czemu skrypty w HomeAssistant są prostsze. Opcjonalnie można by też użyć wersji tasmota-ir, aby obsłużyć więcej różnych dostawców urządzeń IR.
Konfiguracja
Tasmota Sensor
Dodatkowo w Tasmocie jest ustawiona konfiguracja połączenia do serwera MQTT.
Odczyt kodów IR z pilota najlepiej przeprowadzić z poziomu konsoli Tasmota.
HomeAssistant
Czujnik BME280 wykrywany jest automatycznie przez HA.
Przykładowy skrypt wysyłający kod IR do urządzenia:
Poniżej tania integracja (ok. 50PLN) odczytu bieżącego zużycia wody z licznika Multical 21. Aby uruchomić tą integracja trzeba:
spore umiejętności przy lutowaniu oraz
kontakt z firmą, która obsługuje rozliczenie wody i trochę cierpliwości, aby otrzymać kod deszyfrujący AES dla licznika
Licznik Multial 21 może wysyłać dane bezprzewodowo przy użyciu protokołu Wireless M-Bus. Multical21 zapewnia następujące dane:
licznik całkowity – całkowite zużycie wody w m³
licznik docelowy – zużycie wody do 1. dnia bieżącego miesiąca
temperatura średnia – w °C
temperatura otoczenia – w °C
kody informacyjne – BURST, LEAK, DRY, REVERSE, TAMPER, RADIO OFF
Kod informacyjny wyświetlany na wyświetlaczu
Znaczenie
LEAK
W ciągu ostatniej doby nie zanotowano zatrzymania przepływu przez wodomierz przez minimum jedną godzinę. Może to świadczyć o nieszczelności kranu lub zbiornika toalety.
BURST
Stałe wysokie zużycie wody w ciągu pół godziny, co oznacza pęknięcie rury.
TAMPER
Próba oszustwa. Wodomierz nie nadaje się do celów rozliczeniowych.
DRY
Brak wody w wodomierzu. Pomiar nie jest prowadzony.
REVERSE
Woda przepływa przez wodomierz w nieprawidłowym kierunku.
RADIO OFF
RADIO OFF wyświetlany ciągle. Nadajnik radiowy jest permanentnie wyłączony.
Hardware
Wemos D1 mini (lub ESP32) – koszt ok 12 PLN
moduł radiowy CC1101 868 MHz z anteną (ja zamówiłem tu) – koszt ok 30 PLN
Trzeba sporo wprawy, aby zlutować połączenia do CC1101 – raster jest mniejszy niż standardowy goldpin.
CC1101
ESP8266
VCC
3V3
GND
GND
CSN
D8
MOSI
D7
MISO
D6
SCK
D5
GDO0
D2
Poniżej jak mi to wyszło:
Uruchomienie
Polecam najpierw złożyć, uruchomić bez kodu deszyfrującego – zweryfikować, czy działa komunikacja . A następnie ponowne programowanie Wemos D1 mini już z kluczem AES. W moim przypadku odczyt następuje z ok 10 metrów przez kilka ścian.
Aby uzyskać klucz deszyfrujący AES należy skontaktować się ze spółką rozliczającą wodę. W moim przypadku wystarczyło pismo ogólne zgłoszone przez platformę EPUAP (w tym wypadku nie musiałem poświadczać swojej tożsamości) i plik z kluczem oraz hasłem dostałem bezpośrednio na emaila. (podziękowania dla pana Piotra ze Spółki Komunalnej Żukowo).
Na ekranie oraz w pliku etc\wmbusmeters.d\<numer_Licznika> będzie klucz który przepisujemy do pliku config.h, ponownie kompilujemy i wgrywamy oprogramowanie do Wemos D1 mini.
Konfiguracja HA
W moim przypadku Wemos przesyła informacje do serwera MQTT uruchomionego jako dodatek w HA.
Przez ostatnich kilka lat coraz bardziej rozbudowałem mój SmartDom w oparciu o HomeAssistanta i ostatnio postanowiłem udokumentować szereg rozwiązań oraz integracji. W 2018 pierwszą instancja działała na Raspberry PI 3 z 2GB RAMu, w tej chwili działa na RPI 5 z 8GB.
Lista urządzeń, które sterują moim domem:
Shelly 1
Shelly 1 PM
Shelly 2
Sonoff Basic (z firmware Tasmota)
Sonoff TH
Alarm Integra 64
Czujniki SI7021
Czujnik HC-SR04
Czujnik BME-280
Moduł WiFi NodeMCU V2
Moduł Wifi ESP32
Wemos D1 mini
Raspberry PI3 (HyperBian)
Raspberry PI5 (Debian) + Raspberry AI Kit + Hailo 8L