Dect!200 via node red ansprechen - getSessionID

PapaLooser

Neuer User
Mitglied seit
23 Dez 2007
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich versuche grade meine Dect!200 über die Fritzbox von Node Red aus anzusteuern.
Ich bin erst grade dabei in die Thematik einzutauchen, deshalb bewege ich mich von Problem zu Problem.

Im Augenblick hänge ich ziemlich am Anfang beim auslesen der SID.

Die ATA-HTTP-Interface und Technical Note Session ID PDFs von AVM habe ich durchgelesen.
Über einen HTTP-Request auf http://fritz.box/login_sid.lua bekomme ich ein XML als Antwort, mit ner leeren SID und einer Challenge. Das klappt soweit.

Nun muss diese Challenge irgendwie weiterverarbeitet werden (Challenge-Response Verfahren).
Das ist im PDF beschrieben, ich versteh aber nur Bahnhof
und mit den Beispielen kann ich nichts anfangen.
Und was mach ich final mit dem Response, sobald ich den ermittelt habe?

Hat hier jemand das schon mal erfolgreich in node red umgesetzt und wie geht es da weiter?
 
ich versteh aber nur Bahnhof
Warum willst Du das dann unbedingt selbst machen und greifst nicht einfach auf bereits vorhandene Vorarbeiten zurück?



Das gibt's (iirc) auch irgendwo als NPM-Pakete direkt für Node-Red ... wie weit diese Interface-Module jetzt die aktuellsten Änderungen bei AVM unterstützen (bei der Anmeldung hat sich einiges geändert, bis hin zur 2FA für bestimmte Funktionen), mußt Du halt selbst sehen oder dort nachlesen.

Aber die "basics" haben andere bereits (auch für Dich) gelöst und selbst wenn man deren Libraries nicht unbedingt einsetzen will, kann man dort doch ohne Probleme nachschauen (steht fast alles unter MIT-Lizenz), wie man mit den angebotenen Interfaces der FRITZ!Box in Javascript umgehen kann.
 
Danke für den Hinweis,

bis auf node-red-contrib-smartfritz kannte ich die schon, das scheint sich aber leider nur auf auf den Status 0/1 zu beschränken, Temperatur oder Energieverbrauch scheinen aussen vor.
node-red-contrib-fritz scheint den Schwerpunkt auf Fritzbox Funktionen selbst zu haben.
node-red-contrib-fritzapi hatte ich schon im Gebrauch, und das sieht das Dect!200, wenn ich allerdings per Node die Temperatur auslesen möchte,
bekomme ich die AID zurück.
Vermutlich ein einfacher Konfigurationsfehler, aber mangels Node Referenzen komme ich nicht drauf.

Deshalb habe ich angefangen mich mit einem reinen HTTP Request auseinanderzusetzen :)
 
wenn ich allerdings per Node die Temperatur auslesen möchte, bekomme ich die AID zurück.
Das dürfte daran liegen, daß für "Outlet" (und das wäre Deine DECT!200 doch, oder?) gar kein "getTemperature" definiert ist: https://github.com/dnknth/node-red-contrib-fritzapi/blob/master/fritz.js#L229 - vorausgesetzt, wir meinen dieselben Sourcen.

Wenn die AVM-"Funktion" auch für die DECT!200 nutzbar ist (das kann man ja zuvor von Hand probieren mit einem Request im Browser, es sollte aber funktionieren nach meiner Erinnerung), findet man z.B. bei "Thermostat" weiter oben die implementierte bzw. zu implementierende (Lambda-)Funktion - durch "fritzapi" sollte das bereits bereitgestellt werden: https://github.com/andig/fritzapi/blob/master/index.js#L482, auch für Steckdosen.

Kleiner Tipp meinerseits: Es müßte schon reichen, in die "case"-Liste hier: https://github.com/dnknth/node-red-contrib-fritzapi/blob/fritz.js#L257 noch das "getTemperature" aufzunehmen - zumindest so aus der einfachen Ansicht heraus.
 
Stimmt, das getTemperature ist auch in der Übersicht für das Dect!200 nicht erwähnt. Das kann gar nicht funktionieren.
Keine Ahnung wo ich das hergedichtet habe.

Aber, du mir mit dem Verweis auf den Code die Brücke zwischen visuellen Nodes und Implementierung geschlagen.
Ab hier wird es klarer, damit sollte ich weiter kommen.

Vielen Dank dafür!
 
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.