[Frage] Fritz!DECT 200 API

@computeruser: Die Mühe habe ich mir jetzt doch gemacht, alleine um zu sehen, ob es möglich ist. Und es funktioniert mit einigen Einschränkungen. Einige Werte sind über eine 546E enfach nicht abrufbar. Alle Grundfunktionen arbeiten zwar langsam aber ansonsten tadellos.

Hier die neue Version 3.10.2854, die sowohl über die Fritzbox als Datenquelle, als auch über einen Powerline 546E-Adapter als Quelle funktioniert. Außerdem lassen sich die Schalter in der WebGUI namentlich sortiert (Fritzbox oder 546E als Quelle) oder gruppiert (Fritzbox als Quelle) anzeigen. Viel Spaß damit:
Code:
	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   Smart Home                                                        |
		|   ===============================================================   |
		|   Webinterface der Schaltfunktionen mit Anzeigewerten               |
		|   -> Benötigt Fritz!OS 6.10 oder höher für Steuerung mit Fritzbox   |
		|   -> Benötigt Fritz!OS 6.05 oder höher für Steuerung mit            |
		|      Powerline 546E (begrenzter Funktionsumfang, kein WebGUI für    |
		|      mobile Webbrowser)                                             |
		|                                                                     |
		|    Optionen:                                                        |
		|    * info     = ui|mobile|vb|geraet                                 |
		|                                -> Typ Userinterface                 |
		|                 ui             -> grafisches Web-Interface          |
		|                 mobile         -> vereinfachtes Web-Interface       |
		|                                   für mobile Geräte                 |
		|                                   (begrenzter Funktionsumfang)      |
		|                 geraet         -> Typ Infodaten für ein Gerät       |
		|                 vb             -> Typ VB-Infodaten                  |
		|    * name     = alphanumerisch -> Gerätename                        |
		|    * sortierung                                                     |
		|               = keine          -> keine Sortierung                  |
		|               = name           -> Name, Gruppen oben                |
		|               = gruppe         -> erst gruppenlose, dann Gruppe     |
		|                                   mit dazugehörigen Geräten,        |
		|                                   alphabetisch sortiert             |
		|    * ain      = alphanumerisch -> Geräteidentifikationsnummer       |
		|    * schalter = an|aus         -> Schaltvorgang auslösen            |
		|                                                                     |
		|    Beispiele:                                                       |
		|      smarthome.php?name=FX-Dose&schalter=an                         |
		|        -> Schaltet das Gerät mit dem Namen "FX-Dose" ein.           |
		|      smarthome.php?ain=12345 1234567&schalter=aus                   |
		|        -> Schaltet das Gerät mit der AIN "12345 1234567" aus.       |
		|      smarthome.php?info=mobile                                      |
		|        -> Zeigt das Webinterface aufbereitet für mobile Geräte an.  |
		|      smarthome.php                                                  |
		|        -> entspricht smarthome.php?info=ui und zeigt das Web-       |
		|           interface für den Browser an.                             |
		|      smarthome.php?info=geraet&name=FX-Dose                         |
		|        -> Zeigt durch Komma getrennt alle Gerätewerte an            |
		|           Aktiv,Name,ID,AIN,Temp,Watt,Schalter,Mode,Lock            |
		|           1,FX-Dose,12,12345 1234567,12.3,1.230,1,manuell,0         |
		|                                                                     |
		+---------------------------------------------------------------------+
	*/

	
	define ("VER","V 3.10.2854");
	define ("CPR","für die FB IPPF-User");
	
	define ("FB","http://fritz.box");
	define ("USER","hier Benutzer eintragen");
	define ("PASSWORD","hier Kennwort eintragen");

Will man einen Powerline 546E als Quelle eintragen, so muss man beachten, dass es hier keinen Benutzer gibt. Dieser ist dann leer "". Das Kennwort ist das Anmeldekennwort. Als "FB" benutzt man entweder den Powerline-Namen oder die IP des 546E.

Das Script geht zunächst davon aus, dass eine Fritzbox mit neuester FW die Daten liefert. Sind die gelieferten Daten leer, so versucht es alternative Methoden mit älteren Funktionen. Misslingt auch dies, zeigt das WebGUI an, dass keine Daten ermittelt werden können. Ich habe es mit einer FB 7390 FW 6.20 und einem 546E FW 6.05 getestet. Beide lieferten die erwarteten Resultate.

Viel Spaß damit.
 
Zuletzt bearbeitet:
Hallo zusammen, (wusste nicht wohin damit / evtl Thema verschieben )

Fritz!Dect 200 die intelliegente Steckdose schaltet bei mir Zuhause Licht an und aus, obwohl die Fritz!Box aus ist ( vom Strom getrennt )

Habe ich da Geister im Haus ???
oder kann ich definitiv dazu "Polizeilich" das Haus auseinander nehmen.

S O S (wirklich dringend)

Wer weiss was ??? ( SOS ) es ist dringend, da eine Anzeige wegen Datenklau schon läuft ...
 
Zuletzt bearbeitet:
Programmierte Zeitschaltungen bleiben auch ohne aktive Fritz!Box im F!DECT 200 erhalten bis du diesen auch aus der Steckdose ziehst.
Standbyabschaltung läuft immer autark.
 
Alles Klar, kann ich also das in der Schublade ( Gesunder Menschenverstand contra Paraneuer ) ablegen :D
 
Die FD200 muss einfach nur auf Werkszustand zurückgesetzt werden, um ihr selbständiges Handeln zu unterbinden:
http://avm.de/nc/service/fritzdect/...ECT-200-auf-Werkseinstellungen-zuruecksetzen/
Code:
FRITZ!DECT 200 zurücksetzen:

    Drücken Sie drei mal hintereinander für jeweils mindestens sechs Sekunden die DECT-Taste am FRITZ!DECT 200.

FRITZ!DECT 200 startet jetzt neu. Der Neustart dauert ca. zwei Minuten. Anschließend sind sämtliche Daten und Einstellungen gelöscht und Sie können FRITZ!DECT 200 erneut an der FRITZ!Box anmelden.

Das Problem ist, dass die Steckdose autark ihre Schaltzeiten und Verbrauchsinformationen speichert, falls mal die Fritzbox nicht erreichbar ist.

Nach obiger Prozedur schaltet sie nicht mehr selbständig kann aber auch ohne Fritzbox mit der Taste geschaltet werden.
 
Zuletzt bearbeitet:
Für die Heizkörperregler gibt es übrigens im API die neuen Aufrufe

gethkrtsoll
gethkrkomfort
gethkrabsenk
sethkrtsoll

leider kann man wahrscheinlich mangels passender Hardware noch nichts testen. Parameter dürften wohl wieder die AIN oder MAC und die SID sein...
Hört sich für mich eh vorläufig an, da die Namen (im Vergleich zu den "alten" API-Aufrufen) deutsch sind.

"getswitchlistinfos" gab es auch nur eine Beta-Version lang und wurde dann durch "getdevicelistinfos" ersetzt.
 
Zuletzt bearbeitet:
...
@chris30o0: http://fritz.box/webservices/homeautoswitch.lua??sid=[SesionID]&switchcmd=getdevicelistinfos
Aus diesem rückgelieferten simpleXML-Objekt kann man dann die Temperatur für jedes Gerät herauslesen. Nicht vergessen das Offset der Temperatur noch dazuaddieren. Einen Link nur für Temperatur gibt es lt. AVM-Handbuch leider nicht.
...

Hallo, leider funktioniert bei mir dieser "Link" nicht. Was kann ich tuen um die Temperatur auszulesen?
 
Du musst einen Benutzer nutzen, der genügend Rechte hat. Versuche es einmal mit der admin-Anmeldung. Sollte es damit auch nicht gehen, können wir weiter nach der Ursache forschen. ;)
 
Meiner Erkenntnis nach bin ich Admin.

Fritzbox.png
Oder habe ich eine Einstellung übersehen?
 
Ja, das müsste passen. Wie bildest du die SessionID für den Link?
 
Die SessionID ermittle ich mittels diesem Link:
http://192.168.1.1/capture.lua
Ich gebe dann das Passwort der Fritzbox ganz normal ein und oben in der Url steht dann die SessionID.
Ich kann über so einen Link, wie hier im Form beschreiben auch die Steckdose schalten aber mir geht es halt hauptsächlich um die Temperatur.
 
Im Link oben ist ein Tippfehler. Doppeltes ?. Da darf nur eins bei der Parameterübergabe sein.

Code:
http://fritz.box/webservices/homeautoswitch.lua[COLOR="#008000"][B][SIZE=6]?[/SIZE][/B][/COLOR]sid=[COLOR="#FF0000"][SesionID][/COLOR]&switchcmd=getdevicelistinfos
 
Habe es jetzt nocheinmal versucht aber leider ohne Erfolg.
Link: "http://fritz.box/webservices/homeautoswitch.lua?sid=e1b8970484700642&switchcmd=getdevicelistinfos"

Woher weiß den der Link eigentlich von welcher Steckdose er die Daten abfragen soll? Bei dem AN/AUS link war ja noch eine extra AIN angegeben, die die Dose bezeichnet?
 
Er liefert eine xml-Datei mit sämtlichen angemeldeten Geräten und deren Daten als Inhalt, die man dann auswerten kann.

Ersetze fritz.box einmal durch die ip deiner Fritzbox und achte darauf, dass keine Leerzeichen in der URL sind.
 
Habe es wie beschreiben versucht und habe auch darauf geachtet, keine Lesezeichen zu haben, leider kein Erfolg.
Die Session ID habe ich auch erneut ausgelesen. Wie lange ist diese eigentlich gültig?

Vielleicht liegt es auch daran wie ich den Link "ausführe"?
Hab 2 Wege versucht:
1. Weg
Im Browser (Safari, Opera, Chrome) https://192.168.1.1:450/webservices...43c3fe08484afcb&switchcmd= getdevicelistinfos oder auch http://192.168.1.1/webservices/homeautoswitch.lua?sid=a43c3fe08484afcb&switchcmd= getdevicelistinfos

2. Weg
im Mac Terminal mitels curl:
curl -k "https://192.168.1.1:450/webservices/homeautoswitch.lua?sid=a43c3fe08484afcb&switchcmd=%20getdevicelistinfos" oder auch
curl "http://192.168.1.1/webservices/homeautoswitch.lua?sid=a43c3fe08484afcb&switchcmd=%20getdevicelistinfos"

Den Port hab ich in den FritzBox Einstellungen auf 450 geändert.
 
Wenn ich mich nicht irre, ist die SessionID für jeweils eine IP:port-Kombination gültig. Das kann nichts werden, wenn du das wild mischst.
Ich habe es bei mir getestet und es läuft mit folgenden Aufrufen:

Code:
http://fritz.box/capture.lua
[SessionID], die dort erzeugt wird, aus der Adresszeile in den nächsten Link übernehmen.
Code:
http://fritz.box/webservices/homeautoswitch.lua?sid=[SesionID]&switchcmd=getdevicelistinfos
Die xml-Datei wird angezeigt.
Browser Firefox.
 
Ist zwar schon ein wenig her (der Beitrag von SnoopyDog), aber das scheint mit den "deutschen" Variablen so gewollt und funktioniert auch (nach diversen Fehlversuchen).

Mit einemAufruf à la:
"http://fritz.box/webservices/homeautoswitch.lua?sid=0123456789900&switchcmd=sethkrtsoll&param=40&ain=1234567890"
lässt sich so ein "Comet DECT" Thermostat gezielt umstellen. Dauert dann zwar ein wenig, bis sich das in der FritzBox niederschlägt, da offenbar die Übertragungszeiten dauern, aber mit einem Aufruf à la:
"http://fritz.box/webservices/homeautoswitch.lua?sid=0123456789900&switchcmd=gethkrtsoll&ain=1234567890"
(alternativ mit der XML-Abfrage von: $device->hkr->tsoll)
bekommt man es direkt gezeigt.

Die neuere Doku (AHA-HTTP-Interface_108.pdf) auf avm.de diesbezüglich ist da etwas ungenau.
Viele Grüße robw
 
Auch wenn der letzte Beitrag schon etwas her ist.
Ja, die Änderung der Heizkostenregler dauern, weil die sich im Ruhezustand nur alle 15 Minuten mit der Fritz!Box abstimmen.
Das habe ich bei der Entwicklung meiner Pebble-App auch feststellen müssen...

Schade, dass man nicht noch weitere Informationen aus der Schnittstelle bekommt. Ich habe da schon den Entwicklersupport von AVM angeschrieben mit Vorschlägen.
Was ich noch brauchbar fände, sind Infos, wie "Wann ist der nächste automatisierte Temperaturwechsel und auf welche Temperatur wird umgestellt?" oder "Wie ist der Batteriezustand des Heizkostenreglers?". Infos, die man in der Weboberfläche und/oder im Fritz!-Telefon abrufen kann.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.