Sureflap Connect

Begonnen von mheiker, 11 August 2021, 00:23:22

Vorheriges Thema - Nächstes Thema

mheiker

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

ronny332

#1
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

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).
... Homematic Flüchtling und Freund der neu gewonnen Fhem-Freiheiten.

paul79

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
FHEM5.7 auf Pi3
Busware CUL433 (IT), JeeLink Lacrosse, HM-MOD-RPI-PCB, HM, TabletUI

fireball

Hi,

falls noch Interesse besteht, ich habe es gerade mit einem HTTPMOD umgesetzt.
Einfach melden... der Fred ist ja schon mega alt.
VG
René

scooty

Hi René,
klar besteht Interesse, immer her mit Deiner Lösung.
 :)

Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

fireball

Moinsen,

also nachdem ich das halbe Netz nach div. Modulen durchsucht hatte bin ich auf diese Seite gekommen:
GIT zu nem JAVA Project

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é