Posts Tagged ‘Netatmo’

Sonntag, 4. April 2021

Netatmo Modulchaos: Nach Jahren gelöst

Kürzlich konnte ich ein langjähriges Problem mit einer Netatmo Weather Station-Installation eines Bekannten lösen.

Auf Grund der Beschränkung der Anzahl Innenmodule pro Basisstation betreibt er zwei Basisstationen.

Die Temperaturwerte der Module werden von einem Script über die Netatmo API abgefragt und dann auf einem Dashboard angezeigt.

Das Problem: Ein bestimmtes Innenmodul fehlte bisher in den API-Daten, obwohl dessen Werte in der Netatmo App problemlos angezeigt werden. Anstelle der Stationsdaten wurde im Dump der PHP-Variable mit den API-Nutzdaten null angezeigt, umgeben von den Daten anderer Innenmodule.

Vor einigen Wochen entschied ich mich, dem Problem ein für allemal auf den Grund zu gehen — und es zu lösen. Nach längerem hin- und her mit dem Netatmo Support gab mir Leslie letzte Woche den entscheidenden Hinweis: Er wies mich darauf hin, dass ein Innenmodul an beiden Basisstationen angemeldet sei. Aus Sicht der Entwickler könnte dies das Problem verursachen.

Darauf angesprochen erwähnte der Bekannte, dass er seinerzeit das Modul zuerst an der einen Basisstation angemeldet hatte, sich dann aber anders überlegt und es dann mit der anderen Basisstation verbunden hatte.

Bemerkung am Rande: Komisch, dass Netatmo sowas überhaupt zulässt (zuliess?). Meine Vermutung: In der Datenbank wird von einer Basisstation auf die Modul IDs verlinkt, weshalb verschiedene Basisstationen auf dasselbe Modul linken können (n:1). Besser wäre es umgekehrt: Ein Modul sollte zu einer Basisstation gelinkt sein (1:1).

In der iOS App wurde das Geister-Innenmodul nicht angezeigt. Im Web GUI hingegen gab pro Basisstation je ein Modul-Eintrag mit einem Fragezeichen, doch in den Einstellungen wurde das Modul dann doch nicht aufgelistet.

Schlussendlich entschied ich mich für einen anderen Weg: Ich lud die App NetatmoModulesManager.app herunter. Es handelt sich um eine macOS App, die man mit einer Google-Suche nicht einfach so zum Download findet — deshalb hier die Wegbeschreibung:

Wenn man auf dieser Seite startet und den Link No smartphone? No tablet? Click here for an alternative installation using your computer. klickt, loggt man sich in Netatmo ein und es wird einem dann der Download-Link präsentiert (meinem Verständnis nach setzt dies voraus, dass man bereits eine Weather Station in Betrieb hat?). Der Direktlink lautet derzeit (4. April 2021) fw.netatmo.net/NetatmoModulesManager_MacOS.dmg.

Nach der Installation verbanden wir nacheinander die zwei Basisstationen mit dem Mac (Screenshots der Oberfläche). Hierzu starteten wir zuerst die App, klickten auf Weiter und schlossen die Basisstation erst an, als wir dazu aufgefordert wurden. Nach 10-15 Sekunden warten erschien die Basisstation dann auf dem Bildschirm. Als erstes wurde ein Firmware-Update durchgeführt, anschliessend startete die Basisstation neu und uns wurde in der App die Liste der Aussen- und Innenmodule angezeigt.

Leider entsprachen die Namen der Module hier nicht dem Web GUI. Ich notierte deshalb die Modul ID in der App, und verglich diese mit dem Web GUI um sicher zu gehen, dass ich die richtigen Modulnamen notieren konnte.

Schlussendlich fand ich den Übeltäter; d.h. ein Modul, dessen ID bei beiden Basisstationen aufgeführt wurde. In der App löschte ich das richtige Modul von der richtigen Basisstation — und die App stürzte ab. Beim zweiten Versuch gelang es tatsächlich, das Modul zu löschen.

Seither ist das API-Problem gelöst.

Tags: , , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 9. September 2018

Auf welcher Frequenz senden Netatmo-Module und was ist die Reichweite?

Gemäss der EU- und FCC-Konformitätserklärung (PDF) funken Innen- und Aussenmodule auf 869 MHz (präziser: zwischen 869.3 und 869.5 MHz mit einer Stärke von 16 Milliwatt).

Wieso ich das nachgeschaut habe? Nun, ich wollte ein Modul bei uns im Keller aufstellen, aber bereits vorher abschätzen, ob das Modul eine Chance haben wird, vier Betondecken (d.h. vom 2. UG ins 2. OG) zu durchdringen. Die Angabe zu den verwendeten Frequenz half mir schlussendlich nicht weiter, weil ich die Werte nicht beurteilen und auf „Durchdringungsstärken“ umsetzen kann. Der Praxis-Test zeigte aber, dass man absolut keine Chance hat, mit dem Signal durchzukommen.

Da hilft auch eine GSM-ähnliche Frequenz nicht, da das Modul mit seinen 16 mW deutlich weniger Leistung sendet als ein Smartphone (diese können die Leistung bis auf 2 Watt hochschrauben, wenn sie sich weit weg von einem Sendemast befinden — Faktor 125) — schliesslich möchte der Besitzer ja nicht täglich oder wöchentlich die Batterien des Moduls tauschen gehen.

Tags: , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 18. Dezember 2013

Den Netatmo PHP API-Client mit weniger strikten SSL-Anforderungen patchen

Vor einigen Tagen hörte mein Raspberry Pi-Dashboard auf, die Werte meiner Netatmo NWS01 Wetterstation für Apple iPhone und Android anzuzeigen.

Auf meinem lokalen Mac funktionierte das Dashboard hingegen problemlos; d.h. ich konnte mittels dem Netatmo PHP API-Client die JSON-Datei mit den aktuellen Messwerten wie Temperatur, Luftdruck und -feuchtigkeit abrufen.

Die genaue Ursache hinter dem Problem kenne ich bis heute nicht, doch ich vermute mit dem jetzigen Wissensstand, dass die Cyon-Ingenieure an der Konfiguration ihrer Server herumgewerkelt haben und dabei unter anderem das Root-Zertifikat entfernt haben, welches der Netatmo API-Client zur HTTPS-verschlüsselten Kommunikation mit den Netatmo-Servern verwendet.

Nachdem ich nämlich die Exception mittels vardump() genauer betrachtete, welche NACurlErrorType zurücklieferte, war der Fall schnell sonnenklar:

...
[message:protected] => SSL peer certificate or SSH remote key was not OK
...

Nun … gut! Was macht man da? Ich habe die Datei NAApiClient.php gepatcht, indem ich cURL mit der auf false gesetzten Option CURLOPT_SSL_VERIFYHOST sage, unverifizierte SSL-Zertifikate kommentarlos zu akzeptieren:

...
        else 
        {
            $opts[CURLOPT_HTTPHEADER] = array('Expect:');
        }
        
        $opts[CURLOPT_SSL_VERIFYHOST] = false;
        
        curl_setopt_array($ch, $opts);
...

Bei einer API wie Netatmo ist diese manuell herbeigeführte Schwachstelle zu verantworten. Ginge es um Mailverkehr oder Online-Banking, würde ich eine solche Option definitiv nicht aktivieren.

Tags: , , , , , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 1. September 2013

Der Dank iPhone-Apps und -Gadgets vermessene und vernetzte Mensch

Seit meine Partnerin und ich am 1. Juni 2012 offiziell hier in unsere Mietwohnung in Bern eingezogen sind haben sich auch einige iPhone-Apps und Gadgets in unserem Leben breit gemacht, ohne welche ich nicht mehr auskommen möchte. Hier eine Auswahl der Produkte, die helfen, meinen Körper und mein Leben zu vermessen:

Waage

Ganz frisch in unserem Gadget-Park aufgenommen wurde eine per WLAN vernetzte Waage:

Withings WS-30 Online-Waage (für iPhone und iPad) (Affiliate-Link)

Sowohl Stephanie als auch ich haben uns mit per iPhone-App mit der Waage vernetzt (mittels zwei separaten Konten, damit der Datenschutz gewahrt bleibt). Das Beste: Die Waage ist mit einer Intelligenz ausgestattet und merkt, ob Stephanie oder Mario auf der Waage steht und sendet das Gewicht an das richtige Benutzerkonto auf den Withings-Servern.

Ich habe mir nun vorgenommen, täglich zweimal (morgens und abends) auf die Waage zu stehen und so mein Gewicht über Wochen und Monaten zu überwachen. Ich bin ja mal gespannt, wie sich der Cannstatter Wasen sowie die Feiertage im Dezember auf meine Pfunde auswirken werden.

Wetterstation

Über jcfricks Tweet bin ich ein halbes Jahr nach dem Einzug in die Mietwohnung auf die Wetterstation für das 21. Jahrhundert aufmerksam geworden:

Netatmo NWS01 Wetterstation für Apple iPhone und Android (Affiliate-Link)

Seither steht die Basisstation im Wohnzimmer, registriert Temperatur, Feuchtigkeit und Lärm, während die Aussenstation auf dem Balkon die Temperatur misst (obwohl nicht über alle Zweifel erhaben, da ich hier auch schon Werte von 40 Grad Celsius abgelesen haben — wohl mangels Schattenplatz und der metallenen Unterlage?).

Mittels Web-API greife ich zudem auf diese Daten zu und zeige sie auf meinem Raspberry Pi-Dashboard minutenaktuell an. Den ursprünglich eingerichteten Lärm-Alarm habe ich deaktiviert, da meine Freundin zweitweise von zu Hause arbeitet und ich so von der iPhone-Applikation unnötig „alarmiert“ wurde. Mittels Web-Applikation lassen sich nämlich bei der Über- oder Unterschreitung von Schwellenwerten Alarmierungen an die für eine bestimmte Wetterstation registrierten Smartphone-Applikationen senden. In meinem Fall generierte jeder Lärm über 50dB eine solche Warnmeldung. Effektiv nützlich war diese Alarmierung nur gerade einmal: Als mein Bruder die Wohnung betrat, um einen ausgeliehenen Gegenstand zurückzubringen. Ansonsten waren es Helikopter, die das Inselspital anflogen oder der Hausmeister, welcher den Rasenplatz mit seinem Gebläse von Laub befreite.

Pulsmesser

Vorbei sind die Zeiten, in denen Polar ein Heidengeld mit seinen überteuerten Pulsmessern machen konnte. Dank dem immer präsenten iPhone mit grosser Rechenkraft ist es nun möglich, während dem Lauftraining auf einen „dummen“ Pulsmessgurt zu setzen, der seine Daten per Bluetooth an iPhone-Applikationen übermittelt:

Mobile Action HRM-10 i-gotU Herzratenmonitor (Bluetooth, Herz-Frequenz-Messgerät) (Affiliate-Link)

Meine Fitness-App, RunKeeper, unterstützt dieses Modell problemlos. Beim Lauftraining höre ich so in 5-Minuten-Abschnitten nicht nur, wie viele Kilometer ich schon zurückgelegt habe, sondern auch, wie hoch meine Pulsfrequenz gerade ist.

Einziger Wermutstropfen: Bisher habe ich noch nicht herausgefunden, ob und wie man die Pulswerte über eine gesamte Laufstrecke exportiert.

Tags: , , , , , , , , , ,
Labels: Shopping

1 Kommentar | neuen Kommentar verfassen