Homematic HBW meets SIGNALDuino = Bresser Wetterstation HBW-WDS-C7

Begonnen von loetmeister, 11 Juli 2024, 22:52:11

Vorheriges Thema - Nächstes Thema

loetmeister

Hallo HBW Community,

da ich mit meinem aktuell Helligkeitssensor (LDR) für die Beschattungssteuerung nicht zufrieden war wollte ich mir eine schöne Wetterstation zulegen... aber in Homematic Wired / FHEM einbinden. LAN/W-LAN, etc. wollte ich nicht, und SIGNALDuino per USB ist mit der Entfernung zum Dach ebenfalls ungünstig..

Da ich schon immer mal mit dem Raspberry Pi Pico arbeiten wollte, ist nun ein Gerät in Entwicklung was in Homematic Wired eingebunden wird, im Kern aber ein vollwertiger SIGNALDuino advanced ist.
Die erste Einrichtung muss man aktuell über USB machen, also Modulation und Frequenz, etc. einstellen. Danach verrichtet es seinen Dienst am Homematic Bus.

Sensor, ohne Station:
https://www.bresser.de/Wetter-Zeit/BRESSER-7-in-1-Aussensensor-fuer-7003200-4-Tage-4CAST-WLAN-Wetterstation.html
Neben HBW ist die Basis ein SIGNALDuino mit cc1101 868MhZ Modul: https://github.com/Ralf9/SIGNALDuino/tree/dev-r335_cc1101 - dazu ein I2C EEPROM mit 2k byte.

Da der Raspberry Pi Pico zwei Prozessorkerne hat, läuft SIGNALDuino auf core0 und Homematic HBW auf core1. Dazu Hardware SPI, I2C und 2 UART Module für die Kommunikation.

Es fehlt noch der Wetter channel im HBW Modul und die passendende XML... schaue mir grade HM-WDS100-C6-O-2 als Vorlage an... bin auch noch unschlüssig ob ein weiter channel nur für die Temperatur sinnvoll ist, um peering zu ermöglichen...

aktuell gebe ich die Messwerte über USB/Seriell aus
22:40:19.506 -> ␂MN;D=823A0F7D8B318AAAAAAAACDAFCB3ADAAAAAAAAAAAAAAAAA00000000;N=7;R=247;␃
22:40:20.030 -> type: 1
22:40:20.030 -> id: C87A
22:40:20.030 -> batt ok: 1
22:40:20.030 -> wind_dir: 179
22:40:20.030 -> wind_max_m_s: 0.00
22:40:20.030 -> wind_avg_m_s: 0.00
22:40:20.030 -> rain_mm: 67.00
22:40:20.030 -> temp_c: 17.90
22:40:20.030 -> humidity: 70
22:40:20.030 -> light_lux: 0
22:40:20.030 -> uv_index: 0.00
22:40:20.030 -> RSSI db: -78

aktueller Stand:
https://github.com/loetmeister/HBWired/tree/dev/HBW-WDS-C7

Gruß,
Thomas


loetmeister

so... device xml ist soweit funktionstüchtig, Kanalkonfigurationsdetails fehlen noch. Readings sind aber schon mal da und stimmen nach ein paar Korrekturen mit denen des SignalDuino überein.  ::)

"TEMPERATURE"
"HUMIDITY"
"RAIN_MM"
"WIND_SPEED_MAX"
"WIND_SPEED_AVG"
"WIND_DIRECTION"
"BATTERY_STATE"
"BRIGHTNESS_LUX"
"UV_INDEX"
"RSSI"

zusätzlich errechnet:
WIND_SPEED_AVG_KMH
WIND_SPEED_MAX_KMH


Die SENSOR_ID wird abgespeichert und bei jeder Empfangenen Funknachricht geprüft, um nicht die Station des Nachbarn zu empfangen. Man könnte auch noch weitere Kanäle für zusätzliche Sensoren erstellen...

Bei der weiteren Kanalkonfiguration bin ich noch etwas unschlüssig... welche Optionen nützlich sind. Natürlich kann man ein Sendeintervall einstellen. Trigger bei änderungen / maximalen Messwerten z.B. Regen oder Wind wäre möglich... wobei die Regenmenge relativ groß sein müsste um einen neuen Messwert zu erzeugen. Als Sensor für eine Markise nicht geeignet. :)

Bei "HM-WDS100-C6-O-2" lässt sich ein STORM_UPPER /LOWER_THRESHOLD im peering einstellen. Das geht bei HBW nicht, aber im Kanal wäre das möglich, analog zu SEND_DELTA_TEMP um bei großen Temperatur- / Messwertänderungen schneller zu reagieren.

Gruß,
Thomas

loetmeister

#2
Hallo,

kurzes update... soweit "fertig" - um auf dem Dachboden an die Wand gespaxt seinen Job zu erledigen...
Doku und Schaltplan kommt noch. Bestimmt. s.u.  8)

Statt 133 MHz lasse ich den Pi Pico mit 50 MHz laufen, das spart ca. 24% Energie. Insgesamt ist Leistungsaufnahme rel. hoch, besonders das c1101 Modul benötigt mehr als erwartet... (ca. 100 mW - ~30 mA bei 3,3V) Was ich für reinen Empfang nicht erwartet hatte. Laut Datenblatt liegt RX bei 15mA @3V.
Ohne RF Modul (Pi Pico + RS-485 + EEPROM, alles "Idle") - ca. 180 mW. Ähnlich der Schaltungen mit ATmega 328 mit 16 MHz.
Die Gesamte Schaltung nimmt 11,7mA bei knapp 24 V auf (inkl. DC-DC Wandler Verluste, etc.) bei 50 MHz - also 280 mW. Bei 133 MHz sind es ca. 370 mW.

Wenn es keine "Komplikationen" mit der HBW lib gibt würde ich es in den GibtHub master branch übertragen... bis dahin, erst mal dev:
https://github.com/loetmeister/HBWired/tree/dev/HBW-WDS-C7

EDIT: Hier noch der für den Raspberry Pi Pico erweiterte SIGNALDuino dev-r335: https://github.com/loetmeister/SIGNALDuino/tree/dev-r335_cc1101

EDIT2: Schaltplan: https://loetmeister.de/Elektronik/homematic/hbw-wds-c7.htm#schaltplan

Gruß,
Thomas