Forum: Mikrocontroller und Digitale Elektronik Wetterstation-Protokoll


von Joerg (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich habe hier eine Wetterstation herumliegen, die mit der Basisstation 
ueber GND/DATA mit 5V-Pegeln "spricht". Leider macht die Basisstation 
die Grätsche, sodass ich mich an das "Reverse-Engineeren" des Protokolls 
gemacht habe, um die Daten anschliessend mit einem mC (Arduino) 
auszulesen und auszuwerten.

So wie es aussieht ist hier eine umgekehrte Logik mit einer 833us 
Pulsweite Trumpf.
Komme allerdings trotzdem keinen Schritt weiter - vielleicht hat jemand 
hier aus dem Forum eine Idee.

Ein paar Randinfos noch:
- Das "Telegramm" wird jede Sekunde übertragen.
- An Sensorik ist folgendes vorhanden, was (vermutlich) hier auch in dem 
Screenshot enthalten ist. Ob darüber hinaus noch etwas übermittelt wird 
-> keine Ahnung:
1. bis 3.) 3 x Sonneneinstrahlung in KiloLux (Hier: 10,21 und 19 
KiloLux)
4.) Temperatur (Hier: 13 Grad bei Oszillografie)
5.) Luftfeuchtigkeit (Hier im Diagramm muesste eine 44% herauskommen)
6.) Regen (Ja/Nein) (Hier: Nein)
7.) Windgeschwindigkeit (Leider nicht notiert)

Mir würde es schon helfen, wenn mir jemand auf die Sprünge helfen könnte 
wie ein Byte/Nibble hier zu lesen ist. Zur Grafik:
- Das "rote" ist nur ein invertiertes "grünes" :-)
- Start ist bei 40.000ms im Diagramm (gtkwave auf dem Mac ist irgendwie 
creepy)

Ich sag schonmal danke im vornherein.
 Viele Grüsse aus dem Rheinland
 Jörg

: Verschoben durch Admin
von gaast (Gast)


Lesenswert?

So wird das nichts. Für ganz viele verschiedene Eingangswerte 
(Temperatur/Wind usw) das Telegramm aufnehmen, in logisch 1/0 umwandeln 
(einfach ablesen) und dann reverse engineeren und/oder hier posten. 
Besonders "wertvoll" sind Telegramme zwischen denen sich nur ein Wert 
(z.B. Wind) ändert.

von Joerg (Gast)



Lesenswert?

Garnicht so trivial. Bei der Masse an Sensoren die an dem Teil hängt.
Wenn ich wenigstens wüsste woran ich eine 0/1 oder ein Startbit 
identifizieren könnte - dann liesse sich etwas gezielter auf die Suche 
gehen.

Nun gut. Habe es mal versucht.

Von oben nach unten:

1. bis 3.) Vermutlich nur Temperaturwechsel (nach oben) - weil 
Wetterstation mit Karton zugedeckt. Ob sich die Luftfeuchte verändert 
hat kann ich nicht sagen. Müsste aber alles marginal sein.

Bild 4.1) Karton noch drauf
Bild 4.2) Karton runter - und somit Lichteinstrahlung (auf allen 3 
Helligkeitssensoren - lässt sich leider nicht vermeiden) - Hier ist auch 
bereits beides invertiert.

Die Helligkeitsdinger müssten demach ziemlich am Ende des Telegramms 
sein.

von Joerg (Gast)


Lesenswert?

Push!
@Admin: Danke fürs verschieben.

von Joerg D. (int2k)


Angehängte Dateien:

Lesenswert?

Hab derweil alles durch und hänge trotzdem noch.

Auffälligkeiten:
- LowPulse: 750uS
- HighPulse: 1000uS
- Das Low ein anderes Timing als High hat, irritiert mich schon 
massivst.
- Nach genau 8750uS kommt grundsätzlich ein LowPulse (HL-Flanke bis 
HL-Flanke vom 750er) -> Bytelänge ????

Scheint in jedem Falle irgendwas RS232 mässiges zu sein (Nein, Clock 
bekomme ich nirgends). Zur angehängten Grafik:
- Vor diesem "Telegramm" hängt der Pegel auf +5V, danach ebenso. Das 
erste "Bit" sind diese 750uS Low.
- Da ich in den vorherigen Grafiken das Ding teilweise invertiert habe, 
ist also von dieser Logik (Ruhe=High) auszugehen.

Zur Analyse"

Am sinnigsten scheint mir folgendes:
FullDelay=750
HalfDelay=375

Warten auf das erste "Low", dann 1,5 Bit warten und 8 x lesen (Mit je 
einem FullDelay dazwischen). Am Ende noch 2 FullDelays dazu und dann 
wieder von vorn.

Heraus kommt (bei steigender Tempeatur) folgendes:
1
10100011/01111001/00000101/10011000/0/10011000/0/10011000/0/0/0/00100011/0/11111100/00110101/0/00011101/
2
10100011/01111110/00000101/10011000/0/10011000/0/10011000/0/0/0/00100011/0/00000001/00101101/0/00101111/
3
10100011/10000011/00000101/10011000/0/10011000/0/10011000/0/0/0/00100011/0/00001110/00111101/0/01000001/
4
10100011/10000101/00000101/10011000/0/10011000/0/10011000/0/0/0/00100011/0/00011000/00111101/0/01001101/
5
10100011/10011000/00000101/10011000/0/10011000/0/10011000/0/0/0/00100011/0/00011011/00111101/0/01011011/
6
10100011/10011101/00000101/10011000/0/10011000/0/10011000/0/0/0/00100011/0/00100000/00110101/0/01101101/
7
10100011/10011110/00000101/10011000/0/10011000/0/10011000/0/0/0/00100011/0/00100001/00110101/0/01101111/

Byte 2, oder aber 14/15 geben irgendwie die Temperatur wieder. Wobei ich 
da auch noch keinerlei Offset entdecken konnte. Bei dem Test habe ich 
einfach mal den Finger an den Temperatursensor gehalten - sonst sollte 
sich nichts verändert haben.

Bin ich auf dem Holzweg, oder hat irgendjemand eine Idee ? Verzweifele 
langsam !

von Rainer S. (rsonline)


Lesenswert?

Joerg D. schrieb:
> - Das Low ein anderes Timing als High hat, irritiert mich schon
> massivst.

Hat vielleicht mit 1,5 Stopbits oder ähnlich zu tun.

von asdf (Gast)


Lesenswert?

Joerg schrieb:
> ich habe hier eine Wetterstation herumliegen,

Welche? Hersteller und genaue Bezeichnung? Foto?

von Joerg D. (int2k)


Angehängte Dateien:

Lesenswert?

Elsner P01 (die, die original zur Wintergartensteuerung WS10  WS20  
WS1000 gehört - also NICHT die RS485-Variante).
Der Hersteller gibt sich leider extremst zugeknöpft. Im Manual steht 
auch nur was von "Eigenes Protokoll".

Foto: Siehe Anhang.
3 Anschlüsse:
+24V/DC (für Spannungsversorgung + Regensensorheizung)
GND
DATA

@rsonline: Wenn das Stopbit ein 1,5x so langes wäre, dann müssten ja 
irgendwo 1500er oder 1125er auftauchen - ist leider nicht der Fall :-(

von Joerg D. (int2k)


Lesenswert?

So,
hier ein kleiner Zwischenstand:

Beim den bisherigen Versuchen schien das Timing nicht ordentlich zu 
passen. Mit dem Resultat, dass entweder ein Bit verschluckt wurde, oder 
aber eines zuviel kam. Mit einer Clock von 860uS kommt nun folgendes 
heraus:

Byte 1) Statisch ""S"
Byte 2) Temp LSB
Byte 3) Temp MSB
Byte 4) Licht vorn LSB
Byte 5) Licht vorn MSB
Byte 6) Licht links LSB
Byte 7) Licht links MSB
Byte 8) Licht rechts LSB
Byte 9) Licht rechts MSB
Byte 10)Dämmerung ?
Byte 11)Regen J/N
Byte 12)irgendwas mit Licht
Byte 13-17) ?
1
1010011/1101111/101/11001000/0/11001000/0/11001000/0/0/0/10011001/1/10111001/100001/0/10010011

Hat denn bisher niemand diese Elsner-Wetterstation im Einsatz ?

von Roland (roliwa)


Lesenswert?

Hast du mit der Elser Weterstation weitergemacht ?

Ich habe ebenfalls 2 Steuerungen WS10  und eine Wetterstation mit RS484 
daran. Denke eher  P00 . Jetzt würde ich gerne die DAten mit einem 
Arduino lesen  also die  Station weiterbetreiben.
Wie hattest du damals die Daten gelesen   -- womit und  wie hattest du 
alles angeschlossen  - Wäre um jede Hilfe sehr dankbar

von ●DesIntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

in der Zwischenzeit sind 4 weitere Wetterstationen verrostet.

von Joerg D. (int2k)


Lesenswert?

Hallo Roland,
nein - habe an der Front aufgegeben, da das ding viel zu teuer ist.
Meine Wintergartenanlage läuft inzwischen zwar noch mit der überteuerten 
Closed-Source-Elsner Lösung, jedoch übersteuere ich nahezu alles über 
die Relaiseingänge.

Mit anderen Worten: Ziehe Steuerungsdaten (Wetter & Co.) aus anderen 
Sensoren und triggere dann einfach nur über eine Relaiskarte mit ESP32 
die entsprechenden Aktoren.

vy 73
 Jörg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.