[ul]
[li]Auslesen des Livebildes aus dem lokalen Netzwerk & automatisches erstellen des ImageGrabbers[/li][li]Webhook Events abfangen[/li][/ul]
Mein Hauptziel war es eigentlich lediglich die Events abfangen um dadurch Aktionen auszulesen.
Was wird benötigt
[ul]
[li]Eine Netatmo Presence oder Netatmo Welcome Kamera ;)[/li][li]Eine registrierte App auf Netatmo Connect[/li][li]Aktives ConnectControl Modul (alternativ: eine aufgeschaltete Domain, die von außen erreichbar ist)[/li][/ul] Funktionsweise
Nachdem die Instanz NetatmoCamera erstellt und sämtliche Zugangsdaten eingegeben wurden, wird die Kamera und der dazugehörige Webhook erstellt und bei Netatmo registriert. Die Kameradaten werden 1x pro Stunde ausgelesen.
Wenn Netatmo nun ein Event auf den Webbhook abschickt, werden dessen Daten in Variablen gespeichert, die wiederum für Aktionen verwendet werden können (wie bei mir das Aussenlicht einschalten, wenn als event_type human übermittelt wurde.
Getestet habe ich das mit der Netatmo Presence. Die Netatmo Welcome sollte aber ebenfalls funktionieren, hier werden zusätzlich noch Daten zur erkannten Person im Webhook übermittelt.
die Fehlermeldung kommt, wenn das Kamerabild unter der lokalen URL nicht erreicht werden kann. Der Link wird zusammengebaut aus der angegebenen Kamera IP, einem 32-Stelligen Token der über die API ausgelesen wird und dem eigentlichen Pfad zum Bild.
Kannst du deine hinterlegte IP-Adresse der Kamera überprüfen ob diese stimmt?
Ansonsten habe ich eben noch ein kleines Update gemacht, das im Fehlerfall zum einen eine aussagekräftigere Fehlermeldung erzeugt und den Link zum Kamerabild loggt.
Vielleicht lässt sich damit herausfinden wo der Fehler liegt.
Ein Webhook Passwort muss nicht vergeben werden. Da müssten auch bereits Daten eintrudeln, wenn sich jemand vor deiner Kamera bewegt.
Wenn ich diese URL in Safari eingebe bekomme ich aber auch kein Bild sondern werde auf https://192.198.1.114/login.cgi?uri=/index.html umgeleitet.
Die IP stimmt sicher, habe ich noch einmal geprüft.
Auch die Webhooks kommen noch nicht an.
Muss ich die Hook-Adresse manuel in Netatmo Connect eintragen?
Soweit ich weiß läuft auf den Kameras weder ein cgi script, noch kann man sich da irgendwo anmelden.
Hast du die Presence oder Welcome Camera?
Ich habe eben noch ein Update gemacht, das als Fallback die VPN URL an den Image Grabber übergeben wird. Hier weiß ich allerdings nicht, wie stabil das läuft bzw. ob es da Restriktionen seitens Netatmo gibt wenn man sich das Bild alle X Sekunden abholt.
Den Webhook braucht man nicht eintragen, der wird durch das Modul registriert (sieht man aber dann leider nicht in Netatmo Connect). Hätte es hier einen Fehler gegeben wäre dieser aber auch abgefangen und ausgegeben worden.
Kannst du in Netatmo Connect mal in deine App schauen und dort bei Webhook in die Logs schauen, ob überhaupt etwas übermittelt wurde? Ebenfalls könntest du nochmal schauen, ob der Webhook in Symcon korrekt eingetragen wurde (Objektbaum > Kern Instanzen > WebHook), da müsste ein Webbhook mit dem Ziel „Netatmo Camera“ hinterlegt sein.
Ah seh gerade nochmal in deinem oberem Screenshot das du die Presence hast.
Dann kann das aber nicht die richtige IP sein, die Presence hat definitiv kein Login.
es funktioniert, ich kann aber nicht genau sagen warum…
Ich habe noch einmal alle Einstellungen geprüft und dabei ist mir aufgefallen, dass sich hinter der URL in "Link zu Symcon ein „/“ eingeschlichen hatte was zur Folge hatte, dass der Webhook nicht angekommen ist weil „ipmagic.de//hook/netatmo_presence_21193“.
Das konnte ich leider nicht gleich sehen weil das Eingabefeld etwas zu kurz ist.
Ich habe den „/“ entfernt und übernommen aber irgendwie hat es die Änderung nicht an Netatmo Connect übertragen.
Dann habe ich die Instanz und den Hook gelöscht und alles neu angelegt und es hat sofort funktioniert.
Leider kann ich jetzt nicht sehen ob er das Bild Lokal oder über VPN bezieht.
Der Hook war aber auch vor dem Löschen richtig angelegt. Ich hatte auch vor dem Löschen mit Safari einen Hook gesendet mit Inhalt
...?Test=1
und konnte im Meldungsfenster einen Eingang erkennen.
Die IP ist immer noch die gleiche…
Gibt es eine Möglichkeit den generierten Link um lokal auf die Kamera zu kommen irgendwann wo auszulesen?
Dann könnte ich das noch einmal testen.
Coole Sache das Modul und einen supper Support den du da leistest!
DANKE!!!
Um zu prüfen, über welche URL sich das Modul das Kamerabild bezieht brauchst du eigentlich nur im angelegten ImageGrabber ‚Snapshot‘ nachsehen, was dort steht.
Ich habe aber eben nochmal ein Update bereitgestellt, das sowohl die lokale URL, als auch die VPN URL in einer Variable speichert. Zudem wird nun die externe URL geprüft und korrigiert, sollte sich ein Slash am Ende befinden.
ich wollte gerade unsere Welcome Kamera’s in IP-Symcon einbinden (Snapshot im Webfront) doch leider werden „snapshot_local“, „snapshot_vpn“ und „s_local“ nicht befüllt. Wenn ich das jetzt richtig gesehen habe, muss bei der Beantragung der API ein „access_camera“ Scope angefordert werden. Des Weiteren wird der Webhook nicht ausgeführt - also prinzipiell ist nichts zu sehen außer Kameraname, Typ & die Status-Infos.
Wie habt ihr das gemacht, bzw. was gibt es hierbei zu beachten?
Gruß,
Markus
Netatmo-FAQ:
Requirements
Provide Netatmo with a high-level workflow diagram of its integration (App / your servers / Netatmo servers)
Logos and Icons should comply with Netatmo branding guidelines.
Authorization code grant type is required for authentication.
User should be able to remove its cameras access from the 3rd party application.
Storing token/refresh token anywhere else than on the user device is not allowed.
Providing video access and streaming capability to anyone else than the authenticated user is not allowed.
Provide Netatmo with a link to pre-production application for review.
der ‚access_camera‘ Scope wird nicht benötigt. ‚read_camera‘ bzw. ‚read_presence‘ reichen da vollkommen aus.
Der Webhook selber wird natürlich nur ausgeführt, wenn auch eine Bewegung registriert wurde.
Warum bei dir die Snapshot & VPN URL’s nicht befüllt werden kann ich so ad hoc leider nicht genau sagen.
Könntest du mir per PN einmal deine Client ID und Client Secret zuschicken? Dann kann ich das näher testen und genau sagen woran es liegt, anschließend kannst du die beiden ID’s wieder zurücksetzen.
Am besten integriere ich auch noch eine Debugoption, welche einmal alle Werte ausliest und logt.
Kannst du mir noch sagen, wie du genau die Steuerung von Ereignisse machst?
Ich möchte, sobald eine Person erkannt wird, ein Script ausführen, welches die HUE Lampen im Flur zwischen 18 und 23 Uhr einschaltet.
Ersteinmal vielen Dank für das tolle Modul! Die Netatmo Kameras sind wirklich genial mit ihren smarten Events!
Der Webhook mit den Events funktioniert schon und auch der Name der Kamera und der Typ „Welcome“ wurden korrekt ausgelesen. Als Typ habe ich eine Welcome mit korrekter IP angelegt. Etwas komisch ist das im Webhook dennoch „presence_VarID“ steht. Außerdem bekomme ich die Meldung „Could not find the Camera picture at“. Hinter dem „at“ steht nichts mehr, der Satz endet einfach.
Beim Anlegen des Moduls erhalte ich außerdem folgende Fehlermeldung, welche vermutlich die Ursache des Ganzen ist:
Nicht schreiben was du gemacht hast, als diese Meldungen erschien.
Von alleine zeigt die Konsole keine Popups.
Irgendwas hast du also angeklickt.
Meldungsfenster kontrolliert?
Michael
Welche Version verwendest du denn von IP-Symcon?
Den Fehler bekomme ich nämlich in der 5er Beta auch, da muss ich noch ein paar Anpassungen für tätigen zu denen ich bisher aus zeitlichen Gründen leider noch nicht gekommen bin.
In der aktuellen 4.4 sollte das Ganze aber problemlos funktionieren.
Dieses schaltet dann das Aussenlicht ein und startet einen Timer von 60 Sekunden der das Licht dann wieder ausschaltet, sofern zwischenzeitlich nicht ein neues Ereignis empfangen wurde.