SureFlap Haustierklappe

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

Vorheriges Thema - Nächstes Thema

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