SureFlap Haustierklappe

Begonnen von greuff, 09 Juni 2015, 17:35:57

Vorheriges Thema - Nächstes Thema

greuff

Hallo,

falls ich nicht das richtige Forum gewählt habe bitte ich schon mal um Verzeihung...

Hat jemand von euch schon mal eine SureFlap Haustierklappe (https://www.sureflap.com/de-de/haustierklappen/mikrochip-haustierklappe) in irgendeiner Art und Weise an FHEM angebunden? Mir würde nur-Lesen schon reichen. Wäre ja toll zu erfahren, wann Katz so ein- und ausgeht.

lg,
greuff

leachim200

Hallo
Das Thema ist schon sehr alt aber es gibt diverse Lösungen im Bereich Openhub und Loxon jetzt würde mich interessieren ob es jemand geschafft hat die informationen der Sureflap sprich ob die Katze draußen oder drinnen ist in Fhem ein zu binden?

papa

Wenn Du schon Homematic hast und basteln kannst - schau mal hier https://homematic-forum.de/forum/viewtopic.php?f=76&t=55795
Die Einbindung des Sensors in FHEM sollte nicht weiter schlimm sein. Der kann dann einfach mit in das AskSin++ Addon https://github.com/pa-pa/AskSinPP/tree/master/examples/custom/contrib/FHEM.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

clumsy

Ich hab die SureFLap Cat Connect Cloud API via HTTPMOD angebunden. Klappt recht gut, falls jemand Interesse hat einfach melden.

ACHTUNG: es wird der SureFlap HUB benötigt und benutzt den Cloud Server, d.h. es funktioniert nur mit Internetanbindung. Momentan nur Status abfragen, kein Setzen!

LG

STefan

Nogga

Hi Clumsy,
ich wäre tatsächlich an Deiner Integration interessiert! Habe Klappe, Hub und natürlich auch FHEM!

clumsy

#5
Hi

Das config File und die Icons welche ich verwende im Anhang. Anleitung/Kommentare sind direkt im config File, ansonsten einfach fragen!

Gruess

STefan

PS: würde mich interessieren ob's mehr oder weniger auf Anhieb klappt!
PPS: Änderungsvorschläge / Verbesserungen nehme ich jederzeit gerne entgegen!!

Nogga

Hab's gerade ausprobiert.
Du hättest aber dazu sagen können, dass das Dashboard-Device die jeweiligen Geräte-IDs ausspuckt ;-)
Ansonsten ziemlich straight forward...


clumsy

Nicht nur das sf_dashboard auch das sf_device und sf_pet (steht ja so im Kommentar im config file!!!)  8)

Schön dass es geklappt hat!

Nogga

Nicht falsch verstehen - war keine Kritik. Ich habs nur nicht sofort beim Betrachten des Codes kapiert...

Aber ich bin bereits dran es in mein Tablet-UI für den WAF einzubauen...

clumsy

Schon OK, hab ich auch nicht so aufgefasst ;)

Ich benutze Floorplan und habs dort integriert, klappt auch ganz gut...

Wenn mir mal wieder langweilig ist versuch ich mich dann mal noch an den set befehlen (lock, keep-in, keep-out, etc.)

Nogga

Ist noch nicht fertig, aber zumindest rudimentär in die Tablets eingebaut...


clumsy

Cool!

So siehts u.a. bei mir aus (das Dashboard kann ich nicht zeigen, zu viele private Infos ;)

Nogga

Mal ne blöde Frage:

Ich brauche doch eigentlich nur das Dashboard-device und die pet-Devices (habe zwei Katzen) und den Status der Katzen darzustellen. Die anderen Devices sind doch nur zur Vollständigkeit, bzw. deren Status zu bekommen?

Ich konnte zumindest keine sequenzielle Abhängigkeit entdecken (alle holen sich die Grunddaten immer vom Dashboard - oder?)

clumsy

Zitat von: Nogga am 15 November 2021, 22:52:24
Mal ne blöde Frage:

Ich brauche doch eigentlich nur das Dashboard-device und die pet-Devices (habe zwei Katzen) und den Status der Katzen darzustellen. Die anderen Devices sind doch nur zur Vollständigkeit, bzw. deren Status zu bekommen?

Ich konnte zumindest keine sequenzielle Abhängigkeit entdecken (alle holen sich die Grunddaten immer vom Dashboard - oder?)
Korrekt. Eigentlich bräuchtest nicht mal das Dashboard. Ich wollte einfach nicht in jedem device wieder eine neue authentication einbauen und nutze deshalb die vom Dashboard. Du kannst aber auch das Login (attr sid.*, etc.) in jedes device/pet/klappe/etc direkt einbauen, das würde auch funktionieren, dann hast einfach für jedes eine einzelne eigene Session.

tek

Zitat von: clumsy am 12 November 2021, 22:00:27
Ich hab die SureFLap Cat Connect Cloud API via HTTPMOD angebunden. Klappt recht gut, falls jemand Interesse hat einfach melden.

ACHTUNG: es wird der SureFlap HUB benötigt und benutzt den Cloud Server, d.h. es funktioniert nur mit Internetanbindung. Momentan nur Status abfragen, kein Setzen!

LG

STefan

Dann melde ich mal. Kannst du hier paar zeilen zum httpmod posten? Wäre super nett. Ich hab mich lang dran probiert, bin aber schon am Login gescheitert...


Nogga

BTW Clumsy: richtig geniale Arbeit!

tek

Zitat von: clumsy am 17 November 2021, 15:51:05
s. Beitrag #5 https://forum.fhem.de/index.php/topic,37979.msg1187097.html#msg1187097

der Anhang war am Smartphone schwer zu entdecken :D... Vielen Danke für die Arbeit!!! Nie und nimmer hätt ich das hinbekommen oder mich soweit selbst einarbeiten können! Schmeiß dein Paypal in Raum ich geb ein Bier aus!

tek

#18
Ok, bei mir klappts leider nicht auf Anhieb. Das Dashboard läuft und ich hab auch Readings, aber mein Stateformat ist data_01_name. Für meine Anwendung würde mir die Readings eigentlich auch reichen, aber du wolltest ja Feedback.

Error im Dashboard ist error_message_0 - Wrong number of segments. sf_device spukt mir noch ein Stateformat Hub / Katzenklappe aus, sf_household, sf_pet und sf_user leider nichts.
Wenn ich das System verstanden hab wird ja alles aus dem Dashboard gezogen. Dann sollte ich hier auch irgendwie meinen Fehler finden :D

ich hab den rest mal so eingebunden und mir die ID´s aus den Readings gelesen. flap und hub haben readings und stateformat, pet01 und pet02 haben nur readings. Hier hab ich im stateformat Error evaluating sf_pet01 stateFormat: Undefined subroutine &main::timelocal called at (eval 15577) line 1.

Newbie

#19
Hallo tek,

Zitat"...aber mein Stateformat ist data_01_name..."

ich glaub das kommt daher das es das Reading "data_01_name" nicht gibt. Also mach z.B. das daraus "data_devices_01_name".
Ansonsten daran denken bei den ganzen "%%" ein Zeichen zu löschen.


clumsy

Danke für deinen Code, so kann ich mir den Umweg über ioBroker sparen.

vG Jens

P.S.: Attribut muss auch noch angepasst werden

Zitatreplacement1Value      sf_dashboard:data_households_01_id
fhem-6.1 (configDB+DbLog)  auf ODROID-XU4

clumsy

Zitat von: tek am 20 November 2021, 17:00:28
der Anhang war am Smartphone schwer zu entdecken :D... Vielen Danke für die Arbeit!!! Nie und nimmer hätt ich das hinbekommen oder mich soweit selbst einarbeiten können! Schmeiß dein Paypal in Raum ich geb ein Bier aus!
VIelen Dank, aber das passt schon so, freut mich wenn andere nutzen können, das ist ja die idee von opensource / community SW ;)

clumsy

Zitat von: tek am 20 November 2021, 18:43:21
Ok, bei mir klappts leider nicht auf Anhieb. Das Dashboard läuft und ich hab auch Readings, aber mein Stateformat ist data_01_name. Für meine Anwendung würde mir die Readings eigentlich auch reichen, aber du wolltest ja Feedback.

Das ist ein copy-paste Feher meinerseits... Da ich das dashboard device wirklich nur zu Infozwecken benötige habe ich die ganzen Status und Icon definitionen gar nicht angepasst.

Wie @Newbie auch schon geschrieben hat einfach z.b. mit
attr sf_dashboard stateFormat data_households_01_name
auf dein gewünschtes Reading setzen (im obigen Beispiel den Haushatsnamen)

Zitat von: tek am 20 November 2021, 18:43:21
Error im Dashboard ist error_message_0 - Wrong number of segments. sf_device spukt mir noch ein Stateformat Hub / Katzenklappe aus, sf_household, sf_pet und sf_user leider nichts.
Wenn ich das System verstanden hab wird ja alles aus dem Dashboard gezogen. Dann sollte ich hier auch irgendwie meinen Fehler finden :D
Wenn du Datum/Zeit von dem error_message reading ansihest dürfte das veraltet sein. Das kommt i.a. beim ersten Versuch, wenn die Authentication noch nicht gemacht ist.

Genauso bei den anderen devices, erst wenn das sf_dashboard erfolgreich initialisiert ist, dann funktionieren auch die anderen Devices, da ich die SessionID aus dem sf_dashboard verwende. Ansonsten musst du die sid.* Attribute analog zum sf_dashboard einbauen.

Zitat von: tek am 20 November 2021, 18:43:21
ich hab den rest mal so eingebunden und mir die ID´s aus den Readings gelesen. flap und hub haben readings und stateformat, pet01 und pet02 haben nur readings. Hier hab ich im stateformat Error evaluating sf_pet01 stateFormat: Undefined subroutine &main::timelocal called at (eval 15577) line 1.
Ja, ich mache ein paar Berechnungen im Stateformat (Zeit in der die Katze drinnnen/draussen war). Einfach entsprechende Perl-Module (Time::Local) mit den Zeitfunktionen installieren und einbinden, dann sollts klappen! Oder das stateFormat anpassen und die Berechnungen rausnehmen!

Hoffe das hilft, ansonsten mal ein list der devices posten hier!

clumsy

#22
Zitat von: Newbie am 20 November 2021, 21:53:11
P.S.: Attribut muss auch noch angepasst werden
replacement1Value      sf_dashboard:data_households_01_id

Vielen Dank! Da hat sich tatsächlich ein copy-paste Fehler noch eingeschlichen, in allen Devices sollte die replacement1Value auf folgendes geändert werden:
attr sf_.* replacement1Value sf_dashboard:data_households_01_id

Wobei das lediglich beim device sf_pet effektiv zum tragen kommt, ansonsten wird das replacement gar nirgends verwendet!

Dann muss noch sf_household angepasst werden, da stimmt die authentication nicht. Folgende Attributte fehlen oder sind falsch:
attr sf_household replacement3Mode internal
attr sf_household replacement3Regex %%sid%%
attr sf_household replacement3Value sf_dashboard:sid
attr sf_household requestHeader1 Authorization: Bearer %%sid%%


Auch im sf_user fehlt noch die UserId, d.h. folgendes fehlt oder ist falsch:
define sf_user HTTPMOD https://app.api.surehub.io/api/user/%%user_id%% 60
attr sf_user replacement4Regex %%user_id%%
attr sf_user replacement4Value sf_dashboard:data_user_id
attr sf_user replacement4Mode reading
attr sf_user stateFormat data_name


Danke an alle fürs testen!!

STefan

PS: tar file im Beitrag #5 aktualisiert

tek

ja den copy-paste hab ich auch grad gefunden. Wie gesagt, mir reicht eigentlich schon dein sf_dashboard da ich den Status auf dem Handy brauch im FhemNative. Aber ich bind trotzdem gern alles mal ein. Saubere Arbeit aufjedenfall!
Jetzt geht alles wie gewünscht, ausser die sf_user. Vielleicht hab ich auch noch nen Fehler drin, ist schon spät und "lang"... :D
Auch ein Danke fürs "Lehren", hab mal wieder einiges mehr verstanden.

define sf_user HTTPMOD HTTPMOD https://app.api.surehub.io/api/user/%user_id% 60
setuuid sf_user 619968b4-f33f-caf8-2a94-fac29a95adfdaba4
attr sf_user enableControlSet 1
attr sf_user enableCookies 1
attr sf_user event-on-change-reading .*
attr sf_user event-on-update-reading .*
attr sf_user extractAllJSON 1
attr sf_user replacement1Mode reading
attr sf_user replacement1Regex %household_id%
attr sf_user replacement1Value sf_dashboard:data_households_01_id
attr sf_user replacement2Mode internal
attr sf_user replacement2Regex %uuid%
attr sf_user replacement2Value sf_dashboard:FUUID
attr sf_user replacement3Mode internal
attr sf_user replacement3Regex %sid%
attr sf_user replacement3Value sf_dashboard:sid
attr sf_user replacement4Mode reading
attr sf_user replacement4Regex %user_id%
attr sf_user replacement4Value sf_dashboard:data_user_id
attr sf_user requestHeader1 Authorization: Bearer %sid%
attr sf_user requestHeader2 Content-Type: application/json
attr sf_user room SureFlap
attr sf_user sslArgs SSL_verify_mode,0
attr sf_user timeout 10
attr sf_user verbose 3


PS: was hat es mit den doppelten %%***%% auf sich?




clumsy

#24
Zitat von: tek am 21 November 2021, 00:35:11
ja den copy-paste hab ich auch grad gefunden. Wie gesagt, mir reicht eigentlich schon dein sf_dashboard da ich den Status auf dem Handy brauch im FhemNative. Aber ich bind trotzdem gern alles mal ein. Saubere Arbeit aufjedenfall!
Jetzt geht alles wie gewünscht, ausser die sf_user. Vielleicht hab ich auch noch nen Fehler drin, ist schon spät und "lang"... :D
Auch ein Danke fürs "Lehren", hab mal wieder einiges mehr verstanden.

define sf_user HTTPMOD HTTPMOD https://app.api.surehub.io/api/user/%user_id% 60
PS: was hat es mit den doppelten %%***%% auf sich?

Genau da ist wohl das Problem! Es muss %%user_id%% heissen, da dies der Platzhalter ist welcher im replacement4Regex definiert ist, sonst ersetzt er das nicht in der URL... s. mein voriges Posting.

Newbie

Hallo clumpsy,

Zitatdefine sf_flap01 HTTPMOD https://app.api.surehub.io/api/device/<FLAP_ID>/status 60

"FLAP_ID" heißt bei mir "data_devices_02_id"
fhem-6.1 (configDB+DbLog)  auf ODROID-XU4

clumsy

Zitat von: Newbie am 21 November 2021, 01:11:12
Hallo clumpsy,

"FLAP_ID" heißt bei mir "data_devices_02_id"
Du musst die effektive ID (aus dem reading) Momentan noch von hand eintragen, das wird nicht automatisch ersetzt! S. Kommentar im config file.

tek

was noch ganz geil wäre, ein Reading ab wan das Pet drin/drausen ist. Also das data_pets_01_position_since als HH:MM:SS und TT:MM:YY
Ich hab das versucht mit Perl in ein Format zu bekommen. Aber für mich ist das Chinesisch... Bei mir ist auch die Uhrzeit im Reading um eine Stunde falsch. Sommer/Winter? In der App passts nämlich.

clumsy

Zitat von: tek am 24 November 2021, 20:32:12
was noch ganz geil wäre, ein Reading ab wan das Pet drin/drausen ist. Also das data_pets_01_position_since als HH:MM:SS und TT:MM:YY
Ich hab das versucht mit Perl in ein Format zu bekommen. Aber für mich ist das Chinesisch... Bei mir ist auch die Uhrzeit im Reading um eine Stunde falsch. Sommer/Winter? In der App passts nämlich.

Ich hab das bereits implementiert, schau dir das stateFormat attribut an.

In der Grafik von mir im Beitrag #11 siehst du neben den Katzen 2 Zahlen, die untere ist seit wann sie am aktuellen Ort ist (Innen/Aussen) die obere wie lange sie davor Innen resp. Aussen war. Jeweils Std:Min. Gelbes Icon, Katze Draussen, Grün Drinnen.


tek

ja das hab ich drin bei mir und läuft auch. Ich habs versucht aus dem Stateformat rauszulesen um mir einzelne Readings anzulegen um diese wiederum auf meiner Smartphoneapp zu verwenden. Aber nach 3 Tagen hab ich jetzt aufgegeben :D

clumsy

Zitat von: tek am 24 November 2021, 21:13:12
ja das hab ich drin bei mir und läuft auch. Ich habs versucht aus dem Stateformat rauszulesen um mir einzelne Readings anzulegen um diese wiederum auf meiner Smartphoneapp zu verwenden. Aber nach 3 Tagen hab ich jetzt aufgegeben :D

Versuchs mal mit userReadings:
attr sf_pet01 userReadings since_now { my $ssince = int(timelocal(gmtime())) - time_str2num(ReadingsVal("$name","data_position_since", "0"));; my $since = sprintf("%02d:%02d", $ssince/3600, $ssince/60%60);; return $since },  since_prev { my $osince = time_str2num(ReadingsVal("$name","data_position_since", "0")) - time_str2num(OldReadingsVal("$name","data_position_since", "0"));; my $since = sprintf("%02d:%02d", $osince/3600, $osince/60%60);; return $since }

Wichtig dass
attr sf_pet01 oldreadings data_position_since
gesetzt ist!

Das generiert dir 2 neue Readings mit der aktuellen und der vorigen Verweildauer (std:min).

tek

mega danke, das ja noch besser wie gewünscht :D

Navaho

Vielen Dank für den Code. Coole Sache. Ich muss noch mal die Fehler checken, aber man sollte ja auch keinen Code nutzen ohne den ganzen Beitrag gelesen zu haben.  :)

Wastegate

Wünsche ein schönes neues Jahr.
Vielen Dank für deine Arbeit. Ich habe auch das ganze mal getestet und bekomme seit heute eine Fehlermeldung im LOG:

2022.01.01 00:00:55 1: PERL WARNING: Use of uninitialized value in subtraction (-) at (eval 1541971) line 1.
2022.01.01 00:00:55 3: eval: { return "missing" if ( (time_str2num(ReadingsTimestamp($NAME,"data_updated_at","1900-01-01T20:00:00+00:00")) - time_str2num(ReadingsVal($NAME,"data_updated_at","1900-01-01T20:00:00+00:00"))) < -3600 ); return "ok" if ( ReadingsVal($NAME, "data_battery", "-1" ) > 4.5); return "low" }

Was wohl mit den userReadings von sf_flap01 zusammenhängt. Leider bin ich nicht so fit um das Problem, wenn es denn eines ist, selber zu lösen.

clumsy

Es könnte sein, dass der Fehler kommt, bevor die Klappe den ersten Event meldet (z.B. nach einem Neustart) und deshalb eins der Readings noch nicht initialisiert ist. Wobei das eigentlich abgefangen werden sollte.

Wastegate

Habe sf_flap01 mal auf disable gesetzt.

Weitere Meldungen aus dem LOG:

2022.01.02 10:49:31 1: PERL WARNING: Argument "42+00" isn't numeric in subroutine entry at ./FHEM/99_Utils.pm line 21.
2022.01.02 10:49:31 3: eval: { my $ssince = int(timelocal(gmtime())) - time_str2num(ReadingsVal("$name","data_position_since", "0"));; my $since = sprintf("%02d:%02d", $ssince/3600, $ssince/60%60);; return $since }

Das scheint dann von sf_pet01 zu sein.
Sonst Klappt das mit sf_dashboard wirklich super. Da sind alle Informationen enthalten. Ich hole mir dort die Informationen für meine Tablet UI.

clumsy

Zitat von: Wastegate am 02 Januar 2022, 11:42:03
2022.01.02 10:49:31 1: PERL WARNING: Argument "42+00" isn't numeric in subroutine entry at ./FHEM/99_Utils.pm line 21.
Hmm... das scheint aber nicht von dem SF zu sein, ist ja nichts davon im 99_Utils.pm... was steht dann dort auf Zeile 21?

Wastegate

Ich nehme mal an das es mit der Zeitberechnung zusammenhängt, bin mir da aber nicht sicher.
Die Zeile 21 bezieht sich wohl auf time_str2num.
Dort steht:

return mktime($a[5],$a[4],$a[3],$a[2],$a[1]-1,$a[0]-1900,0,0,-1);

Könnte das ein Problem aus den userReadings sein?
Hoffe das Hilft weiter.  ;)

clumsy

du kannst versuchen in allen
time_str2num(..., ..., "0")
den default Wert "0" zu ersetzen durch
"1900-01-01T20:00:00+00:00"
evtl. verschwindet so der Fehler.

flobeewan

Gratulationen und vielen Dank! Bei mir hat die Integration auf Anhieb funktioniert!

flobeewan

Zitat von: Wastegate am 01 Januar 2022, 13:07:18
Wünsche ein schönes neues Jahr.
Vielen Dank für deine Arbeit. Ich habe auch das ganze mal getestet und bekomme seit heute eine Fehlermeldung im LOG:

2022.01.01 00:00:55 1: PERL WARNING: Use of uninitialized value in subtraction (-) at (eval 1541971) line 1.
2022.01.01 00:00:55 3: eval: { return "missing" if ( (time_str2num(ReadingsTimestamp($NAME,"data_updated_at","1900-01-01T20:00:00+00:00")) - time_str2num(ReadingsVal($NAME,"data_updated_at","1900-01-01T20:00:00+00:00"))) < -3600 ); return "ok" if ( ReadingsVal($NAME, "data_battery", "-1" ) > 4.5); return "low" }

Was wohl mit den userReadings von sf_flap01 zusammenhängt. Leider bin ich nicht so fit um das Problem, wenn es denn eines ist, selber zu lösen.


Scheinbar hat SureFlap die Readings geändert. Das reading "data_updated_at" kommt bei der Klappe nicht mehr vor. Ich habe folgendes geändert und bei mir funktioniert es:
attrib sf_flap01 userReadings battery { return "missing" if ( (time_str2num(ReadingsTimestamp("sf_device","data_02_updated_at","1900-01-01T20:00:00+00:00")) - time_str2num(ReadingsVal("sf_device","data_02_updated_at","1900-01-01T20:00:00+00:00"))) < -3600 );; return "ok" if ( ReadingsVal($NAME, "data_battery", "-1" ) > 4.5);; return "low" }

Vielleicht trägt das zur Lösung bei.

Wastegate

Leider hat es bei mir das Problem nicht gelöst

2022.02.18 20:27:13 1: PERL WARNING: Argument "36+00" isn't numeric in subroutine entry at ./FHEM/99_Utils.pm line 21.
2022.02.18 20:27:13 3: eval: { return "missing" if ( (time_str2num(ReadingsTimestamp("sf_device","data_02_updated_at","1900-01-01T20:00:00+00:00")) - time_str2num(ReadingsVal("sf_device","data_02_updated_at","1900-01-01T20:00:00+00:00"))) < -3600 );; return "ok" if ( ReadingsVal($NAME, "data_battery", "-1" ) > 4.5);; return "low" }


Ich habe sf_flap01 disabled und hole mir die Readings aus dem Dashboard. Das funktioniert Super.
Vielen Dank

tcbh

#42
Hallo in die Runde,

ich habe eine ganz andere Frage.
Man liest ja manchmal, dass bei der Sureflap die Verriegelung etwas wackelig ist - also bei kräftigem Drücken auch ohne Entriegelung aufgeht. Ist das bei Euren Klappen kein Problem?

Bevor ich das teure Ding anschaffe, wollte ich gern sicher sein, dass der große Nachbarskater beim Hinterherjagen sich nicht einfach mit Gewalt Zutritt zum Haus verschafft  ;)

Danke und viele Grüße
Till

clumsy

Naja, wir hatten vorher eine "normale Katzenklappe, ohne Elektronik nur mit dem mechanischen Verschluss... Unser Kater hat dann einfach die halbe Katzenklappe mit Gewalt (und wohl etwas hartem Kopf) aufgestossen, resp. die Plexischeibe halb zerrissen und aus dem Scharnier gedrückt, als er mal drin bleiben sollte... Je nach Kater geht das wohl mit jeder Katzenklappe... gegen Rohe Gewalt sind die nicht gesichert, aber die meisten (fremden) Katzen werden nicht mit Gewalt versuchen zu öffnen (unsere Erfahrung), da reicht meist etwas Wiederstand. Bisher sind wir eigentlich sehr zufrieden damit, ausser dass man halt alle paar Monate die Batterien wechseln muss....

tcbh

Hallo Clumsy,

danke für Deine Rückmeldung - das hört sich ja ganz gut an  :)
Habt Ihr denn die Katzenklappe oder die etwas größere Haustierklappe mit zwei Verschlussriegeln?

Viele Grüße
Till

clumsy



der-Lolo

Hey - hab ich euch schon erzählt was ich sooo toll an FHEM finde..?
Viele sachen lösen sich wenn man die suche bemüht ;)

Es gibt also eine Katzenklappe die bereits in FHEM integriert ist.

Ich hab nur zwei kleine fragen -

1. muss die Verbindung im Internet sein, oder kann man den Hub direkt abfragen?
2. kann man den status des Stubentigers auch von Hand setzen, wenn er z.b. durch die Haus oder Terassen Tür seinen ausflug gestartet, oder beendet hat..?

clumsy

Zitat von: der-Lolo am 02 April 2022, 18:18:31
1. muss die Verbindung im Internet sein, oder kann man den Hub direkt abfragen?
2. kann man den status des Stubentigers auch von Hand setzen, wenn er z.b. durch die Haus oder Terassen Tür seinen ausflug gestartet, oder beendet hat..?

1. Geht im Moment leider nur via Internet, der HUB verwendet ein proprietäres und verschlüsseltes) Protokoll soweit ich herausgefunden habe.
2. Im Moment nur via App oder Web-Interface von Sureflap. Plan wäre jedohc bei gelegenheit auch die set Befehle zu implementieren, dann wäre das möglich....

der-Lolo

Hey Clumsy -
ich habe die SureFlap klappe eingebaut und in Betrieb genommen - der kleine Kater hat sie bereits angenommen und nutzt die "neue" Freiheit begeistert.
Ausserdem habe ich die klappe in FHEM integriert und mit ein Residents/Pets Device angelegt. Ein kleines DOIF pusht mir die Anwesenheits Info zum Pet Device.

Natürlich nutzt der kleine auch die möglichkeiten durch Haus und Terrassentür ins freie zu gelangen. Deswegen habe ich versucht folgende Anleitung für iOS Shortcuts umzusetzen - in der Küche steht nämlich ein Homepod mini. Ich wünschte mir sagen zu können "Hey Siri, Mietzi ist draussen"

Leider funktioniert das "drinnen und draussen" noch nicht so recht - was aber funktioniert ist "Hey Siri, wo ist Mietzi"
Falls es jemanden interessiert - hier die Anleitung dazu. Mir ist das zu komplex - ich vermute im Shortcut "set Pet Location" gibt es ein problem mit dem integrieren der zu setzenden Information.
Beim suchen nach Lösungen ist mir im github noch die umsetzung via php aufegfallen...

https://obyford.com/posts/shortcuts-for-surepet-cat-flap-connect/#using-shortcuts-with-homepod

https://github.com/alextoft/sureflap

setter für die SureFlap wären also immernoch schön zu haben ;)

Tausend Dank für die Integration und das bereitstellen der Lösung!


Flachzange

Hallo zusammen,

da wir neuerdings auch einen Vierbeiner samt Sureflap Katzenklappen haben, stellte sich natürlich auch die Frage nach der FHEM-Integration. Ich würde gerne an dieser Stelle auf einen alternativen Ansatz aufmerksam machen: Pethublocal (https://pethublocal.github.io/).

Der Autor hat im Prinzip den "Cloud"-Endpunkt von Surepetcare reverse engineered, der komplett lokal läuft und alle Anfragen des Hubs entgegennimmt. Die MQTT-Hub-Nachrichten werden darüber hinaus noch mit etwas Logik ergänzt und ebenfalls als MQTT-Topic bereitgestellt. Setter sollten ebenfalls per MQTT publish funktionieren, habe ich aber mangels Bedarf noch nicht ausprobiert.

Aus meiner Sicht die smarteste Lösung zur Einbindung dieser Geräte, da man sich komplett unabhängig macht und keine Verbindung nach draußen hat.

Wastegate

Guten Abend,

ich habe die Katzenklappe jetzt seit einem Jahr und nutze lediglich die Info Katzen drin oder drausen aus sf_dashboard.
Seit ein paar Tagen ist mir aufgefallen das FHEM jede Minute kurz blockiert wird wenn alle 60sec. Informationen per HTTPMOD aktualisiert werden.
Das ist ziemlich nervig da auf meinen Tablets immer eingeblendet wird das die verbindung zu FHEM unterbrochen wurde.
Um das zu Testen habe ich sf_dashboard disabled. Danach trat das Problem nicht mehr auf. OK, TabletUI umgebaut und die Infos aus sf_pet geholt. Geht auch super.
Allerdings hab ich durch das disablen im Log die Fehlermeldung das sf_dashboard sich nicht akualisieren kann.

2023.12.30 17:00:44 4: sf_dashboard: GetUpdate called (update)
2023.12.30 17:00:44 4: sf_dashboard: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 60.0 sec at 17:01:44.317, interval 60
2023.12.30 17:00:44 5: sf_dashboard: GetUpdate called but device is disabled
2023.12.30 17:00:44 3: sf_device: no parsed JSON structure available
2023.12.30 17:00:44 3: sf_pet: no parsed JSON structure available

Kann man das ganze so umbauen das ich nur sf_pet ohne sf_dashboard nutzen kann. Brauche definitiv nur die Info`s data_01_position_where und data_02_position_where.


Nogga

Zitat von: Wastegate am 30 Dezember 2023, 17:24:02Kann man das ganze so umbauen das ich nur sf_pet ohne sf_dashboard nutzen kann. Brauche definitiv nur die Info`s data_01_position_where und data_02_position_where.

Ich hatte schon damals als ich das Device angelegt hatte (keine Ahnung 2 Jahre her?) auf 1 einzelnes Device umgestellt, da ich auch nur die Drin/Draussen Meldung gebraucht habe.

Hier bitte meine Version - Anpassen auf Deine Werte musst Du aber selbst ;-)
Ich habe 2 Katzen registriert. Muss man also ggf. auch anpassen...

defmod sf_dashboard HTTPMOD https://app.api.surehub.io/api/me/start 60
attr sf_dashboard alias SureFlap Katzenklappe
attr sf_dashboard enableControlSet 1
attr sf_dashboard enableCookies 1
attr sf_dashboard extractAllJSON 1
attr sf_dashboard group Gateways
attr sf_dashboard reAuthAlways 0
attr sf_dashboard reAuthRegex .*(error|401).*
attr sf_dashboard replacement1Mode reading
attr sf_dashboard replacement1Regex %%household_id%%
attr sf_dashboard replacement1Value sf_dashboard:data_01_id
attr sf_dashboard replacement2Mode internal
attr sf_dashboard replacement2Regex %%uuid%%
attr sf_dashboard replacement2Value sf_dashboard:FUUID
attr sf_dashboard requestHeader1 Authorization: Bearer $sid
attr sf_dashboard requestHeader2 Content-Type: application/json
attr sf_dashboard room Informationen,Sensoren,SureFlap,System
attr sf_dashboard sid01Data {"email_address":"XXXX@XXXX.XX","password":"XXXX","device_id":"%%uuid%%"}
attr sf_dashboard sid01IdJSON data_token
attr sf_dashboard sid01URL https://app.api.surehub.io/api/auth/login
attr sf_dashboard sidHeader1 Content-Type: application/json
attr sf_dashboard sslArgs SSL_verify_mode,0
attr sf_dashboard stateFormat {\
my $bellaStatus = "unbekannt";;\
if (ReadingsVal("$name", "data_pets_01_position_where", "unknown") == 1) { $bellaStatus = "drin";; }\
if (ReadingsVal("$name", "data_pets_01_position_where", "unknown") == 2) { $bellaStatus = "draussen";; }\
\
my $paulStatus = "unbekannt";;\
if (ReadingsVal("$name", "data_pets_02_position_where", "unknown") == 1) { $paulStatus = "drin";; }\
if (ReadingsVal("$name", "data_pets_02_position_where", "unknown") == 2) { $paulStatus = "draussen";; }\
\
return \
"Batterie ist ".ReadingsVal("$name", "data_devices_02_status_battery", "-1")."V".\
" / Bella ist ".$bellaStatus.\
" / Paul ist ".$paulStatus;;\
}
attr sf_dashboard timeout 10

Wastegate

Super, danke für die etwas schlankere Version. Die ist vollkommen ausreichend.
Leider scheint mein FHEM nun an der Leistungsgrenze zu sein. Wenn alle 60 sec eine Abfrage läuft, Blockiert FHEM für die Dauer in der die Daten empfangen werden.(Thema HTTPMOD Blocking hab ich schon alles probiert)
Ich habe das ganze dann mit einer zweiten FHEM instanz auf der selben Hardware (Danke auch an Otto für die Verständliche Anleitung) gelöst. Funktioniert jetzt.