Das Kamerabild der netatmo welcome haben wir ja bereits in das Fibaro HomeCenter 2 eingebunden. An dieser Stelle hat allerdings noch die netatmo presence gefehlt. Mit diesem Artikel liefern wir euch auch diese Integration, wie das genau funktioniert erfahrt hier in diesem Artikel.
In den Kommentaren zu dem oben erwähnten Artikel zu der netatmo welcome Integration in das Fibaro HomeCenter 2 sind wir bereits kurz darauf eingegangen, dass das vorgestellte Skript nicht mehr der API, also der Programmierschnittstelle, von der netatmo presence kompatibel ist. Wir haben den LUA-Code mal angepasst, dass dieser auch kompatibel mit der netatmo presence ist. Mit diesem Code könnt Ihr den lokalen JPG-Stream der Kamera ermitteln, damit dieser dann als Stream im Fibaro HomeCenter 2 angezeigt werden kann.
Die netatmo presence Outdoor-Kamera kann derzeit zum Beispiel für 279,00 € über Amazon.de käuflich erworben werden.
Ermittlung der netatmo presence URL
Wie auch bei der welcome-Kamera muss die lokale Stream-URL ermittelt werden. Bei der presence-Kamera sind allerdings andere Berechtigungen bei der API notwendig, weshalb das alte Skript an dieser Stelle nicht funktioniert. Dies haben wir jetzt nachgeholt und Ihr könnt das Skript mit der netatmo presence nutzen.
Um die Szene auszuführen, legt Ihr euch einfach eine neue LUA-Szene an und kopiert den Code auf euer HC2. Ihr müsst dann nur eure Daten (Client ID, Client Secret, Username & Passwort) für die Anbindung an die netatmo API anpassen. Den gesamten Code findet Ihr hier:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
--[[ %% properties %% globals --]] -- DIESE DATEN ANPASSEN local client_id = '563a791369f740xxx' local client_secret = 'OmHqQ551M6xxx' local username = 'boomx@siio.de' local password = 'xxx' local language = 'german' -- german/english -- AB HIER NICHTS MEHR ANPASSEN local token = '' local request_body = '' Debug = function ( color, message ) if (debug == 1) then fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) elseif (debug == 0) then end end DebugChange = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) end DebugError = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) end fibaro:debug('netatmo presence cam finder v1.5') if (language == 'german' or language == 'english') then DebugError( "green", "Debug: " ..language) else DebugError( "red", "Please choose a language for debug") fibaro:abort(); end local sourceTrigger = fibaro:getSourceTrigger(); function oAuth(nextFunction) local request_body = 'grant_type=password&client_id=' .. client_id .. '&client_secret=' .. client_secret .. '&username=' .. username .. '&password=' .. password .. '&scope=read_presence access_presence' getResponseData('https://api.netatmo.net/oauth2/token', request_body, function(data) if (data.access_token ~= nil) then token = data.access_token gethomedata() else if (language == 'german') then DebugError( "red", "oAuth-API-Call konnte nicht durchgeführt werden! oAuth 2.0 lieferte keinen Wert zurück") elseif (language == 'english') then DebugError( "red", "oAuth-API-Call Error. oAuth 2.0 returns nothing.") end end end ) end function getResponseData(url, body, func) local http = net.HTTPClient() http:request(url, { options = { method = 'POST', headers = { ['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' }, data = body }, success = function(response) func(json.decode(response.data)) end }) end function gethomedata() request_body_cam = 'access_token=' ..token.. '' getResponseData('https://api.netatmo.net/api/gethomedata', request_body_cam, function(getData) --fibaro:debug(request_body_cam) if (getData.body ~= nil) then if (language == 'german') then DebugError( "green", "API-Call durchgeführt.") elseif (language == 'english') then DebugError( "green", "API-Call was done.") end for w, v in pairs(getData.body.homes) do for a, b in pairs(v.cameras) do if (b.is_local) then if (language == 'german') then DebugError( "green", "Lokale IP der Kamera gefunden.") elseif (language == 'english') then DebugError( "green", "Local IP of cam was found.") end findLocalWelcome(b.vpn_url) else if (language == 'german') then DebugError( "green", "Lokale IP der Kamera NICHT gefunden.") elseif (language == 'english') then DebugError( "green", "Local cam NOT found.") end end end end else if (language == 'german') then DebugError( "red", "API-Call fehlgeschlagen") elseif (language == 'english') then DebugError( "red", "API-Call Error") end end end ) end function findLocalWelcome(url) local selfhttp = net.HTTPClient({timeout=2000}) url = url..'/command/ping' selfhttp:request(url, { options={ headers = selfhttp.controlHeaders, method = 'GET', timeout = 5000 }, success = function(status) if status.status == 200 then if status.data ~= nil then --print(json.decode(status.data)) for k,v in pairs(json.decode(status.data)) do if (k == 'local_url') then local cam_url = v local url_new = string.sub(cam_url, 8, #cam_url) one, two = url_new:match("([^,]+)/([^,]+)") fibaro:debug('Cam-IP: '..one) fibaro:debug('JPG-Stream: /'..two.. '/live/snapshot_720.jpg') DebugError( "green", "coded 4 siio.de/siio.com") end end end else print ("failed") print(status.data) end end, error = function(error) print "ERROR" print(error) end }) end oAuth() |
Die Szene startet nur bei manueller Ausführung und muss auch nur einmalig gestartet werden. Es wird damit nur der benötigte Pfad für die Kamera-Einstellung ermittelt. Dies funktioniert leider nur über die API von netatmo, eine Ermittlung der URL über den lokalen Zugriff ist nicht möglich.
Um den Stream jetzt im HomeCenter anzeigen zu lassen, müsst Ihr eine neue Kamera hinzufügen und dort die Werte (IP, JPG path, MJPG stream path) aus dem Debug-Fenster eintragen. Der JPG- und der MJPG-Stream müssen jeweils mit der gleichen URL ausgefüllt werden. Nach dem Speichern sollte dann das Bild angezeigt werden.
Anders als bei der welcome können andere Funktionen der presence nicht mit dem Fibaro HomeCenter 2 nicht genutzt werden.
Das ist genial. Leider habe ich nur die HCL, so dass ich das Script leider nicht laufen lassen kann.
Gibt es vielleicht ein Script, das auf einem Mac, einer Synology oder einem Webserver läuft um die URL auszulesen?
Du kannst das auch einfach über die URL-Calls an die API von netatmo machen. Ein Programm brauchst du dafür nicht. Alle Infos erhältst du in der Dokumentation von netatmo.
Gruß
Vielen Dank für die spezifische Seite für die Netatmo Presence Kamera.
Ich habe das Skipt in meine Fibaro Szene kopiert. Benötigte Daten ersetzt und bekomme die folgende Fehlermeldung:
[DEBUG] 14:06:20: netatmo presence cam finder v1.5
[DEBUG] 14:06:20: Debug: german
[DEBUG] 14:06:20: oAuth-API-Call konnte nicht durchgeführt werden! oAuth 2.0 lieferte keinen Wert zurück
Das Script führt den Call aus und mein Konto wird angesprochen, da ich nach einigen Versuchen das folgende Email bekommen habe:
Betreff: Ihr Konto wurde vorübergehend gesperrt
Email Inhalt: Nach mehreren fehlgeschlagenen Authentifizierungsversuchen wurde Ihr Netatmo-Konto für die nächsten 10 Minuten gesperrt.
Ich habe das Passwort geändert. Username und Passwort mit Copy & Paste in den Script eingetragen? Weiss nicht was ich noch falsch machen könnte?
Hätte mir jemand noch etwas was ich ausprobieren könnte?
Die Client_ID und die Client_Secret müssen auch geändert werden. Sonst kann es nicht funktionieren ;)
Gruß
Client_ID und Client_Secret habe ich natürlich ebenfalls geändert ;-) Sonst keine Idee was los sein könnte?
Gibt es die Möglichkeit wie ich noch weitere Infos liefern kann um das Problem zu analysieren?
Da dein netatmo-Konto gesperrt wird, gehe ich stark davon aus, dass die Zugangsdaten nicht korrekt sind.
Ich habe das Skript grad nochmal getestet: Funktioniert ohne Probleme.
Gruß
Hallo boomx,
habe mir letzte Woche das HCL zugelegt. Soweit bin zufrieden, allerdings bekomme ich meine Netatmo devices nicht angezeigt.
Habe mir entsprechend deiner Anweisung ein developer account bei netamo eingerichtet, aber die devices werden nicht eingelesen.
Gibt es eine Sache die ich übersehen habe ? Ich komme meomentan nicht weiter.
Über einen Tipp wäre ich dankbar!
Gruß
Hi,
zeigt dir das Plugin an, dass der Account connected ist?
Gruß
Nein, das Plug in zeigt folgendes an:
Invalid username or password
passwort und username sollten aber eigentlich richtig sein.
Danke erstmal für die schnelle Antwort!
Dann hast du ja dein Problem ;)
Aber noch nicht gelöst :)
Gruß Uwe
Habe das Plugin nochmal gelöscht und neu installiert.
Jetzt erhalte ich die Meldung "not connected"?
Damit kann ich deine erste Frage nun mit Nein beantworten.
Hast du einen Tipp!
Gruß Uwe
Kommando zurück, jetzt kommt die andere Fehlermeldung wieder!?
Gruß Uwe
Alle 4 Angaben müssen korrekt sein, was sie anscheinend bei dir nicht sind.
Gruß
Ich bin erst mal mit meinem Latein am Ende.
Habe mehrmals alles überprüft, aber keinen Fehler gefunden.
Gruß Uwe
Das Plugin funktioniert seit mindestens 1 Jahr ohne Probleme. Also wirst du irgendwas falsch machen. Hast du alle Angeben geprüft? Auch die Client ID und die Client Secret? Dies wird jetzt meine letzte Antwort zu dem Thema sein, da die grundsätzliche Plugin-Installation Standard sein sollte...
Gruß
Vielen Dank für deine Geduld, die Angaben habe ich mehrmals überprüft, aber keinen Fehler gefunden.
Hier aber nochmal ein großes Lob an Euch für die tollen Tipps und Beiträge!
Super Job!
Gruß Uwe
Hallo zusammen,
ich glaube ich habe hier was passendes für meine Anforderungen gefunden - als Überwachung des kompletten Eingangsbereiches samt Parkplatz.
Zumal das Ding erstmal nicht offensichtlich aussieht wie eine klassische Kamera und ich das dadurch mittig auf die Wand machen kann.
Frage dazu:
Ich habe noch ein paar anderen Aussenleuchten am Haus.
Bekommt man es irgendwie hin, dass der HC2 auf Bewegung reagiert und mir die Lampen schaltet?
Ich hatte hierzu mal was im Forum geschrieben- es müsste ein http call ausgelöst werden und damit schalten.
Oder gibts ne Möglichkeit, dass der HC2 auf eine Datei reagiert die auf dem ftp oder der dropbox ankommt??
Ich möchte ungerne noch einen zusätzlichen Motionsensor neben die Kamera hängen.
Thx
Torsten
Hi,
letzteres funktioniert nicht. Der Weg mit den API-Calls ist der richtige Weg.
Gruß
Servus Torsten,
konntest Du das Problem lösen ? Ich habe genau das gleiche Problem. Netatmo App erstellt- Daten 1:1 in das HC2 Plugin kopiert- erst not connected- dann invalid username or password. Lasse ich das Plugin laufen, wird der Netatmo Account nach einer Weile gesperrt, wegen zu vielen Zugriffsversuchen.
Gruß Ingolf
Dann stimmen die Daten nicht. Das Plugin funktioniert seit einigen Versionen ohne Probleme.
Gruß
UGausO und Angel ich habe das gleiche Problem, habe jeden einzelnen Parameter mit Copy & Paste in das Script übernommen.
Habe geprüft dass keine Leerzeichen da sind. Ich habe mittlerweile aufgegeben ;-( Falls jemand, der wie es scheint einen Parameter falsch eingegeben hat, plötzlich das Ganze zum Laufen kriegt, bitte kurz schreiben, ob es wirklich am Parameter lag oder evtl. noch was anderes zum Problem führte.
Hi,
anscheinend funktioniert das Skript nicht mehr. Möglicherweise hat netatmo etwas an der API geändert.
Gruß
Ich habe mir gedacht, dass ich alles geprüft habe.
Hat niemand den Fix für das bestehende Script oder ein neues Script das funktioniert?
Nein, bisher noch nicht.
Ich habe eine Netatmo Presence und HC2 in Verwendung, das Script funktioniert einwandfrei. Habe das Script auch noch so verändert, dass ich über eine Szene das Monitoring ein- bzw. ausschalten kann. Also wenn Interesse besteht teile ich die Szene gerne mit euch.
lg aus Wien
basti
https://www.siio.de/welcome-abwesenheit-fibaro/
;)
Hallo, Basti, ich habe auch eine Presence und ich würde mich freuen, wenn Du mir dein Script zur Verfügung stellen würdest.
hier eine mail adresse: alfonsz(at)ymail.com
Ich danke dir gruß alfons
die Cams Welcome und Presence sind nicht ganz ident (https://dev.netatmo.com/en-US/resources/technical/reference/cameras):
- Welcome is an indoor camera with face recognition capabilities.
- Presence is an outdoor security camera with people, car and animal detection capabilities.
Die Außenkamera Presence kann leider nur zwischen Mensch, Tier usw. unterscheiden, aber leider nicht Menschen erkennen. Ich gehe davon aus, dass der Link den du da geschickt hast nur für die Innenkamera Welcome gilt - https://dev.netatmo.com/en-US/resources/technical/reference/cameras/setpersonsaway.
Ich habe die Presence und da muss der Status der Kamera auf "on" oder "off" gesetzt werden, hier der relevante LUA-Teil:
function setMonitoring(url)
local selfhttp = net.HTTPClient({timeout=2000})
url = url..'/command/changestatus?status=on'
selfhttp:request(url, {
options={
headers = selfhttp.controlHeaders,
method = 'POST',
timeout = 5000
},
hi..kannst du mir dein Script zur Verfügung stellen?
Hi, Basti der Sackmann hat eine Presence gebracht. Wäre es möglich dein Script zu bekommen?
grüße Manfred
Mahlzeit...habe mir eine "netatmo presence" geholt und möchte die gerne ins HC2 einbinden, bekomme jedoch mit dem obrigen Skript eine Fehlermeldung zurück.
[DEBUG] 11:10:45: netatmo presence cam finder v1.5
[DEBUG] 11:10:45: Debug: german
[DEBUG] 11:10:45: API-Call durchgeführt.
[DEBUG] 11:10:45: Lokale IP der Kamera NICHT gefunden
Bei mir funktioniert das Skript ohne Probleme:
[DEBUG] 19:06:36: netatmo presence cam finder v1.5
[DEBUG] 19:06:36: Debug: german
[DEBUG] 19:06:37: API-Call durchgeführt.
[DEBUG] 19:06:37: Lokale IP der Kamera gefunden.
[DEBUG] 19:06:38: Cam-IP: 10.0.1.**
[DEBUG] 19:06:38: JPG-Stream: /1edb79f16a770dd4709dd********a79/live/snapshot_720.jpg
[DEBUG] 19:06:38: coded 4 siio.de/siio.com
Schau doch mal bitte, ob deine presence eine lokale IP bekommen hat, die auch im Netzwerk vom HC2 ist
Gruß
ich danke dir für die schnelle Antwort und sofort nochmals alles kontrolliert und neu versucht...hatte den Fehler gemacht das ganze im VPN (von der Arbeit aus) zu versuchen, und obwohl HC2, Fritzbox und Netatmocam im selben Netz waren hatte es nicht Funktioniert...jetzt scheint es zu funzen, wobei die Cam immer nur kurz ein Bild zeigt
Hallo,
ich bekomme beim Ausführen leider folgenden Fehler:
[DEBUG] 14:25:33: netatmo presence cam finder v1.5
[DEBUG] 14:25:33: Debug: german
[DEBUG] 14:25:33: [1;31m2017-12-19 14:25:33.275673 [ fatal] LUA error: /usr/share/lua/5.2/json/decode/util.lua:35: unexpected character @ character: 1 0:1 [H] line:
[DEBUG] 14:25:33: H
Habe das Script 1:1 kopiert, was könnte der Fehler sein?
Hallo,
ich habe leider immer wieder das gleiche Problem wie Michael, was kann ich tun ?
Grüße
Henry
Hallo Leute, gibt es eigentlich eine Lösung für die Netatmo Presence und dem HC2 ein script zu benutzen?
Ich würde gern beim unscharf schalten meiner Alarmanlage die Netatmo auf „Off“ schalten.
Also eingebunden ist sie bereits im HC2 und funktioniert auch super.
Freue mich über jede Antwort von Euch und bedanke mich.
Gruß Manfred
Hallo zusammen
Ich habe mit V4.170 bei diesem Script immer diesen Fehler:
[DEBUG] 15:06:37: netatmo presence cam finder v1.5
[DEBUG] 15:06:38: Debug: english
[DEBUG] 15:06:38: [1;31m2018-03-28 15:06:38.265633 [ fatal] LUA error: /usr/share/lua/5.2/json/decode/util.lua:35: unexpected character @ character: 1 0:1 [H] line:
[DEBUG] 15:06:38: H
Was kann dies sein? Sonderzeichen Problem im Password?
Looks nice. Is there any plugin for this? I don't now anything about LUA. pleas can anybody help me with tis feature
Best regard
Håkan inn Sweden
Funktioniert super, allerdings ist das Bild weg sobald sich die IP-Adresse der Kamera aufgrund von DHCP geändert hat. Leider kann man keine feste IP in der Kamera einstellen. Oder doch? Nach Anpassung der IP ist das Bild wieder da bis die Leasetime abgelaufen ist. Gibt es eine Möglichkeit, dieses Problem zu verhindern?
Hallo,
ich bring es einfach nicht hin..
Folgende Fehlermeldung:
[DEBUG] 15:17:58: 2019-01-03 15:17:58.522385 [ error] Handshake error: certificate verify failed
Liegt das eventuell daran das mehrere CAMs meinen Account zugeordnet sind?
Hallo,
leider klappt es bei mir nicht.
Erhalte immer folgende Fehlermeldung:
[DEBUG] 16:11:49: netatmo presence cam finder v1.5
[DEBUG] 16:11:49: Debug: german
[DEBUG] 16:11:50: 2019-01-03 16:11:50.033897 [ error] Handshake error: certificate verify failed
Hat sich hier etwas geändert?
Danke
[DEBUG] 16:36:38: netatmo presence cam finder v1.5
[DEBUG] 16:36:38: Debug: german
[DEBUG] 16:36:38: 2019-01-03 16:36.033897 [ error] Handshake error: certificate verify failed
Leider auch kein Erfolg, weder bei der Presence noch bei der Welcome - beide hatten zuvor noch funktioniert
Hi zusammen,
weiß jemand ob das Skript noch aktuell ist? Ich bekomme den Fehler: Handshake error: certificate verify failed...
Mach ich was falsch oder hat hier Netatmo wieder was geändert?
Grüße
Servus zusammen,
seit dem HomeKit Firmware-Update sind nur not JPG Shots per URL möglich.
Oder bekommt noch wer ne URL die für den Stream funktioniert?
Danke & Gruß,
Daniel