====== SureFlap Connect ====== ++++ Version History...| **Version 2024.12.10** * Prüfung ob Standort des Tieres bestimmt werden kann * Bei unbekanntem Standort über die Timeline ermitteln (letzten 20 Einträge werden beachtet) * Setzen des Standortes mittels fire&forget Methode * HTTP-Code wird nun überall geprüft **Version 2024.02.01** * MQTT-Funktion hinzufügen * Variablen Benutzeragenten zu Curl aufrufen hinzugefügt * Limitierung der Abfragehäufigkeit auf 10 Sekunden * Hinzufügen von Debug- und Warninformationen * Links zum neuen Wiki aktualisiert * Anmeldung mit Sonderzeichen behoben * Fehler bei vielen Haustieren behoben * Mindestversion von Loxberry auf 2.0 geändert **Version 2021.03.11** * Komplettes Redesign und Erweiterung * Plugin zusammen mit Daniel Kieslinger weiterentwickelt * Abfrage von mehrere Hautieren, Hub, Haushalte und Klappen * Zentrale Abfragefunktion „getData.php“ * Performanceverbesserung da nur noch eine Anfrage an [[http://surepetcare.io|surepetcare.io]] gestellt wird * Login Token wird gespeichert * Automatisches Neuauthentifizieren, wenn Token abgelaufen ist * Virtuelle Texteingänge möglich * Verbesserung Abfrageintervall * Zusätzliche Abfragewerte * Batteriestatus, Empfangsqualität, Wohnungstier uvm. * Weitere Skripte zur Änderung direkt aus der Loxone * setCurfew.php und setPetLocking.php **Version 2021.01.14** * Fix Login Problem by gyrinet (Thx) **Version 2019.09.08** * erste öffentliche Version [[https://github.com/marcelzoller/loxberry-plugin-sureflap]] ++++ ---- ===== Überblick ===== **Mit diesen Plugin können Geräte von SureFlap via Sure Petcare ([[https://surepetcare.io/]]) abgefragt oder angesteuert werden.  ** {{plugins:sureflap_connect:1267335250.jpeg?700}} Aktuell können die folgenden Informationen von Sure Petcare Portal abgefragt oder angesteuert werden. Abfragen: * Neue Abfragefunktion: * Zentrale Abfrage (getData.php) * Alte Abfragefunktionen (Sollen nicht mehr verwendet werden): * SurFlap Geräte Abfrage (getDevices.php) * Haustiere Abfragen (getPet.php) * Aktuelle Positionen (Innen/Aussen von den Haustieren Abfragen (getPetLocation.php) Ansteuern: * SureFlap Türe Lock Mode setzten (setLockMode.php) * Haustier Position (Innen/Aussen) setzten (setPetLocation.php) * SureFlap Hub LED Helligkeit setzten (setHubLedBrightness.php)  ===== Download ===== * Das Plugin-Archiv (ZIP) kann auf GIT-Hub heruntergeladen werden: [[https://github.com/marcelzoller/loxberry-plugin-sureflap/releases]] * Der Sourcecode ist auf GitHub verfügbar: [[https://github.com/marcelzoller/loxberry-plugin-sureflap]] * Beispielkonfiguration: {{plugins:sureflap_connect:1267335283.loxone|SureFlap.Loxone}} * Vorlage für virtuelle Ausgänge: {{plugins:sureflap_connect:1267335285.xml|VO_HTTP-SureFlap-Out.xml}} ===== Installation und Konfigurationsoptionen Loxberry ===== Plugin via Github-Link auf dem Loxberry installieren. Es müssen nur wenige Einstellungen getätigt werden. * E-Mail Account: Hier muss der Account vom Sure Petcare Portal ( [[https://surepetcare.io/]]) eingetragen werden. * Passwort: Hier muss das Passwort vom Sure Petcare Portal ( [[https://surepetcare.io/]]) eingetragen werden. * Miniserver: Auswahl des Miniserver, wo der Status hingeschickt werden sollen. Die Einstellung können mit dem Knopf "Speichern" setzt werden. Ob die Einstellungen stimmen, kann einfach einen URL-Link (z.B. [[http://loxberry/plugins/sureflap/getData.php]]) angeklickt werden. Wir einen Webseite mit allen Geräten von SureFlap dargestellt, stimmt der Account und das Passwort. ===== Übersicht der Funktionen ===== Hier sind alle Seiten aufgeführt, wo Informationen abgefragt werden können: | Webpage | Übergabe Parameter | Output | Beispiele | | getData.php | petname=Testkatze\\ \\ **Bei keinem Parameter werden alle Haustiere aufgelistet.**\\ \\ \\ \\ \\ viname=\\ VI-Name vom virtuellen Texteingang \\ \\ viparam=\\ \\ Namen vom Attribute, dass an den virtuellen Texteingang geschickt werden soll\\ \\ viseparator=<...>\\ optional - Trennzeichen (Standard "-") | //System@DateTime@28.01.2021 20:47:04//\\ //System@DateTimeLox@381098824//\\ \\ //Haus@HouseholdID@12345//\\ //Haus@HouseholdName@Haus//\\ \\ //Hub@DeviceID@123456//\\ //Hub@DeviceName@Hub//\\ //..// \\ //Hub@DeviceOnline@1//\\ //Hub@DeviceLedMode@[1=off|2=bright|3=dim]//\\ //Hub@DeviceLedModeLox@[0=off|1=bright|2=dim]//\\ //Hub@DeviceLedModeDesc@[off|bright|dim]//\\ \\ //Klappe@DeviceID@1121234//\\ //Klappe@DeviceName@// //Klappe// \\ //... //\\ //Klappe@DeviceOnline@1//\\ //Klappe@DeviceSignal@-85.4 db//\\ //Klappe@DeviceSignalHub@-73.2 db//\\ //Klappe@DeviceBattery@5.645//\\ //Klappe@DeviceBatteryPerc@100%//\\ //Klappe@DeviceLockMode@[1=none|2=out|3=in|4=both]//\\ //Klappe@DeviceLockModeLox@[0=none|1=out|2=in|3=both]//\\ //Klappe@DeviceLockModeDesc@[none|out|in|both]//\\ //Klappe@DeviceCurfew@//\\ \\ //Testkatze@PetID@801234//\\ //Testkatze@PetName@Testkatze//\\ //...//\\ //Testkatze@PetLocation@[1|2]//\\ //Testkatze@PetLocationLox@[0|1]//\\ //Testkatze@PetLocationDesc@[Inside|Outside]//\\ //Testkatze@PetLocationSince@28.01.2021 07:22:22//\\ //Testkatze@PetLocationSinceLox@381050542// | URL:  [[http://loxberry/plugins/sureflap/getData.php?viname=SureFlap]] \\ \\ \\ \\ \\ \\ \\ \\ **Beispielaufruf:**\\ getData.php?viname=SureFlap&viparam=PetLocationSince;PetGender\\ \\ Übertragung an folgenden virtuellen Eingang:\\ SureFlap-Tiername-PetLocationSince\\ SureFlap-Tiername-PetGender | Hier sind alle Seiten aufgeführt, wo Werte geschrieben werden können: | Webpage | Übergabe Parameter | Output | Bespiele | | | | | | | | | | | Helligkeit der LED des Hub anpassen\\ \\ **setHubLedBrightness.php** | mode=[bright | dim | off] oder\\ modeid=[1 | 2 | 3] oder\\ modeLox=[0 | 1 | 2]\\ \\ Optional:\\ \\ viname=[...]\\ devicename=[...] | Successfully set LED mode for "Hub" to "off"\\ \\ Hub@DeviceID@123456\\ ...\\ Hub@DeviceLedMode@1\\ Hub@DeviceLedModeLox@0\\ Hub@DeviceLedModeDesc@off\\ \\ Send value "0" to "SureFlap-Hub-DeviceLedModeLox" successful! | URL:  [[http://loxberry/plugins/sureflap/setHubLedBrightness.php?mode=off&viname=SureFlap|http:%%//%%loxberry/plugins/sureflap/setHubLedBrightness.php?modeLox=0&viname=SureFlap]] | | | | | Allgemeine Sperre der Klappe setzen\\ \\ **setLockMode.php** | mode=[none | in | out | both] oder\\ modeid=[1 | 2 | 3 | 4] oder\\ modeLox=[0 | 1 | 2 | 3]\\ \\ \\ Optional:\\ \\ viname=[...]\\ devicename=[...] | Successfully set lockmode for "Katzenklappe" to "none"\\ \\ Katzenklappe@DeviceID@234567\\ ...\\ Katzenklappe@DeviceLockMode@1\\ Katzenklappe@DeviceLockModeLox@0\\ Katzenklappe@DeviceLockModeDesc@none\\ Katzenklappe@DeviceCurfew@19:00-06:00\\ \\ Send value "0" to "SureFlap-Katzenklappe-DeviceLockModeLox" successful! | URL:  [[http://loxberry/plugins/sureflap/setLockMode.php?modeLox=0&viname=SureFlap]] | | Status des Haustiers ändern\\ \\ **setPetLocation.php** | location=[in | out] oder\\ locationid=[1=in | 2=out] oder\\ locationLox=[0=in | 1=out]\\ \\ \\ petname=[...]\\ //Name des Haustiers muss zur Sicherheit immer mitgegeben werden//\\ \\ \\ Optional:\\ \\ viname=[...] | Successfully set pet location for "Testkatze" to "inside"\\ \\ Testkatze@PetID@34568\\ ...\\ Testkatze@PetLocation@1\\ Testkatze@PetLocationLox@0\\ Testkatze@PetLocationDesc@Inside\\ Testkatze@PetLocationSince@30.01.2021 13:53:18\\ Testkatze@PetLocationSinceLox@381246798\\ \\ Send value "0" to "SureFlap-Testkatze-PetLocationLox" successful!\\ Send value "30.01.2021%C2%A013%3A53%3A18" to "SureFlap-Testkatze-PetLocationSince" successful! | URL: [[http://loxberry/plugins/sureflap/setPetLocation.php?petname=Testkatze&locationLox=0&viname=SureFlap]] | | | | | | | | Wohnungstiereigenschaft ändern\\ \\ **setPetLocking.php** | locking=[out | in] oder\\ lockingid=[2=out | 3=in] oder\\ lockingLox=[0=out | 1=in]\\ \\ petname=[...]\\ //Name des Haustiers muss zur Sicherheit immer mitgegeben werden//\\ \\ \\ Optional:\\ \\ viname=[...] | Successfully set pet locking for "Testkatze" to "outside"\\ \\ Testkatze@PetID@34568\\ ...\\ Testkatze@PetLocking@2\\ Testkatze@PetLockingLox@0\\ Testkatze@PetLockingDesc@Outdoor\\ \\ Send value "0" to "SureFlap-Testkatze-PetLockingLox" successful! | URL: [[http://loxberry/plugins/sureflap/setPetLocking.php?petname=Testkatze&lockingLox=0&viname=SureFlap]] | | | | | | | | Sperrzeiten der Klappe hinterlegen\\ \\ **setCurfew.php**\\ \\ \\ \\ \\ **Hinweis:**\\ \\ Es ich nur möglich einen Sperreintrag zu hinterlegen, alle bereits hinterlegten Einträge werden ersetzt. | Deaktivieren:\\ mode=off oder\\ modeid=0\\ \\ Aktivieren\\ mode=on oder\\ modeid=1\\ from=[eg. 18:00]\\ to=[eg. 06:00]\\ \\ Optional:\\ \\ viname=[...]\\ devicename=[...] | SetCurfew: 19:00-06:00\\ Successfully enabled curfew for "Katzenklappe" between 18:00 & 06:00\\ \\ Hub@DeviceID@123456\\ ...\\ \\ Katzenklappe@DeviceID@234567\\ ...\\ Katzenklappe@DeviceCurfew@19:00-06:00\\ \\ Send value "19%3A00-06%3A00" to "SureFlap-Katzenklappe-DeviceCurfew" successful! | Aktivieren: [[http://loxberry/plugins/sureflap/setCurfew.php?mode=on&from=18:00&to=6:00&viname=SureFlap]]\\ \\ Deaktivieren: [[http://loxberry/plugins/sureflap/setCurfew.php?mode=off]] | | | | | | | | | | ===== Einrichtung in der Loxone Config ===== **Beispielkonfiguration:** {{plugins:sureflap_connect:1267335283.loxone|SureFlap.Loxone}} Die Vorlage erzeugt diese Visualisierung:\\ {{plugins:sureflap_connect:1267335299.png?300}} **Vorlage für virtuelle Ausgänge: {{plugins:sureflap_connect:1267335285.xml|VO_HTTP-SureFlap-Out.xml}} ==== Virtueller Ausgang (HTTP) - Aktualisierung anzufordern ==== Um die aktuelle Werte abzufragen, muss ein Virtueller Ausgang (HTTP) erstellt werden. Hier eine XML-Vorlage die mittels "Virtuelle Ausgänge → Vordefinierte Geräte → Vorlage importieren..." hinterlegt werden kann. {{plugins:sureflap_connect:1267335285.xml|VO_HTTP-SureFlap-Out.xml}} . In der Vorlage sind folgende Ausgangsbefehle enthalten:**\\ ** | Befehl | Wirkung | | SureFlap-Refresh | Veranlasst die Aktualisierung der hinterlegten virtuellen Eingänge ober die Seite getData.php**\\ \\ **Durch Aufruf dieses Ausgangs kann zu einem beliebigen Zeitpunkt eine Aktualisierung veranlasst werde.**\\ **Im Gegensatz zu einem virtuellen Eingang mit dem gleichen Befehl kann so auch eine manuelle Aktualisierung veranlasst werden bzw. mit einer Zeitschaltuhr das Intervall während bestimmter Zeiten angepasst werden. Siehe {{plugins:sureflap_connect:1267335283.loxone|Beispielkonfiguration}}. | | SureFlap-SetHubLedBrightness | Änderung der Helligkeit der LED-Ohren des Hubs.**\\ \\ **//mode = [1=Aus | 2=Hell | 3=Abgeblendet]//**\\ \\ **//modeLox = [0=Aus | 1=Hell | 2=Abgeblendet]// | | SureFlap-SetLockMode | Zugang der Klappe anpassen.**\\ \\ **//mode = [1=Offen | 2=Eingesperrt | 3=Ausgesperrt | 4=Beidseitig verriegelt]//**\\ \\ **//modeLox = [0=Offen | 1=Eingesperrt | 2=Ausgesperrt | 3=Beidseitig verriegelt]// | | SureFlap-Testkatze1-SetPetLocation | Aktuellen Aufenthaltsort des Haustieres ändern.**\\ \\ **//location = [1=Im Haus | 2=Aussen]//**\\ \\ **//locationLox = [0=Im Haus | 1=Aussen]// | | SureFlap-Testkatze1-SetPetLocking | Wohnungstiereigenschaft ändern**\\ \\ **//locking = [2=Freigänger | 3=Wohnungstier]//**\\ \\ **//lockingLox = [0=Freigänger | 1=Wohnungstier]// | Jedem Ausgang wird zusätzlich der Parameter **viname** mit übergeben. Damit wird die Bezeichnung des virtuellen Eingangs übermittelt, an den die Werte übertragen werden sollen. ==== Virtueller Eingang / Texteingang (HTTP) - Werte ausgeben ==== Auf der Pluginseite [[http://loxberry/plugins/sureflap/getData.php]] (Beispiel) sind alle hinterlegten Parameter zu sehen.\\ Anhand dieser wird die Bezeichnung der virtuellen Eingänge erzeugt. Hierzu ein Beispiel: Soll der Parameter Testkatze@PetLocationLox@1 (Testkatze befindet sich außerhalb des Hauses) an die Loxone übertragen werden, so muss - wenn der Parameter viname=SureFlap gesetzt ist - der Eingang folgenden Namen haben: __SureFlap-Testkatze-PetLocationLox__. Es werden also alle @ durch einen Bindestrich ersetzt. Nach dem die Anpassung in die Loxone übertragen wurde kann die Pluginseite mit folgendem Aufruf gestartet werden [[http://loxberry/plugins/sureflap/getData.php?viname=SureFlap&viparam=PetLocationLox]] woraufhin im virtuellen Eingang der Wert gesetzt sein sollte. Im Fehlerfall kann in der Pluginverwaltung des LoxBerry das Log-Level auf Debug gesetzt werden und in der Logdatei (Button im SureFlap-Plugin) nachfollzogen werden warum etwas nicht klappt. Je nach Ausgabewert ist entweder ein virtueller Eingang (bei Zahlenwerten) oder virtueller Texteingang (bei Texten) zu verwenden. ---- ===== Besonderen Dank ===== Besonderen Dank muss ich an die Vorarbeiten richten: [[https://github.com/alextoft/sureflap|Alex Toft - Sureflap PHP Module]] Daniel Kieslinger hat die Weiterentwicklung vom Plugin mit der zentralen Abfrage vorangetrieben. ===== Roadmap ===== Noch keine speziellen Ideen. ===== Fragen stellen und Fehler melden ===== Das PlugIn wird von mir noch weiterentwickelt und ich freue mich über Anregungen und Feedback.