Davids Interblag Gesammelte Werke.

9Feb/130

RWE SmartHome: automatisches Auslesen der Geräteaktivität [PERL]

Wenn du die Geräteaktivität deiner RWE SmartHome-Elemente automatisch auslesen möchtest, ohne dich jedes mal einloggen zu müssen, kannst du das folgende Script benutzen. Es ist in Perl geschrieben und befindet sich derzeit in der Testphase. Sollten RWE irgendwann ihr Login-Form oder die Authentifizierungsmethode ändern, ist es sehr wahrscheinlich, dass das Script nicht mehr funktionieren wird.

Changelog

Version 1.1:
* HTML::Parser wird statt substr/pos verwendet um das VerificationToken zu holen
* use strict-Pragma implementiert
* Error Handling eingeführt
* div. Sicherheitsüberprüfungen eingebaut
* Kommentare hinzugefügt

Version 1.0:
* Initial Release

Download 1.1: get_log_1.1 (10.02.2013)
Download 1.0: get_log_1.0 (09.02.2013)

Zur kurzen Erklärung: es finden sich unter rwe-smarthome-forum.de bereits mehrere fehlgeschlagene Versuche den Login-Vorgang zu automatisieren, allerdings alle auf wget- oder curl-Basis. Einzig diese Lösung ist funktionsfähig. Bei allen "echten" Scriptlösungen ist das VerificationToken nicht korrekt implementiert oder die Cookie-Unterstützung nicht berücksichtigt.

So sieht die Ausgabe des Scripts aus:

C:\Users\David\Dropbox\Documents\Random\rwe smarthome\scripts>get_log.pl
Step 1: delete existing cookies.
Step 1 finished.
Step 2: receive VerificationToken...
Step 2 finished (Token: 9T8FI7ytLkeNO/KiN/FkAaPmGepi3pQomHc+8Vrqp0idR+2sp14K5VKJUz[..]
Step 3: send login data...
Step 3 finished.
Step 4: request CSV data...
Step 4 finished (output: '1360420394.csv').

C:\Users\David\Dropbox\Documents\Random\rwe smarthome\scripts>

Die fertigen CSV-Dateien finden sich im Unterverzeichnis "output", welches unter Linux unbedingt die korrekten Berechtigungen haben muss. Das gleiche gilt, ebenfalls nur bei Linux, für das Verzeichnis in dem Script liegt UND für das Script selber, welches mit "chmod +x" ausführbar gemacht werden muss. Der Dateiname ist der jeweils aktuelle Unix-Timestamp, was eine Weiterverarbeitung erleichtern soll.

Erstellt und getestet mit perl 5, version 16, subversion 2 (v5.16.2) built for MSWin32-x64-multi-thread. Download Perl.

veröffentlicht unter: Elektronik, Perl Kommentar schreiben
Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Leave a comment

CAPTCHA-Bild

*

Noch keine Trackbacks.