AVM Smarthome Devices wie Fritz!Powerline 546e Auslesen und Schalten

Unter Anwendung der öffentlich verfügbaren AVM AHA-API für deren Smarthome-Devices wie Fritz!Powerline 546e und Fritz!Dect200 habe ich Scripte zum Auslesen und schalten geschrieben. In den Scripten muss noch der Hostname und das Password der Weboberfläche des Gerätes eingetragen werden, die benötigte AIN sollten sie sich dann selbst holen. das Read-Script starte ich bei mir über einen Timer, das Schaltscript als Event bei Änderung der vom Read-Script angelegten Status-Variable.
Getestet habe ich es mit meinem Fritz 546e und Dect200 auf Fritzbox 7390 mit Fritz!OS5.59(Labor). Vorher die aktuellste Firmware installieren.
Details und Download unter http://www.tdressler.net/ipsymcon/fritz_aha.html.
Feedback und Fehlermeldungen nehme ich gerne entgegen.

Tommi
<Edit 13.10> Zipfile gelöscht. Bitte die aktuelle Files von der Webseite laden </Edit>

Hallo Tommi,

das interessiert mich und Du hast ja schon Efahrung.

Ich suche immer noch eine Möglichkeit unsere Waschmaschine zu überwachen. Da ich schon einen Fritz Powerline Adapter nutze, kann ich den mit einem 546E verbinden und dann in IPS den Stromverbrauch überwachen/aufzeichnen?

ja, so mache ich das bei uns in der Küche mit dem Boiler. Der Fritz546 ist allerdings „nur“ bis 2300W zugelassen. Angenehmer Nebeneffekt: Jetzt habe ich dank des im 546e eingebauten Accesspoints dort auch vernünftiges WLAN. Als Powerline Partner habe ich einen Fritz 520e im Keller am Router hängen.

Tommi

jetzt auch mit ein wenig Prosa:http://www.tdressler.net/ipsymcon/fritz_aha.html

Tommi

Nach dem Update meiner Fritzbox 7390 auf Fritz!OS 5.53 funktionieren bei mir die Zugriffe auf /webservices/homeautoswitch.lua nicht mehr. Ich bekomme zwar Statuscode OK, aber statt einer Antwort „Luacgi not readable filename=/webservices/homeautoswitch.lua real_filename=/usr/www/avm//webservices/homeautoswitch.lua“.
Mal sehen, was AVM dazu sagt. Oder kennt jemand schon das Problem?

Tommi

Hi Tommi,
ich habe einige Abende versucht Deine Skripte zum Laufen zu bringen, dachte aber erst, dass es an der DECT200 Steckdose liegt. Dann bin ich dahinter gekommen, dass es die webservices/homeautoswitch.lua wohl auf meiner 6360 (kabelBW) gar nicht gibt. Mit der 7270 ging es weder mit dem offiziellen noch mit dem Labor-OS.
In dem Fall war aber meine Firmware nicht zu alt, sondern zu neu!
Leider hab ich bisher noch keine brauchbare Alternative gefunden :frowning:
Solange aber ein direkte Abfrage nicht möglich ist, bleibt wohl nur das Parsen der FB Gui…

Gruss
Chris

Sehr seltsam. Da veröffentlicht AVM sogar mal eine API und dann geht die nur für genau eine Firmwareversion(bei mir war es Fritz!OS 5.52). Ich habe AVM mal angeschrieben. Mal sehen, was die sagen. Der Fritz546 tut es seltsamerweise auch mit dem neuern Fritz!OS 5.53

Tommi

Habe diese Antwort jetzt von AVM bekommen:

In der Version FRITZ!OS 5.53 wird die AHA-Schnittstelle noch nicht unterstützt. Verwenden Sie bitte die aktuelle Laborversion oder das demnächst erscheinende Release 6.0 für die FRITZ!Box 7390.

Merkwürdig, das es in der Version davor schon einmal ging…

Tommi

Feine Sache, Danke dafür!

ich habe die Fritz Box 7390 mit einer Dect200 zum spielen.
Das Auslesen habe ich hinbekommen, allerdings musste ich dafür die AIN selbst in die Variable eintragen.
Das schalten klappt noch nicht so ganz. Wenn ich den Trigger laut Deiner Doku eintrage ( bei Änderung der Variable ) tut sich gar nix. Dann habe ich das Script als Actionscript in der Variable hinterlegt. Nun wird die Dose geschaltet, der Status der Variable ändert sich allerdings nicht. Wo ist denn da mein Denkfehler?

Danke + Gruß,
Loerdy.

Welche Firmware der 7390 hast Du?

Das Auslesen der SmartHome-Geräte über die Fritzbox hat im aktuellen offiziellen Fritz!OS Version 5.53 leider Probleme. Deshalb hat er möglicherweise die AIN des DEC200 nicht gefunden, der ja im Gegensatz zum Fritz546 keine eigene Oberfläche hat.

Das Schalten funktioniert über die Variablenänderung bei mir aber klaglos. einfach in der Objektliste die Variable Doppelklicken und ändern. Das Ändern der Anzeige der Variable ist eine IPS Standardfunktion. Warum das mit einem Actionscript nicht tut, weiss ich nicht.

Ich bin gerade dabei, eine neue Version des Scripts zu schreiben. In der aktuellen Labor-Firmware tut die API wirklich wie beschrieben.

Viele Grüße
Tommi

Ich habe die Scripte und die Dokumentation überarbeitet. Z.Z. ist für die Fritzbox 7390 noch die Laborversion(8.Okt.2013) notwendig. Alle Details wieder unter http://www.tdressler.net/ipsymcon/fritz_aha.html

Tommi

Ich sach supergeil!!
Klappt hervorragend!!

Danke Danke Danke !!

Loerdy

Hallo,
danke erst mal für das Script läuft super
nur würde ich gern den Kategorie Ort ändern ums schöner an mein Struktur anzupassen.

$catname=‚FRITZ Smarthome‘;

wie kann ich diesen Punkt ändern ?
für z.B. Fritzbox/Aktoren/Powerline/

Danke schon mal

Hi tommi,

mit dem Avm 546 habe ich das ganze schon im Einsatz, funktioniert sehr gut.

Meine Frage ist jetzt nachdem ich noch die Version 5.53 Firtzbox 7390 im Einsatz habe und die Labor FW ausm Oktober nicht mehr bei AVM zum download steht, hast du die scripte schon unter Fritz!OS 6.0 getestet?

Grüße Florian

hast du die scripte schon unter Fritz!OS 6.0 getestet?

ja, geht. Habe selber die 6.0 drauf. GGfls die letzte Version von meiner Seite ziehen.

wie kann ich diesen Punkt ändern ?
für z.B. Fritzbox/Aktoren/Powerline/

Das Script sucht sich im Moment die Variablen ausgehend von der Root (parent=0) unter $catname. Das kann man in get_ips_vars ändern, indem eine andere Parent-ID reinschreibt. Also zunächst den Baum wie gewünscht aufbauen, dann die ID der Kategorie notieren und in das Script als parent eintragen, also von

$master=@IPS_GetObjectIDByName($cat,0);

zu


$parent=<yourID>;
$master=@IPS_GetObjectIDByName($cat,$parent);

ändern.

Tommi

danke schon mal, aber ganz hat das nicht gereicht, ein paar Zeilen drunter (188) muss

IPS_SetParent($master,0);

durch

IPS_SetParent($master,$parent);

ersätzt werden.

mit freundlichen Grüßen

Hi Tommi,

Danke für die schnelle Antwort. Ich werde dann mal die Woche meine FB auf 6.0 ziehen und deine Scripte einbauen.

Gruß Florian

Hallo,
tolles Script. Funktioniert mit meiner 546 auf Anhieb.
Nur die Status-Aktualisierung tut nicht wie gewünscht.

Ich habe das Actor-Script als Aktion zur Status-Variable hinzugefügt. Damit habe ich zwei Buttons An/Aus,
wenn ich es nach Anleitung mache habe ich nur einen Button im Webinterface mit dem aktuellen Status.

Das Problem: klicke ich auf an oder aus, dann tut sich zwar was aber der Status wird nicht aktualisiert.
Das geschieht erst mit read_fritz, also im schlechtesten Fall nach 5 Minuten.
Starte ich das Read-Fritz-Script von Hand wird die Änderung sofort angezeigt.
D.h. ich bräuchte nach dem actor-Script einen Lauf des Read-Scripts.
Mache ich da was falsch oder kann ich das irgendwie einstellen daß die Änderung sofort angezeigt wird?

Eigentlich war es anders gedacht. Das Actor-Script soll durch die Änderung der Variable getriggert werden. Für das Webfrontend also am besten ein eigenes Script machen, was die Variable ändert. Damit wird über den zugeordneten Event das Actor-Script angestossen, was den neu gesetzten Variablenstatus , an den Aktor weitergibt. Somit sollten Variable (und Webfront) mit dem Actor bei erfolgreicher Ausführung wieder syncron sein.

Tommi

Alles Gut, war die falsche Firmware.

Hallo Tommi,

ich versuche auch gerade die Scripte zum laufen zu bekommen, aber irgendwo hakt es noch.

Erhalte beim ausführen des read Scriopts diese Meldung:

Luacgi not readable filename=/webservices/homeautoswitch.lua real_filename=/usr/www/avm//webservices/homeautoswitch.lua
 getswitchpower=

Luacgi not readable filename=/webservices/homeautoswitch.lua real_filename=/usr/www/avm//webservices/homeautoswitch.lua

Hast Du oder irgendwer anderes einen Tipp?