Maak je weerstation geconnecteerd

Stel, je koopt een Alecto WS-4800 weerstation; op de binnenunit zie je de temperatuur, luchtvochtigheid etc. voor binnen en buiten en je hebt zelfs een History knop waarmee je per uur kan teruggaan in de tijd. Tof, niet?

In de tijd van geconnecteerde devices lijkt dit een niet zo elegante oplossing. Wat als je meer metingen wilt zien, of gemiddeldes, of min/max per dag of week? Kortom, je ziet het al, je bent gelimiteerd tot wat Alecto je aanbiedt.

Maar er is een oplossing! De buitenunit van dit Alecto weerstation stuurt zijn waarnemingen elke 12 seconden door naar de binnenunit, en dat in de 868MHz band. Gelukkig kan je voor een appel en een ei een USB-stick kopen die 433 en 868MHz signalen kan ontvangen, zoals deze op Amazon of deze op AliExpress.

Ontvangen van weerstation waarnemingen

Wat heb je nodig:
– Linux machine (Raspberry Pi3 bijvoorbeeld)
– Docker

Stap 1. De Docker image bouwen

git clone https://github.com/mverleun/RTL433-to-mqtt
cd RTL433-to-mqtt/src
cp config.example.py config.py
vi config.py

In config.py kan je je MQTT parameters instellen (gebruikersnaam, wachtwoord, IP-adres…).

Verder moet je ook even het commando in rtl2mqtt.py aanpassen:

vi rtl2mqtt.py

Zoek naar rtl_433_cmd en vervang door:

rtl_433_cmd = "/usr/local/bin/rtl_433 -f 868M -M level -s 1024k -F json"

Nu kan je je Docker image bouwen met:

docker build -t rtl433-mqtt-gateway .

Stap 2. Docker container starten

Nu je Docker image gebouwd is, kunnen we een container starten die alles voor jou doet! Steek allereerst je USB-stick in je Linux machine en voer dan volgend commando uit:

docker run --name rtl_433 -d --rm --restart unless-stopped --privileged -v /dev/bus/usb:/dev/bus/usb  rtl433-mqtt-gateway

Stap 3. Verifiëren van de gegevens

Als je mosquitto hebt geïnstalleerd op je Linux machine kan je volgend commando gebruiken om binnenkomende berichten van je weerstation te bekijken:

mosquitto_sub -h <JOUW_MOSQUITTO_IP_ADRES> -p 1883 -v -t "sensors/#"

Nota: In de huidige versie van het rtl2mqtt.py script steekt een fout waardoor het kan zijn dat je MQTT state topic gelinkt is aan de luchtvochtigheid en dus niet de hele tijd dezelfde naam heeft. Dit kan je verhelpen door

if "id" in item:

te vervangen door

if "id" == item:

Zodra dat gebeurd is, moet je wel even je Docker image opnieuw maken en de container starten.

Komen er geen gegevens binnen? Check even of je USB-stick herkend wordt in Linux. Lukt het nog steeds niet, laat ons dan even iets weten.

Koppelen aan Home Assistant

Je kan nu je MQTT gegevens doorsturen naar je Home Assistant server. Een voorbeeldje voor temperatuur en luchtvochtigheid in je config yaml file:

- platform: mqtt
name: "alecto_temperatuur"
state_topic: "sensors/rtl_433/Bresser-5in1/100/temperature_C"
unit_of_measurement: "°C"
icon: mdi:thermometer

- platform: mqtt
name: "alecto_luchtvochtigheid"
state_topic: "sensors/rtl_433/Bresser-5in1/100/humidity"
unit_of_measurement: "%"
icon: mdi:water-percent

Het kan best zijn dat het ID van jouw Alecto iets anders is dan 100, bekijk welke MQTT berichten er gestuurd worden en pas jouw configuratie zo nodig aan.

De temperatuur van je Alecto weerstation, weergegeven in Home Assistant

Disclaimer: we krijgen een kleine commissie bij elk product dat via een van bovenstaande links is gekocht.

Geef een reactie

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.