Hallo zusammen,
seit einiger Zeit bin ich auf der Suche nach einer Möglichkeit, den Status einer Katzenklappe Sureflap Connect abzufragen.
Hat da jemand bereits Erfahrung mit gesammelt?
Grüße! Mathias
Hi Mathias,
falls du noch suchst, ich hatte das gleiche Problem. Scheinbar gab es nichts, daher hab ich mich mal selber rangesetzt.
https://github.com/ronny332/Petcare (https://github.com/ronny332/Petcare)
Es ging mir erst darum nur den Klappen Status in Alexa abfragen zu können. Nun sind auch die Klappen Details im FHEM Interface, ebenso kann man den Zustand ändern (FHEM oder Alexa, Google Assistant etc. natürlich auch, wenn es an FHEM anzubinden ist).
Hallo,
ich denke ich habe jetzt alles soweit richtig eingerichtet aber leider steht nichts in den Dummys von FHEM drin.
pi@PI41:/opt/fhem/Petcare $ DEBUG=petcare:* npm start
> Petcare@0.0.1 start
> node dist/index.js
petcare:config read user configuration +0ms
petcare:flap:login login token +0ms
petcare:interval new interval 'device status' 300000ms +0ms
petcare:flap:login login token +129ms
petcare:interval new interval 'online status' 60000ms +6ms
petcare:flap:login login token +6ms
petcare:interval new interval 'state' 30000ms +6ms
petcare:main started +0ms
petcare:server server @:6924 +0ms
petcare:flap:device flap device status +0ms
petcare:flap:device flap device status +10ms
petcare:flap:state flap state closed +0ms
petcare:flap:state flap state closed +30s
petcare:flap:device flap device status cached +1m
petcare:flap:state flap state closed +30s
petcare:flap:state flap state closed +30s
petcare:flap:device flap device status +1m
petcare:flap:state flap state closed +30s
petcare:flap:state flap state closed +30s
petcare:flap:device flap device status cached +1m
petcare:flap:state flap state closed +30s
petcare:flap:state flap state closed +30s
Ich habe kein Alexa aber der Dummy ist angelegt, woran könnte es liegen?
Gruß Paul
Hi,
falls noch Interesse besteht, ich habe es gerade mit einem HTTPMOD umgesetzt.
Einfach melden... der Fred ist ja schon mega alt.
VG
René
Hi René,
klar besteht Interesse, immer her mit Deiner Lösung.
:)
Andreas
Moinsen,
also nachdem ich das halbe Netz nach div. Modulen durchsucht hatte bin ich auf diese Seite gekommen:
GIT zu nem JAVA Project (https://github.com/openhab/openhab-addons/blob/43d35538d5395dbe20929bd26145216d25593171/bundles/org.openhab.binding.surepetcare/src/main/java/org/openhab/binding/surepetcare/internal/SurePetcareAPIHelper.java#L71)
Da habe ich also ein paar Anregungen geholt, mit Postman durchgetestet und dann das ganze in eine HTTPMOD gepackt.
1. Also der Account muss bei Sureflap.io vorhanden sein.
2. man braucht nur UserID/Password und die DeviceID
3. die ganzen URLs die in dem Projekt erwähnt werden, sind mMn überflüssig, weil man bei der Haupt-URL ein großes JSON mit alles :) zurück bekommt. Hier kann man natürlich durch die anderen URLs noch ein bisl Daten eindampfen (siehe meine GET1-3), aber die sind nur zum Spielen und müssen nicht ausgeführt werden oder hinzugefügt werden.
- GET1 bezieht sich auf eine spezielle Katze (wir haben 2)
- GET2 bezieht sich auf das Device
- GET3 bezieht sich auf alle Tiere
Achtung, da alle JSON die zurückgeliefert werden mit
data anfangen, überschreibt man sich die Daten immer wieder, man sollte also bei einer Main-URL bleiben.
Zur Info noch:
Main-URL ist https://app.api.surehub.io/api/me/start
Anmelde-URL ist https://app.api.surehub.io/api/auth/login
Also definiert man sich ein HTTPMOD mit
define Katzenklappe HTTPMOD https://app.api.surehub.io/api/me/start 300
und fügt dann folgende Attribute hinzu
Attributes:
enableControlSet 1
enableCookies 1
event-on-change-reading .*
extractAllJSON 1
get01CheckAllReadings 0
get01ExtractAllJSON 0
get01Header01 Authorization: Bearer $sid
get01Header02 Content-Type: application/json, Accept: application/json
get01Name Kami
get01URL https://app.api.surehub.io/api/pet/xxxPETIDxxx
get02ExtractAllJSON 0
get02Header01 Authorization: Bearer $sid
get02Header02 Content-Type: application/json, Accept: application/json
get02Name Geräte
get02URL https://app.api.surehub.io/api/device
get03ExtractAllJSON 0
get03Header01 Authorization: Bearer $sid
get03Header02 Content-Type: application/json, Accept: application/json
get03Name Status
get03URL https://app.api.surehub.io/api/pet/?with[]=status&with[]=photo
httpVersion 1.1
icon dog_silhouette
reAuthRegex .*401.*
replacement01Mode key
replacement01Regex %%Katzenklappe_Secret%%
replacement01Value Katzenklappe_Secret
room GARAGE
showBody 0
showError 1
sid1Data {"email_address":"xxxEMAILxxx","password":"%%Katzenklappe_Secret%%","device_id":"xxxDEVICEIDxxx"}
sid1Header1 Content-Type: application/json
sid1Header2 Accept: application/json
sid1IdJSON data_token
sid1URL https://app.api.surehub.io/api/auth/login
stateFormat Maui: data_pets_01_position_where Kami: data_pets_02_position_where
verbose 0
Dann sollte man noch das Password im Secret Katzenklappe_Secret speichern.
Die SID Attribute holen das JW-Token von der Anmeldung und dann wird die Main-URL nochmal abgefragt.
Kommt dann ein großes JSON zurück.
Kleiner TIPP: Wenn man alles neu hat, gibts noch keine Readings für data_pets_01_position_where, also wo die Katze grade ist.
Entweder muss mabb das über die Webseite einmal manuell setzen oder die Katze durch die Lucke schicken :P
Ich habe mir jetzt noch keine Mühe gemacht, irgendwas mit SET zu bauen, dass geht bestimmt einfacher über die APP oder WEB, aber die Abfrage ist schonmal cooler Anfang... leider aber nur ONLINE, nicht OFFLINE...
VG
René