Skip to end of metadata
Go to start of metadata
Autor
Logo

Status

RELEASE

Version2021.03.11
Min. LB Version

LB 1.4.2

Download

https://github.com/marcelzoller/loxberry-plugin-sureflap/archive/2021.03.11.zip

ZweckAnsteuern und Abfragen vom SureFlap Geräten via Sure Petcare. https://surepetcare.io/
LanguagesEN, DE
Diskussion
 Version History...

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

Inhalt



Überblick

Mit diesen Plugin können Geräte von SureFlap via Sure Petcare (https://surepetcare.io/) abgefragt oder angesteuert werden. 

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

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 ParameterOutputBeispiele
getData.php

petname=Testkatze

Bei keinem Parameter werden alle Haustiere aufgelistet.


viname=<VI-Name>
VI-Name vom virtuellen Texteingang 

viparam=<Attribute>

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 ParameterOutputBespiele

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?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: SureFlap.Loxone

Die Vorlage erzeugt diese Visualisierung:

Vorlage für virtuelle Ausgänge: 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. VO_HTTP-SureFlap-Out.xml . In der Vorlage sind folgende Ausgangsbefehle enthalten:

BefehlWirkung
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 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:

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.



26 Comments

  1. Hallo Marcel

    Vielen Dank für Dein Loxberry-Plugin.

    Ich habe es eben installiert und an den Miniserver angeschlossen. Es funktioniert perfekt!

    Frage:
    Gibt es keine Funktion, um den effektiven Status der Klappe abzufragen?
    Diese Info wäre noch sehr nützlich für die Visualisierung in der GUI.

    Viele Grüsse

    Thomas



  2. Hallo Marcel!


    Vielen Dank für das Plugin, habe es auf meinem Loxberry installiert!

    Leider bekomme ich ständig "Login Failed!" (beim Aufruf der Links auf der Pluginseite) - Ich habe mir sogar einen eigenen User "lox" angelegt und bei https://surepetcare.io/ kann ich mich ohne Probleme anmelden.

    Was habe ich übersehen?

    Bei mir läuft der loxberry http auf Port 81 !? d.h. meine URL sieht so aus:

    http://10.0.0.102:81/plugins/sureflap/getPet.php

    => Login Failed!

    das log im plugin schaut OK aus, zumindest werden E-Mail und Passwort richtig angeführt wird beim Speichern ein Login versuch durchgeführt?


    Danke

    Lg

    Christian

  3. Hallo Marcel

    Leider habe ich das selbe Problem wie auch Christian Zeintl geschrieben hat. 
    Alle Abfragen enden in einem "Login Failed!". 

    Hat evtl. Sure etwas an der API Abfrage geändert? 

    Gruss
    Angelo

  4. Hallo Marcel,

    ich habe leider das selbe Problem wie meine beiden Vorredner.

    Alle Anmeldungsversuche enden mit "Login Failed".

    Gibts schon neue Infos?

    Danke

    Christoph 


  5. Hallo!

    Ich schließe mich den Vorrednern an, ich habe das gleiche Problem mit Login failed. Könntest du uns da bitte helfen? Danke für dein Bemühen mit der Entwicklung:)

  6. Je to škoda ale nefunguje (sad)

    hlásí "Login Failed"

  7. Hallo!


    Leider auch der selbe Fehler.. Login failed (sad)

  8. Hallo, 

    ich habe folgendes Problem:

    Ich habe das Plugin installiert. 

    Die Pluginversion ist: 2019.09.08

    Die Loxberry Version ist: 2.2.0.4

    Ich richte alles komplett ein und bekomme beim Speichern der Daten auch keine Fehlermeldung. Auch in den Logfiles (Modus Debug) gibt es keinen Fehler. 

    Wenn ich nun z.B. den Befehl:  http://loxberry/plugins/sureflap/getDevices.php absetzte bekomme ich den Fehler: HTTP 500 loxberry kann diese Anfrage momentan nicht verarbeiten.

    Irgendeine Idee, was das ein könnte?

    Grüße und Danke vorab

    Olaf Kropp

  9. Hallo zusammen habe für mein Login failed eine Lösung gefunden.

    Habe in der config.php folgende Zeile ersetzt.

    vorhandener Code--  $device_id = (string) rand(1000000000,9999999999);

    neuer Code--   $device_id = (string) rand(100000000,999999999);

    funktioniert bei mir nur mit 9 Stellen.

    Hoffe es hilft jemanden

    Gruss Markus

    1. Sali Markus

      Vielen Dank für deinen Input. Ich habe deine Anpassung in der Prerelase 2021.01.12 eingefügt und publiziert. Ich hoffe das Login funktioniert jetzt zuverlässiger.

      Gruss Marcel

  10. Hallo,

    leider hat das Update meinen HTTP500 Fehler nicht behoben.

    Ich wäre wirklich für einen Tipp dankbar.

    Grüße

    Olaf Kropp

    1. Sali Olaf

      Ich habe mir einen frischen Loxberry (vm/Pi3) mit der Version 2.2.0.4 aufgesetzt und bei mir läuft alles. Somit kann ich dein Fehler nicht nachvollziehen.

      Gruss Marcel

      1. Hallo Marcel,

        erstmal danke, dass Du Dich der Sache annimst.

        Evtl. pfuscht mir auch ein Plugin dazwischen. Ich habe folgende Plugins am Laufen: SONOS4Loxone, Loxberry HA-Bridge, WiFi Scanner, Xiaomi MiFlora Flower Sensors.

        Ich würde die grundsätzlich zum test auch mal deinstallieren bzw. deaktivieren. Nur ist SONOS2Loxone und die Loxberry HA-Bridge leider etwas mühsamer zu konfigurieren.

        Evtl. kommst Du ja weiter, wenn Du die Plugins mal installierst. Vielleicht blockiert sich da was.


        Grüße und Danke

        Olaf

      2. Problem gelösst. So einfach kann es manchmal sein.

        Es war ein Sonderzeichen im Passwort...

        Ein ! am Ende des Passworts war das Problem.

        Ist vielleicht mal was für zukünftige Versionen.

        1. Das ! hat mich heute auch nicht anmelden lassen. Danke für denn Tipp. 

  11. Hallo Marcel

    Habe mein Beitrag etwas später noch korrigiert, beim ersten post ergibt die zufallszahl =0, die Zahlenketten in den Klammern sollten nur 9Stellig sein funktionieren aber beide Versionen. Sorry

    Gruss Markus

  12. Hallo Marcel,

    erstmal vielen Dank für das Plugin. Mit dem neuen Release funktioniert die Verbindung bei mir jetzt auch. Ich habe nur das Problem, dass ich lediglich die Daten für eine Katze abrufen kann. Für unsere zweite Katze die auch in der Klappe und App registriert ist, bekomme ich beim Aufruf im browser nur einen Blankscreen. Es kommt keine Fehlermeldung o.ä. Könntest du bitte nochmal schauen?! Vielen Dank!

    Gruß Norman

  13. Habe die getPet.php versuchsweise zum testen angepasst.Sollte mit mehreren Tieren funktionieren.

    Gruss Markus

    getPet.php

  14. Mo

    Hallo an die Entwickler, 

    klasse, dass das weiterentwickelt wurde. Das klappt alles wie es soll!

    Eventuell sind in die folgende Richtung noch Erweiterungen machbar?

    • Wir haben die Haustierklappe Connect. Diese hat leider nur die Chiperkennung von außen. Es kommt häufig vor, dass Katzen rausrennen und dabei nicht erkannt werden. Als Push Nachrichten kriege ich dann den Hinweis "Eine Katze hat das Haus verlassen". Es wird also schon erkannt, dass eine Katze raus ist. Unklar ist, welche. Gibt es ne Möglichkeit, diese Nachricht "abzufangen" um danach per config logik eine der Katzen auf Abwesend zu setzen?
    • Gibt es für den Futterautomaten von der gleichen Firma eigentlich auch irgendwelche Funktionen bzw. ist da was geplant? (Denkbar wäre, auch das mit der Anwesenheit zu verknüpfen wenn mal wieder eine Katze nicht erkannt wird).

    Danke und viele Grüße!

    1. Hallo Mo,

      schön das du das Pre-Release testest und es soweit funktioniert.

      Leider besitze ich weder die Haustierklappe, noch die Futterautomaten und kann mir somit auch nicht anschauen was diese auf mittels API zur Verfügung stellen. Falls du dazu bereit bist kannst du mir deine Zugangsdaten bereitstellen und ich kann mal schauen was man da noch zurückgeben kann.

      Gruß Daniel

      1. Mo

        Hallo Daniel,

        der Futterautomat ist hier leider auch noch nicht im Einsatz. Die Haustierklappe kannst du dir bei mir aber sehr gerne mal anschauen. Ich habe einen weiteren Benutzer angelegt, wohin kann ich dir die Zugangsdaten schicken?

        Grüße!

        1. Falls du im loxforum einen Account hast kannst du mir gerne die Daten per privater Nachricht schicken. Ich heiße dort dkieslinger

          Gruß

          1. Mo

            Habe dir dort geschrieben!

  15. Hallo, danke für dieses Plugin, jedoch bringt es mich zum Verzweifeln. Eigentlich schaffe ich es nicht mittels Virtuellen Eingang die Daten ins Loxone zu bringen. Habe im Forum leider auch nichts passendes gefunden. Macht es einen Unterschied ob Miniserver Gen1 oder Gen2? Ich bekomme die Ordnerstruktur so wie bei der Bespiel Config nicht hin: 

    Bei mir erscheint jeder neue angelegte Eingang als zb. VI32 ; VI33 ,.... auf und nicht als VI30.VCI16. 

    Werden hier nun Virtuelle Eingänge oder Virtuelle Texteingänge genommen? oder gar Virtuelle HTTP-Eingänge!?


    Des weiteren wo setze ich denn viname?  wenn der Parameter viname=SureFlap gesetzt ist (Auszug aus der Beschreibung)


    Sorry, bin hier leider nicht so geschickt (wink) Danke für Eure Hilfe

    lg Alex

    1. Hallo Alex,

      bitte entschuldige die Verwirrung. Die zweite Ebene bekommt man bei einem virtuellen Eingang (egal ob normaler oder Text) nur indem man in der .Loxone XML-Datei der Config manuell etwas editiert. Wenn du genau wissen willst wie man das macht kann ich das gerne mal erklären.

      Allerdings ist das für das Empfangen von Daten nicht relevant.

      Im Beispiel ist es so, das ein virtueller Ausgang existiert der den Aufruf der Plugin-Seite übernimmt. Bei diesem kann der Parameter eingestellt werden.

      Jedesmal wenn der Ausgang den Befehl EIN bekommt wird die Plugin-Seite auf dem loxberry aufgerufen und vom loxberry die virtuellen Eingänge auf dem Miniserver aktualisiert. Dabei ist, wie in der Doku beschrieben, nur der Name der Eingänge wichtig.

      Alternativ kann aber auch ein klassischer HTTP-Eingang verwendet werden. Dieser bietet dann aber nicht den Luxus auch außerhalb der eingestellten Abfragezeit (beispielweise 5 Minuten) eine Aktualisierung anzufordern.

      Hilft dir das erstmal weiter?

      Gruß Daniel

      1. Hallo Daniel,

        herzlichen Dank für deine Mühen und rausche Antwort (smile) . Das mit den Virtuellen Eingängen usw. muss ich ich fürs erste nicht wissen. Denn in dem Moment wo du hier gepostet hast habe ich denn Miniserver neu gestartet. Und siehe da ich sehe schon die Klappe Online und 100% der Batterie. Denn Rest muss ich erst noch anpassen.

        Hätte ich wohl noch ein bisschen Geduld aufgebracht so hätte ich mich hier nicht melden brauchen. Aber TOP. Feine Sachen gibt es hier (wink).
        Soweit schaut das ganze mal sehr gut aus. 

        Danke

        lg Alex