Sensoren Status über Verisure API auslesen

Um den Status der in einem Versisure System verbauten Sensoren auszulesen und in einem ioBroker bzw. Node-Red basierten SmartHome weiter zu verwenden sind einige Schritte notwending, seidem MFA Pflicht geworden ist. Unter anderem läuft auf dem ioBroker ein python Script, dass in der Lage ist trotz des MFA aktivierten Accounts über Token die Informationen mittels der Verisure API auszulesen.

Um die Verisure API anzusteuern gibt es eigens ein python Script, dass hierzu gut verwendet werden kann. Es kann unter der folgenden URL heruntergeladen werden.

 https://github.com/persandstrom/python-verisure

Weitere Informationen, wie man das Script einmalig so ausführt, dass im Homeverzeichnis des node-red Users ein Token generiert wird, finden sich in der README des github repositories.

Nach dem clonen mittels git kann man das script nutzen.

git clone https://github.com/persandstrom/python-verisure 

Hierzu muss man zuerst einen Token in dem Homeverzeichnis des ausführenden Users generieren.

python3 /opt/python-verisure/verisure.py --mfa [email protected] 'password'

Hier wird nun nach dem SMS Code gefragt. Diesen bitte eingeben.

Script 

Das Script liegt  im Crontab des User root und läuft alle 60 Sekunden.

python3 /opt/python-verisure/verisure.py --mfa --door-window [email protected] 'password' > /var/www/html/verisure.json

Hierdurch werden alle Status Informationen der Fenster und Tür Senoren heruntergeladen und in einer Datei "verisure.json" zwischengespeichert. Um dies regelmäßig zu machen dieses script einfach mittels crontab aufrufen.

Crontab

*/1 * * * * python3 /opt/python-verisure/verisure.py --mfa --door-window [email protected] 'password' > /var/www/html/verisure.json

 

Node-Red

Über einen HTTP Get-Request wird alle 15 Sekunden im Node Red die Datei verisure.json gezogen und über einen einfachen Flow in Node-Red geparst. Dieser sieht wie folgt aus.

 

Die Daten werden Danach über den JSON Parer zu einem JS-Objekt konvertiert und über einzelne Isolierungen in die Variabeln des  ioBroker geschrieben. Die einzelnen Debug Nodes hatte ich jeweils zum Testen. Sie werden nicht benötigt.