Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:tech:rainsensor [2022/11/12 20:29] – bullar | de:tech:rainsensor [2022/11/14 09:35] (aktuell) – [Software (ESPHome)] bullar | ||
---|---|---|---|
Zeile 19: | Zeile 19: | ||
Ein digitaler Niederschlagsmesser verwendet einen Trichter um das Regenwasser zu bündeln und um es dann auf eine Kippwaage zu leiten. Ist die eine Seite vollgelaufen dann kippt die Waage, entleert die vollgelaufene Hälfte und die zweite Seite kann voll laufen. Zählt man die Anzahl der Kippvorgänge hat man ein gutes Maß für die Regenmenge. Natürlich muss das Maß für den Trichtereinlass sowie die Aufnahmemenge der Kippwaage bekannt sein. Genau solch einen Sensor kann man auch selber bauen. [[https:// | Ein digitaler Niederschlagsmesser verwendet einen Trichter um das Regenwasser zu bündeln und um es dann auf eine Kippwaage zu leiten. Ist die eine Seite vollgelaufen dann kippt die Waage, entleert die vollgelaufene Hälfte und die zweite Seite kann voll laufen. Zählt man die Anzahl der Kippvorgänge hat man ein gutes Maß für die Regenmenge. Natürlich muss das Maß für den Trichtereinlass sowie die Aufnahmemenge der Kippwaage bekannt sein. Genau solch einen Sensor kann man auch selber bauen. [[https:// | ||
- | {{ : | + | {{ : |
Der Sensor ist batteriebetrieben und sendet die Messwerte auf 433MHz. Er kann also irgendwo draussen im Garten positioniert werden. Um den Sensor für eigene Anwendungen wie Home Assistant verwenden zu können bedarf es etwas //Reverse Engineering// | Der Sensor ist batteriebetrieben und sendet die Messwerte auf 433MHz. Er kann also irgendwo draussen im Garten positioniert werden. Um den Sensor für eigene Anwendungen wie Home Assistant verwenden zu können bedarf es etwas //Reverse Engineering// | ||
Das Trichtergehäuse läßt sich einfach entfernen. Zum Vorschein kommt die Kippwaage mit dem dahinter liegenden Gehäuse für die Elektronik. Ein Magnet in der Kippwaage stimuliert einen Reedkontakt im Innern. Das Batteriefach (2xAA) ist von unten zugänglich. | Das Trichtergehäuse läßt sich einfach entfernen. Zum Vorschein kommt die Kippwaage mit dem dahinter liegenden Gehäuse für die Elektronik. Ein Magnet in der Kippwaage stimuliert einen Reedkontakt im Innern. Das Batteriefach (2xAA) ist von unten zugänglich. | ||
- | {{ : | + | {{ : |
Im Innern residieren zwei Platinen. Eine mit dem Reedkontakt und COB (Chip On Board) und das zweite PCB ist der Sender (433MHz) | Im Innern residieren zwei Platinen. Eine mit dem Reedkontakt und COB (Chip On Board) und das zweite PCB ist der Sender (433MHz) | ||
- | {{: | + | <WRAP group> |
- | {{: | + | <WRAP half column> |
+ | {{ : | ||
+ | </ | ||
+ | <WRAP half column> | ||
+ | {{: | ||
+ | </ | ||
+ | </ | ||
Diese Trennung erlaubt uns einfach das Protokoll zum Sender abzugreifen. | Diese Trennung erlaubt uns einfach das Protokoll zum Sender abzugreifen. | ||
Zeile 68: | Zeile 74: | ||
Im blauen Block ist der zeitliche Verlauf aufgezeichnet (x=Frequenz, | Im blauen Block ist der zeitliche Verlauf aufgezeichnet (x=Frequenz, | ||
- | {{: | + | <WRAP group> |
- | {{: | + | <WRAP half column> |
+ | {{ : | ||
+ | </ | ||
+ | <WRAP half column> | ||
+ | {{: | ||
+ | </ | ||
+ | </ | ||
Das Ergebnis zeigt nun das aufgezeichnete Signal im zeitlichen Verlauf. Wir erkennen die sich achtmal wiederholenden Frameanteile und im Zoom die schon im digitalen Signal vorher beschriebenen Pulse und Pausen. Diese Aufzeichnung speichern wir an einer wiederzufindenen Stelle ab. | Das Ergebnis zeigt nun das aufgezeichnete Signal im zeitlichen Verlauf. Wir erkennen die sich achtmal wiederholenden Frameanteile und im Zoom die schon im digitalen Signal vorher beschriebenen Pulse und Pausen. Diese Aufzeichnung speichern wir an einer wiederzufindenen Stelle ab. | ||
Zeile 79: | Zeile 91: | ||
Auch hier ist wieder die Pulsfolge mit den zwei unterschiedlich langen Pausen zu finden '' | Auch hier ist wieder die Pulsfolge mit den zwei unterschiedlich langen Pausen zu finden '' | ||
- | {{: | + | {{: |
Um die vorhandene Decoderoption //Morse Code// nutzen zu können, invertieren wir das Signal vorher mit //Invert//. Dann müssen wir noch die Morsecode Parameter festlegen. Nach der Invertierung haben wir genau eine '' | Um die vorhandene Decoderoption //Morse Code// nutzen zu können, invertieren wir das Signal vorher mit //Invert//. Dann müssen wir noch die Morsecode Parameter festlegen. Nach der Invertierung haben wir genau eine '' | ||
- | * Maximum | + | * Maximum length of 1-sequence for Low (0) = 4 |
- | * Minimum | + | * Minimum length of 1-sequence for High (1) = 7 |
* Number of 0s between 1-sequences (just for encoding) = 1 | * Number of 0s between 1-sequences (just for encoding) = 1 | ||
Wenn alles richtig eingestellt ist, wird der Frame ohne Fehler decodiert. Die 8 Frames erscheinen jetzt in der Liste. Jeder Frame besteht aus 36 Bits deren Bedeutung wir nun empirisch herausfinden müssen. Dazu legen wir einen neuen Message Type // | Wenn alles richtig eingestellt ist, wird der Frame ohne Fehler decodiert. Die 8 Frames erscheinen jetzt in der Liste. Jeder Frame besteht aus 36 Bits deren Bedeutung wir nun empirisch herausfinden müssen. Dazu legen wir einen neuen Message Type // | ||
Zeile 111: | Zeile 123: | ||
Um an das Signal des Regenmengensensors zu kommen brauchen wir zuerst einen passenden Empfänger für 433MHz. Die gibt es vielfältig im Online-Handel. Bei der Auswahl ist darauf zu achten, dass es sich um einen Superhet- (Superheterodyne) und nicht um einen Geradeausempfänger handelt. Geradeausempfänger haben eine zu große Bandbreite und eine geringe Verstärkung. Meine Wahl fiel auf den DollaTek RXB6 Superheterodyne Receiver: | Um an das Signal des Regenmengensensors zu kommen brauchen wir zuerst einen passenden Empfänger für 433MHz. Die gibt es vielfältig im Online-Handel. Bei der Auswahl ist darauf zu achten, dass es sich um einen Superhet- (Superheterodyne) und nicht um einen Geradeausempfänger handelt. Geradeausempfänger haben eine zu große Bandbreite und eine geringe Verstärkung. Meine Wahl fiel auf den DollaTek RXB6 Superheterodyne Receiver: | ||
- | {{: | + | <WRAP group> |
- | {{: | + | <WRAP half column> |
+ | {{ : | ||
+ | </ | ||
+ | <WRAP half column> | ||
+ | {{: | ||
+ | </ | ||
+ | </ | ||
Bei der Bestellung gleich die passende 433MHz Helical-Antenne mit ordern. | Bei der Bestellung gleich die passende 433MHz Helical-Antenne mit ordern. | ||
Zeile 131: | Zeile 149: | ||
Der Pin an dem der Empfängerausgang angeschlossen ist wird über ''# | Der Pin an dem der Empfängerausgang angeschlossen ist wird über ''# | ||
+ | ++++ rf433_rain_sensor.h | | ||
<file C rf433_rain_sensor.h> | <file C rf433_rain_sensor.h> | ||
include " | include " | ||
Zeile 320: | Zeile 339: | ||
}; | }; | ||
</ | </ | ||
+ | ++++ | ||
In ESPHome generieren wir ein neues Device und fügen den eigenen Code mit einem // | In ESPHome generieren wir ein neues Device und fügen den eigenen Code mit einem // | ||
- | < | + | < |
esphome: | esphome: | ||
name: rain-sensor | name: rain-sensor | ||
Zeile 332: | Zeile 351: | ||
Dann definieren wir die vier Sensoren gemäß dem folgenden Beispiel. | Dann definieren wir die vier Sensoren gemäß dem folgenden Beispiel. | ||
- | < | + | < |
sensor: | sensor: | ||
- platform: custom | - platform: custom |