[Frage] Fritz!DECT 200 API

@Racabix warum soll eine FRITZ!Dect 200 eine Mac besitzen?
Es wird wie der Name schon sagt über Dect gesteuert und nicht Netzwerkseitig. (Ist wie ein Telefon zu betrachten)
 
Jeder Aktor hat eine MAC-Adresse wenn der keine hat geht es auch mit der AIN Nummer. Ich hab keine Dect 200 aber ich denke auf der Rückseite sollte entweder eine MAC oder eine AIN stehen.

Es kann sein das es mit der MAC von der FRITZ!Box geht...
 
Zuletzt bearbeitet:
Ich hab noch mal gesucht und hab home_auto_query.lua gefunden...
es sollte so in der art auch gehen da brauch man keine MAC aber eine id und die AIN besteht entweder aus einer MAC-Adresse oder aus der Identifikation des Aktors, z. B. 012340000123
home_auto_query.lua kenne ich aber nicht so.
 
Um die Sache hier vielleicht mal ein wenig klarer zu bekommen.

Für die Schaltung der Aktoren wird eine eindeutige Kennung des zu schaltenden Geräts benötigt.
Diese ist bei administrativen Netzwerkgeräten wie der 546E die MAC-Adresse.
Die Aktoren die per Dect angesprochen werden können besitzen eine AIN. Die ist für jeden Adapter genau so eindeutig wie (eigentlich die MAC).

Die API vereinfacht das Schalten dahingehend das wirklich die oben genannten "ID's" zum schalten verwendet werden können.
Bei der undokumentierten API über home_auto_query.lua musste man noch eine FritzBox interne ID zur Schaltung verwenden, die erst aus der Weboberfläche gefischt werden musste.

Also nochmal in kurz.
Wenns um SmartHome über die API geht sind MAC und AIN als verwendungsgleich anzusehen.
 
Stimmt
nach AVM (http://www.avm.de/de/Extern/files/session_id/AHA-HTTP-Interface.pdf):
AIN = Identifikation des Aktors, z. B. "012340000123" oder MAC Adresse für Netzwerkgeräte

Eine AIN ist also nötig, weil man sonst nicht den Aktor ansprechen kann.

Nach AVM soll man auch die Dect 200 über die Benutzeroberfläche der fritz box schalten können. Ich hab mal nachgesehen wie das geht und home_auto_query.lua wird beim an und aus schalten des Aktors genutzt.

Ihr könnt also euch mit C# eine SID holen (http://www.avm.de/de/Extern/files/session_id/AVM_Technical_Note_-_Session_ID.pdf)
gebraucht wird nur ein Benutzername und ein Passwort. Ich würde Messagebox.show(seite); zu Messagebox.show(sid); machen
:smile:



Dann steht aus der Rückseite der Dect eine Ain, Mac, oder irgend eine Identifikation des Aktors. Daraus könnt ihr einen Link bauen (http://www.avm.de/de/Extern/files/session_id/AHA-HTTP-Interface.pdf). Noch mal ein Beispiel:

http://[IP oder Benutzeroberfläche]//webservices/homeautoswitch.lua?sid=[SID(mit C# ermitteln)]&ain=[Identifikation des Aktors]&switchcmd=[command(HTTP-Interface)]
http://000.000.000.00//webservices/...0&ain=00:00:00:00:00:00&switchcmd=setswitchon

Es könnte sein das die Seite so ist:
http://fritz.box//webservices/homea...0&ain=00:00:00:00:00:00&switchcmd=setswitchon

Alle switchcmds stehen auf der HTTP-Interface Seite von AVM (http://www.avm.de/de/Extern/files/session_id/AHA-HTTP-Interface.pdf)
&switchcmd=setswitchon/setswitchoff...

Daraus kann man sich doch ein Programm bauen
:wink:




falls es immernoch nicht gehten sollte, gibt es noch andere Schnittstellen von AVM: http://www.avm.de/de/News/artikel/schnittstellen_und_entwicklungen.php

Edit: Ich kann die Links oben nicht entfernen. Also müsst ihr drauf zeigen um den Link zu sehen.
 
Zuletzt bearbeitet:
Nachdem auf der 7270 das von AVM dokumentierte AHA-Interface auch zur Verfügung steht, habe ich ein kleines Script gebaut, mit dem man die beschriebenen Funktionen in der Fritzbox nutzen kann.
Die Funktionen selbst incl. Login werden mit PHP ausgeführt, welches wiederrum von einem (Endlos-)Shellscript aufgerufen wird.

Meine Anforderung war:
Wenn die Dose eingeschaltet wird, egal ob manuell, per Oberfläche oder sonstwie, dann schalte sie nach einer Zeit X wieder aus. Dafür gibts ein Beispielscript in dem Anhang. Weitere Anwendungen wie z.B. "Bei Anruf Strom" in Verbindung mit calllog lassen sich ebenso einfach realisieren.

Der PHP-Interpreter ist in dem Päckchen nicht enthalten, da die Datei sonst für den Anhang zu groß wird.
Die PHP Binary kann mit dem Freetz-Paket selbst compiliert werden, die Installation von Freetz auf der Box ist nicht erforderlich.
 

Anhänge

  • fritzhome.zip
    2.3 KB · Aufrufe: 443
Irgendwei bin ich zu doof: 7390 + FRITZ!OS 05.53 + FritzDect 200

Per C# Anmelden und SID holen klappt, (kann man ja auch zum Test aus einem Browser Fischen), aber die Benutzung von "http://fritz.box/webservices/homeautoswitch.lua"
nach http://www.avm.de/de/Extern/files/session_id/AHA-HTTP-Interface.pdf bringt mir nur folgenden Fehler: (parameter 1000mal geprüft)

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

Gilt die HTTP-Interface DOKU nur für die Powerline Adapter ? ... hat jemand das mit einer Fritz DECT 200 Steckdose zum Fliegen gebracht ????

Jede Menge Thanks im Voraus!

VG
Waltsteinchen
 
Ahhhh ... grad ins fritzhome.zip von chked geschaut .. geht das aktuell nur mit der "Laborversion" ?

VG
Waltsteinchen
 
Ja, jetzt wo du's sagst ;-) .... Ich habe immer nur die *.pdf hier über die direkten Links aus dem Forum gekuckt ....
Naja macht nix ... wenn das dann mal so funktioniert wie Beschrieben ist das Klasse...

@chked, Danke dir!
 
Das API ist übrigens recht simpel anzuwenden (siehe Screenshot) - hat nicht lange gedauert, das zu implementieren ;)

Edit: Allerdings ist es auch tierisch langsam, denn man muß für die Abfrage jeder Eigenschaft eines Aktors einen einzelnen http request senden. Eine Sammelabfrage, welche alle Werte auf einmal zurückliefert, würde es beschleunigen.

Es gibt übrigens noch einen Aufruf, der bis jetzt nicht dokumentiert ist:

getswitchmode
=> 0: Aktor kann/darf nicht geschaltet werden
=> 1: Aktor kann/darf geschaltet werden.
 

Anhänge

  • FBFShot.jpg
    FBFShot.jpg
    68.9 KB · Aufrufe: 432
Zuletzt bearbeitet:
FYI: Ich habe gerade ein Perl Modul AVM::AHA auf CPAN hochgeladen, mit dem man via Perl die Schnittstelle recht leicht abfragen kann.

ciao ...

... roland
 
Hallo,

mir ist aufgefallen, daß beim FRITZ!Dect 100 Repeater, wenn man den über das Webinterface (Smarthome) anmeldet eine AIN angegeben wird, diese ist später nicht mehr sichtbar. Wenn man sich diese notiert und später über die API anspricht kann es klappen die Steckdose dort auch zu schalten. Hat das mal jemand getestet ?

Gruß

Simpel
 
Wer einen Web-Server mit PHP zu Hause hat, kann sich dieser PHP-Datei zum Überwachen und Schalten seiner FritzDect-200 bedienen.
HTML-Seite auf Basis des obigen Scripts von chked - Danke für die Vorlage.

Anhang anzeigen smarthome.zip

robw
 
Zuletzt bearbeitet:
Es gibt bei neueren Firmwares den neuen Befehl

webservices/homeautoswitch.lua?switchcmd=getswitchlistinfos&sid=%x

=> liefert auf einen Rutsch alle Aktoren mit aktuellen Werten zurück. Statusabfragen sollten nun deutlich schneller gehen!
 
OK... Ab Fritz!OS 6.10-28144 heißt es plötzlich

webservices/homeautoswitch.lua?switchcmd=getdevicelistinfos&sid=%x

mit geändertem XML-Format

Code:
ALT:
  <device>
    <AIN>xxxxxx</AIN>
    <name>Licht Wohnz vorne</name>
    <switchstate>0</switchstate>
    <switchmode>1</switchmode>
    <switchpresent>1</switchpresent>
    <power>0</power>
    <energy>43806</energy>
  </device>

NEU:
  <device identifier="xxxxxx" id="16" functionbitmask="896" fwversion="03.33" manufacturer="AVM" productname="FRITZ!DECT 200">
    <present>1</present>
    <name>Licht Wohnz vorne</name>
    <switch>
      <state>0</state>
      <mode>manuell</mode>
      <lock>0</lock>
    </switch>
    <powermeter>
      <power>0</power>
      <energy>44512</energy>
    </powermeter>
    <temperature>
      <celsius>246</celsius>
      <offset>0</offset>
    </temperature>
  </device>

Hoffentlich bleibt das jetzt grundlegend so.
 
Zuletzt bearbeitet:
Super!
Die Schnittstelle kenne ich schon eine Weile, hatte mir damals der AVM-Entwickler exklusiv geschickt :)
Eine Gesamtliste fehlt mir bislang, man musste für jedes Attribut (Name, Status, Energie) immer eine sep. Anfrage schicken...
Inzwischen hatte ich noch eine andere Möglichkeit gefunden, die eine ähnliche Liste liefert:

http://fritz.box/myfritz/areas/homeauto.lua?sid=...&startpos=0&cmd=getData&ajax_id=0:

Code:
"ajax_id": 0, 
"shares": {
}, 
"devices": [{
    "pv_max": 0, 
    "FunctionBitMask": 896, 
    "DeviceType": 9, 
    "GroupHash": "0", 
    "ID": 16, 
    "SubModel": "0x0002", 
    "Valid": 2, 
    "Identifyer": "...", 
    "ProductName": "FRITZ!DECT 200", 
    "temperature": 246, 
    "pv_now": 0, 
    "UpdatePresent": 0, 
    "Name": "Lampe", 
    "Model": "0x0007", 
    "pv_min": 0, 
    "switch": {
      "LEDState": 2, 
      "Options": 2, 
      "Devicetype": 9, 
      "ID": 16, 
      "SwitchOn": 0, 
      "SwitchLock": 0
    }, 
    "FWVersion": "03.33", 
    "Manufacturer": "AVM"
  }, {
    "pv_max": -1, 
    "FunctionBitMask": 640, 
    "DeviceType": 9, 
    "GroupHash": "0", 
    "ID": 17, 
    "SubModel": "0x0002", 
    "Valid": 1, 
    "Identifyer": "...", 
    "ProductName": "FRITZ!DECT 200", 
    "temperature": -9999, 
    "pv_now": -1, 
    "UpdatePresent": 0, 
    "Name": "Ventilator", 
    "Model": "0x0007", 
    "pv_min": -1, 
    "switch": {
      "LEDState": 65535, 
      "Options": 65535, 
      "Devicetype": 9, 
      "ID": 17, 
      "SwitchOn": 0, 
      "SwitchLock": 65535
    }, 
    "FWVersion": "03.33", 
    "Manufacturer": "AVM"
  }], 
"area": "homeautoArea"
}
 
<Schleichwerbung>
Wer will, kann die kostenlose Beta meiner Android-App "BoxToGo" ausprobieren, die kann die Temperatur der Schaltsteckdosen auslesen und anzeigen.
Siehe http://beta.boxtogo.de
</Schleichwerbung>

device-2014-06-14-121953.png
 
Ich habe sie sogar bezahlt, weil sie hält, was sie verspricht ;)
 
ab welcher fritz.os Version wird die Temperatur geliefert, mit 6.06 und btg Beta 2.0.3 bekomme ich es nicht hin ...
 
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.