Wetterstation WH3080 dekodieren für Signalduino 433Mhz

Begonnen von killah78, 21 Februar 2017, 15:19:02

Vorheriges Thema - Nächstes Thema

killah78

Hallo zusammen,

ich plane mir eine Wetterstation WH3080 zu kaufen. Diese möchte ich gerne per Signalduino empfangen und verarbeiten. (Es soll die 3080 sein wegen dem zusätzlichen Lichtsensor) Bisher wird diese noch nicht von Signalduino empfangen.

Um es noch etwas schwieriger zu machen, möchte ich mir nur den Sendemast von der WH3080 kaufen, weil das Display von mir nicht benötigt wird und ich mir so das Geld dafür sparen kann. Dieses würde ich ja lediglich zur Dekodierung der Daten und Einbinden in Signalduino benötigen.

Daher benötige ich etwas Hilfe von der Community:

- Einen User, welcher die WH3080 und einen Signalduino 433 Mhz besitzt. Dieser könnte mir ein paar verschiedene Roh-Daten mit entpsprechenden Displaywerte zusenden. Mit diesen Werten würde ich mein Bestes geben die empfangenen Daten entsprechend für Signalduino dekodierbar zu machen.

- Den Entwickler (Sidey?) von Signalduino für die programmtechnische Einbindung.

Meine bisherigen Recherchen hat ergeben, dass die 3080 schon immer auf 433 OOK gesendet hat. Also sollte der sduino auf jedenfall funktionieren. Ich habe herausgefunden, dass drei verschiedene Nachrichten gesendet werden. Nämlich Wetterdaten ohne UV-Sensor. Diese sollen kompatibel zum Datentelegramm zur Wetterstation 1080 sein. Genauso wie die Nachricht für die empfangene Funkzeit. Diese wird für ein paar Minuten nach jeder vollen Stunde gesendet. Ich denke die Funkzeit können wir hier aber auch ignorieren. Die dritte Nachricht beinhaltet Daten des UV-Sensors. Sprich UV-Wert und Helligkeit. Diese wird auch jede Minute gesendet.

Also, um loszulegen würde ich mich über ein paar Rohwerte und zugehörigen Displaywerten freuen.

Hoffe es klappt.

Gruss
killah78

stefanru

Hi,

finde ich sehr interessant. Habe die Station zur Zeit mit pywws angebunden.
Wenn du mir sagst wir ich dir die Daten zukommen lassen kann?

Verbose 4 und hoffen dass ich entdecke was die Station ist?
Hast du irgendwelche marker die ich eventuell suchen kann?

Gruß,
Stefan

pejonp

Zitat von: killah78 am 21 Februar 2017, 15:19:02
....
Meine bisherigen Recherchen hat ergeben, dass die 3080 schon immer auf 433 OOK gesendet hat. Also sollte der sduino auf jedenfall funktionieren. Ich habe herausgefunden, dass drei verschiedene Nachrichten gesendet werden. Nämlich Wetterdaten ohne UV-Sensor. Diese sollen kompatibel zum Datentelegramm zur Wetterstation 1080 sein. Genauso wie die Nachricht für die empfangene Funkzeit. Diese wird für ein paar Minuten nach jeder vollen Stunde gesendet. Ich denke die Funkzeit können wir hier aber auch ignorieren. Die dritte Nachricht beinhaltet Daten des UV-Sensors. Sprich UV-Wert und Helligkeit. Diese wird auch jede Minute gesendet.
.....
Hallo killah78,

die Daten der WH-1080 werden mit dem Modul 14_SD_WS09.pm empfangen, auch die Funkzeit. Bei verbose=5 sieht man diese im Log. Kann sein das die CRC-Prüfung nicht richtig funktioniert, kann aber per Attribut ausgeschalten werden.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

killah78

Hi stefanru,

das wäre super, wenn du die Daten liefern könntest.
Also was ich gelesen habe ist, dass die 3080 drei verschiedene Nachrichten sendet.
Die Sensordaten ohne UV und die Funkzeit sollen damit kompatibel mit der WH1080 sein.
Die dritte Nachricht (8Byte lang) enhält die UV und Helligkeitsdaten.
Längen der 3 Nachrichten sind 8,10 und 11 Byte.
Ich schätze, dass am irgendwo am Anfang der Nachrichten dann eine gleiche ID stehen muss. Wenn ich das vom 1080 herleite, wäre das erste Nibble die Nachrichtenart und das 2. und 3. Nibble die Station-ID.

Vielleicht machst du das so, dass du per Signalduino einfach mit Verbose 5 eine Zeit lang alles loggst(vielleicht das bekannte dann entfernen) und in der entsprechenden Zeit wird ja auch per pywws die Datei geschrieben. Ich denke mal, dass im pywws auch ein Zeitstempel geschrieben wird. Der weicht zwar etwas zum Signalduino Empfang ab, aber es ist ein erster Versuch.

Wichtig ist, dass das Datenlog auch nach einer vollen Stunde läuft, die Funkzeit kommt nur für ein paar Minuten zu jeder vollen Stunde.

Loggt denn der Signalduino überhaupt hex-Werte? Habe bisher immer mit einem CUL geloggt.
Naja probieren. :-)

PS: Ich nehme an, dass die 3080 nicht per 14_SD_WS09 empfangen wird, oder?

Danke für deine Unterstützung.
Gruss
killah78

pejonp

Hi,
Wenn die Funkzeit kompatibel mit der wh1080 sollte diese durchgereicht werden. Versuch macht klug.
Pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

killah78

Haha, "Versuch macht klug." hatte ich gerade auch im Kopf, hab es aber dann doch nicht geschrieben.
Ich habe bisher ja noch keine Wetterstation. Würde mir gerne nur den Mast (Sender) kaufen. Aber das macht natürlich nur Sinn, wenn das hier alles klappt.

Wenn stefanru das aber alles testen kann wäre das super. :-)

Gruss
killah78

stefanru

Ok,

also ich lasse das gern mal mitlaufen.
Zur Zeit wird nichts empfangen von der Station.

Ich hatte am Anfang auch gehofft dass wenigestens irgendetwas im FHEM erkannt wird. Leider konnte ich nichts erkennen dass per autocreate oder so angelegt wurde.
Also habe ich den weg über pywws gewählt.

Ich logge gerne mal ne stunde mit und stelle dir die entsprechenden pywws logs zur Verfügung.

Ich befürchte aber das das log relativ groß wird. Bei mir gibts ne menge auf 433Mhz.

Ich werde es mal versuchen und anhängen.

Gruß,
Stefan

killah78

Hi,

ich hoffe, dass im Log ein Bytecode geschrieben wird. Im Wiki lese ich sowas wie: "sduino: Unknown code u1FFFFF0, help me!" sollte geschrieben werden.
Wenn ich in mein Log gucke, wo ich gerade mit einem sduino rumspiele finde ich diese Zeile aber nicht, dort lese ich folgende Zeilen:

2017.02.19 12:37:36 4: sduino/msg READ: MU;P0=-274;P1=-1742;P2=162;P3=-655;P5=246;P6=-1057;D=01232023562626505651202026202050235056235;CP=2;R=218;
2017.02.19 12:37:36 4: sduino: Fingerprint for MU Protocol id 20 -> livolo matches, trying to demodulate
2017.02.19 12:37:36 4: sduino: Fingerprint for MU Protocol id 28 -> IC Ledspot matches, trying to demodulate
2017.02.19 12:37:36 4: sduino: Fingerprint for MU Protocol id 29 -> HT12e remote matches, trying to demodulate
2017.02.19 12:37:36 4: sduino: Fingerprint for MU Protocol id 34 -> unknown34 matches, trying to demodulate
2017.02.19 12:37:37 4: sduino: Fingerprint for MU Protocol id 36 -> socket36 matches, trying to demodulate
2017.02.19 12:37:37 4: sduino: Fingerprint for MU Protocol id 37 -> weather37 matches, trying to demodulate
2017.02.19 12:37:37 4: sduino: Fingerprint for MU Protocol id 39 -> X10 Protocol matches, trying to demodulate
2017.02.19 12:37:54 4: sduino/msg READ: MS;P1=451;P2=-8960;P3=-2010;P4=-4100;D=12131313141413141414131313131313131313131314131414131314131413141314141313;CP=1;SP=2;R=3;O;
2017.02.19 12:37:54 4: sduino: Matched MS Protocol id 0 -> weather1
2017.02.19 12:37:54 4: sduino: Decoded MS Protocol id 0 dmsg s1B800B2AC003 length 40 RSSI = -72.5


Für meinen Wettersensor hat er mir den Code "s1B800B2AC003" genannt, aber für den erstgenannten geht er nur mögliche Protokolle durch, da steht aber kein Bytecode. Wie kann man erreichen, dass er den Code auch für unbekannte Datentelegramme ausgibt? Oder kann er das nicht für MU, sondern nur für MS?

Na mal sehen, was im Log stehen wird. :-)

Gruss
killah78

stefanru

Hi,

so bin endlich mal dazu gekommen.
Wie ich schon befürchtet hatte kommt ziemlich viel rein.
Habe mal 6 Minuten geloggt, die Station sollte mindestens 1 mal die Minute senden.
Hab jetzt auf anhieb nichts gesehen. Vielleicht siehst du was.

Im Anhang Verbose 5 Log vom sduino.
Und das Filelog der Wetterstation.
Achtung im das Filelog kann bis zu einer Minute später kommen, da ja erst mit pywws eingelesen wird und dann von FHEM per WS3600 Modul.

Ich hatte jetzt den sduino mit superhet Empfänger genommen.
Willst du auch ein Log vom sduino mit CC1101?

Gruß,
Stefan

killah78

Puh, das ist kompliziert. Erstmal danke für die Logs.
Ich habe jetzt im ersten Schritt versucht, irgendwie herauszufinden, welche Sätze von der 3080 kommen können.
Habe mir dazu aus dem anderen Thread zur 1080 bzw. ctw600 herausgesucht, wie es dort gemacht wird.
Dort sind es MU-Sätze mit folgender Codierung: 1=400-621us, Pause=800-1150us und 0=1495-1840us
Schon hier kann ich diese Sätze in dem von dir gelieferten Log nicht erkennen.
Habe dann mal versucht, Sätze mit einer entsprechend langen Datenlänge und ähnlicher Kodierung zu erkennen. Es sollten ja am Anfang immer mindestens 6 1er bits stehen. Aber auch hier habe ich nichts erkennen können.

Da über USB aber eine Änderung der Aussentemperatur jede Minute statt fand, frage ich mal: Frequenz des sduino stimmt? Entfernung vielleicht als Problem?
Hast du igendwie die Möglichkeit das zeitlich genauer einzugrenzen? Ich denke da irgendwie daran, den Zeitpunkt einer Änderung auf dem Display genau festzuhalten, so dass man im Log sagen kann, welche Nachricht das sein muss. Oder den Zeitpunkt einer Displayänderung irgendwie per Event-Manager zu bestimmen.

So habe ich jetzt keine Nachricht erkennen können, welche auf die 3080 passen würde.
Oder hat sonst noch jemand ne Idee, wie man dir Nachricht eingrenzen könnte??

Gruss
killah78

pejonp

@killah78 @stefanru

2 Vorschläge hätte ich um an Daten zu kommen.

1. Empfänger aufschrauben (wenn möglich) und den Eingang des SignalDuino (D2) mit dem Empfänger verbinden.  Vielleicht kannst du mal ein Bild vom Innenleben anhängen.

2. Sender aufschrauben (wenn möglich) und diesen mit dem Eingang des SignalDuino (D2) verbinden.

Bei dieser Methode sind alle anderen Störer ausgeblendet.

3. Beim CC1101 die Frequenz vielleicht etwas variieren.  433,9MHz stellen.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

killah78

Hallo pejonp,
ich habe leider das Problem, dass ich die 3080 noch garnicht besitze. Ich möchte mir diese nur kaufen, wenn diese auf dem Signalduino empfangen wird. Und dann würde ich diese ohne den Empfänger kaufen.
Bin daher auf die Mithilfe von stefanru angewiesen.
Vielleicht könnte stefanru nochmal mit dem Signalduino mit CC1101 mitloggen, ob da etwas erkennbares geloggt wird. Wie gesagt, ich habe das so in anderen Foren gelesen, dass die 3080 mit der 1080 kompatibel sein soll. Zusätzliche UV und Helligkeit wird in einer separaten Nachricht gesendet. Auch soll es die 3080 lediglich mit 433 OOK geben.

Gruss
killah78

pejonp

Hallo killah78,

eigentlich sollte die WH3080 auf 868MHz senden
- https://blog.thesen.eu/eine-wetterstation/
- https://www.letscontrolit.com/forum/viewtopic.php?t=2587
Wenn du einen R820T type RTL-SDR dongle hast könntest du ja mal versuche ob was empfangen wird (http://sandaysoft.com/forum/viewtopic.php?t=4507&start=60) bzw. @stefanru.
Oder mal mit dem rflink versuchen (http://www.nemcon.nl/blog2/) dort werden auch viele Sensoren unterstützt.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

stefanru

#13
Hi,

ja das ist echt komisch man liest immer 868 und dann doch wieder 433.
Auf der Empfangsstation bei mir steht tatsächlich 868.

Ich hab nur nen nanoCUL mit 868. Könnte der das empfangen?
Soll ich mal mit dem loggen?

R820T ist aber was ganz anderes oder?
Ist der dann an FHEM anschließbar?

Gruß,
Stefan

pejonp

Hi Stefan,

Wenn die wh3080 auf 868mhz und ook sendet könnte man diese vielleict mit dem signalduino und cc1101 empfangen. Was aber gehen sollte ist der 868mhz empfänger von elv (mal hier im forum danach suchen) https://forum.fhem.de/index.php?topic=58396.0

2. Möglichkeit den signalduino mit a-culfw flashen und mal mit slowrf und nr3 betreiben. Dazu gibt es auch ein forum hier in fhem.

Der r820t ist ein dvbt-stick. Die Software heisst rtl_433 oder nur rtl
http://www.rtl-sdr.com/using-rtl-sdr-rtl_433-decode-various-devices/ oder https://alexbloggt.com/funkthermometer-sdr/

Pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect