Sainlogic Professionelle WLAN Funk Wetterstation - 10 in 1 Wi-Fi

Das waere der schoenste Weg.
Ich hab mir mal heute den Datenverkehr zwischen Smartphone und Konsole unter die Lupe genommen und hab fuer die wenigen Sachen die die APP kann folgendes rausgefunden. Kann man von IPS per ClientSocket auch testen. ( Port 45000 )

Protokoll :

Byte 0 + Byte 1 immer FF

Softversion abfragen
FF FF 50 03 53

Byte 2 = Command ?
Byte 3 = Gesamtbytes ohne FFFF
Byte 4 = Summe aller Bytes ohne FFFF

Weathercloud ID setzen
FF FF 25 0A 02 xx xx 02 xx xx 01 FA

Byte 2 = Command ?
Byte 3 = Gesamtbytes ohne FFFF
Byte 4 = Gesamtbytes WeathercloudID
Byte 5-6 = ID
Byte 7 = Gesamtbytes Key
Byte 8-9 = Key
Byte 10 = Anzahl der Bytes Summe aller Bytes ohne FFFF ( anscheinend immer 01 , da Summe immer 1 Byte )
Byte 11 = Summe aller Bytes ohne FFFF ( Byte )

Wunderground ID setzen
FF FF 21 18 0A xx xx xx xx xx xx xx xx xx xx 08 xx xx xx xx xx xx xx xx 01 DD

Byte 2 = Command ?
Byte 3 = Gesamtbytes ohne FFFF
Byte 4 = Gesamtbytes Wunderground Stations ID
Byte 5-14 = ID
Byte 15 = Gesamtbytes Key
Byte 16-23 = Key
Byte 24 = Anzahl der Bytes Summe aller Bytes ohne FFFF( anscheinend immer 01 , da Summe immer 1 Byte )
Byte 25 = Summe aller Bytes ohne FFFF    ( Byte )

Vielleicht hat ja jemand sowas schon mal gesehen.
Wenn ich so einen ObserverIP haette koennte ich sehen wie der die Daten holt.

Der ObserverIP holt die Daten nicht vom Display, sondern so wie das Display selber auch die Daten per Funk von der Wetterstation selber. In sofern hilft das wohl im ersten Moment nicht weiter zu verstehen ob es eine Möglichkeit gibt Daten vom Display direkt auszulesen. Am besten würde so was wohl mit einer Firmware Anpassung der Station gehen wenn diese dann Daten an eine lokale URL schickt statt an Weathercloud. ObserverIP ist in so fern interessant, da hier Daten zu AmbientCloud geladen werden, eventuell bekommt ja drdigital raus was da geschickt wird. Mein ObserverIP hat lange Lieferzeit, das kann erst mal dauern, bis ich die in den Händen halte.

Was braucht Ihr da?
Log mit Wireshark?
Oder soll ich den ObserverIP einfach auch mal umbiegen auf einen Websocket und schauen was da ankommt?

Wie auch immer Du willst. Es wäre nur hilfreich zu wissen wie die Daten zu AmbientWeather hochgeladen werden, denn was der ObserverIP kann, sollte dann theoretisch ja IP-Symcon auch können.

Also da der ObserverIP parallel auf Wunderground und AmbientWeather Daten hochladen kann,
vermute ich das findet auf unterschiedlichen Ports statt.
Für den Upload zu AmbientWeather werden keine Zugangsdaten benötigt.
Das geht über die MAC Adresse. Diese muss man dann in den Account bei AmbientWeather eintragen
damit die Daten zugeordnet werden können.

Ja genau deshalb gibt es ein Feld MAC Adresse im Modul, die Frage ist nur wohin wird das genau hingeschickt bzw. wie sieht das aus mit welchen Parametern, da wäre halt so was wie Wireshark hilfreich.

So ich habe nun einfach mal die Daten an einen IPS Websocket umgebogen.
Die Daten werden auch auf Port 80 gesendet.
Hier mal eine Zeile der gesendeten Daten.

TXT: 09.05.2018 13:19:07.00 | RECEIVED [xxx.xxx.xxx.xxx:9956] | GET /endpoint?&PASSKEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&stationtype=WS-0800-IP&dateutc=2018-05-09+11:19:06&tempf=67.5&humidity=43&tempinf=72.1&humidityin=49&baromrelin=29.78&baromabsin=28.16 HTTP/1.1<CR><LF>Host:api.ambientweather.net:80<CR><LF>Connection: close<CR><LF>User-Agent: WH2600<CR><LF><CR><LF>

Hier ist im ObserverIP noch meine WS-800 eingetragen. Bei der WS-1600 bzw. unsere Sainlogic werden dann halt noch ein paar Werte mehr übertragen.
Das kann ich noch nachreichen.
Der Passkey ist 32 Zeichen lang und wird vermutlich über die MAC Adresse generiert.
Aber so wie ich das sehe sollte das möglich sein aber man braucht wohl eine gültige MAC Adresse bzw. so einen ObserverIP.

Hier wäre halt wichtig raus zu finden, wie sich der Passkey zusammensetzt, sonst kann man ja nichts hochladen.

Das ist kein Thema, denn die MAC der Sainlogic kann genutzt werden um sich beim AmbientCloud zu registrieren. Die Frage ist eben nur, wie bekommt man dann an den Ambient Account mit dem passenden Passkey die Daten hochgeladen.

Hier noch der komplette String mit der WS-1600-IP also unsere Sainlogic inkl. Innentemp von meiner WS-800-IP

TXT: 09.05.2018 13:46:28.00 | RECEIVED [xxx.xxx.x.xxx:52944] | GET /endpoint?&PASSKEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&stationtype=WS-1600-IP&dateutc=2018-05-09+11:46:26&winddir=339&windspeedmph=0.89&windgustmph=1.12&maxdailygust=4.47&tempf=68.4&humidity=42&hourlyrainin=0.00&dailyrainin=0.00&weeklyrainin=0.00&monthlyrainin=0.00&yearlyrainin=0.00&totalrainin=0.00&tempinf=72.5&humidityin=49&baromrelin=29.78&baromabsin=28.16&uv=8&solarradiation=750.04 HTTP/1.1<CR><LF>Host:api.ambientweather.net:80<CR><LF>Connection: close<CR><LF>User-Agent: WH2600<CR><LF><CR><LF>

Der Passkey ist gleich geblieben hat sich also durch die Auswahl der anderen Wetterstation nicht geändert.
Herauszufinden wie dieser generiert wird, wird wohl sehr schwer sein.
Ich wüsste nicht wie ich das raus finden könnte.

Das Modul funktioniert soweit. :)Vielen Dank.
Nur leider bekomme ich noch folgende Fehlermeldung:

09.05.2018 16:05:32 | FlowHandler | Kann Daten nicht zur Instanz #58939 weiterleiten: <br />
<b>Notice</b>:  Undefined property: stdClass::$Type in <b>D:\IP-Symcon\modules\IPSymconWeatherStation\WeatherStation\module.php</b> on line <b>210</b><br />

Ich denke das liegt daran das Daten die über Weathercloud kommen keinen type mitliefern, ich muss mir das mal selber anschauen. Wenn nur Wunderground im WS Tool hinterlegt ist sollte der Fehler wohl nicht auftauchen. Die Daten werden ja dann von IP-Symcon zu Weathercloud hochgeladen.

Ich lade aber keine Daten hoch. Alle drei Aktualisierungsintervalle stehen auf 0

Gut ich schaue mir das dann mal näher an wegen Fehlerbeseitigung.

Danke schon mal im voraus

So ganz auf die Schnelle, mach mal ein Update und schaue doch mal ob die Fehlermeldung dann immer noch kommt. Ansonsten muss ich das mal näher anschauen. Ich muss aber selber bei mir die Daten noch umbiegen.

Bekomm kein Update angezeigt:(

Oh ja mein Fehler, schau jetzt noch mal.

Perfekt, Fehler ist weg.
Und Windrichtung jetzt als Text, Danke

Hallo drdigital,

also nach einigen Fehlschlägen und Versuchen, den WR841N v13 zu flashen und zu nutzen, habe ich es endlich geschafft. Heißt, für unsere Wetterstation läßt er sich einsetzen. Auch das umbiegen der Daten funktioniert super. Allerdings nicht mit der offiziellen Snapshot-Version der OpenWRT/LEDE Firmware sondern mit einer modifizierten inklusive optimierten WLan Treiber (Ursprung: LEDE for WR841N v13/WR840N v4 @ Raxp’s blog). Brauchst ihn also nicht zurück schicken. Ist nur ein wenig Aufwand. Das Flashen geht über Tftpd. Den Verlauf habe ich mittels serieller Verbindung verfolgt. Lief etwa dreimal nicht rund und dann ging es.

Allerdings ohne Web-Oberfläche, aber mit SSH lassen sich alle Einstellungen vornehmen. Jetzt berichtet meine Wetterstation dank der Arbeit von Wolbolar direkt an IPS.

Vielen Dank für das Modul, es funktioniert auf den ersten Eindruck sehr gut.

Viele Grüße,

Burkhard

Moin,

Sie ist jetzt da aber die IOS App ist ne Frechheit.

Gesendet von iPhone mit Tapatalk