nebellicht
Goto Top

Fritz Dect 200 Messdaten abholen über .ps1

Hallo,

hat es schon mal jemand geschafft, die IST Verbrauchswerte (Leistung, Watt) von der DECT 200 (Steckdose von AVM) zeitnah abzugreifen ?

Ich habe es soweit hinbekommen an die Daten über VBA zu kommen... nur scheint es hier eine extrem starke Latenz (Zeitverzögerung) zu geben.
Zudem schafft es meine Variante mein EXCEL lahmzulegen, bis die Messdatenaufnahme abgeschlossen ist...
daher wäre mein Wunsch ein Powershellskript damit zu beauftragen um die Daten (6 Sekündlich) in eine Textdatei (CSV) zu schreiben.

Gruß

p.s.: Folgendes Tool, nimmt die Temperaturwerte auf (Soetwas mit Klartextlogdatei für die Leistung wäre super !)
https://www.ip-phone-forum.de/threads/fritz-temperatur-kleines-tool-f%C3 ...
und weiteres konnte ich zusammentragen
https://www.heise.de/select/ct/2016/7/softlinks/yd1b?wt_mc=pred.red.ct.c ...
https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AVM_T ...
https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AHA-H ...
Auch eine gute Seite (geht mit ps und php... gehts nicht auch ohne d.h. weniger anfälig???)
http://www.mengelke.de/Projekte/FritzBox-Tools#smarthome
kann das jemand ergänzen ?


p.s.: Eine Kategorie SMART HOME könnte hier (ADMINSTRATOR SEITEN) noch fehlen.

Content-Key: 593308

Url: https://administrator.de/contentid/593308

Printed on: April 25, 2024 at 13:04 o'clock

Member: colinardo
colinardo Aug 04, 2020, updated at Jan 06, 2021 at 07:08:29 (UTC)
Goto Top
Servus @Nebellicht ,
für die Abfrage von Daten einer Fritzbox über die Powershell habe ich hier bereits eine Anleitung verfasst:
Powershell: FritzBox über TR-064 im Netzwerk konfigurieren und auslesen
Da ich hier aber kein Smarthome-Gerät von AVM bereitstehen habe kann ich dir nur eine ungetestete Funktion zum Abfragen deines DECT200 schreiben

Nehme den Code aus obiger Anleitung, und füge folgende Funktion unten an
function Get-FBSmartHomeInfos([string]$devicename){
    $resp = New-Request -urn 'urn:dslforum-org:service:X_AVM-DE_Homeauto:1' -action 'GetSpecificDeviceInfos' -parameter @{NewAIN = $devicename}  
    $resp.envelope.body.'GetSpecificDeviceInfosResponse'  
}
Dann solltest du mit einem Aufruf von
Get-FBSmartHomeInfos -devicename "NameDesDevices"  
die bereitgestellten Informationen deines Gerätes abrufen können.

Weitere Infos zu den Smarthome-Funktionen
https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_hom ...

Probier das mal. Wenn es beim ersten Anhieb nicht will können wir das gerne auch per Teamviewer korrigieren falls du es nicht selbst hinbekommst.

Wenn das klappt kann ich dir dann schnell noch einen Log in eine CSV ergänzen.

Grüße Uwe

EDIT: Tippfehler im Code korrigiert
Member: Nebellicht
Nebellicht Aug 04, 2020 at 09:02:59 (UTC)
Goto Top
Hey - cool! Kannst du das auch noch für die Leistung hinbekommen, denn das suche ich !
Member: colinardo
colinardo Aug 04, 2020 updated at 09:29:53 (UTC)
Goto Top
Zitat von @Nebellicht:

Hey - cool! Kannst du das auch noch für die Leistung hinbekommen, denn das suche ich !
Hab die Funktion mal so angepasst das alle zurückgelieferten Variablen ausgelesen werden (Aber wie gesagt kann es hier mangels Device nicht testen).

  • NewMultimeterPower für die aktuelle Leistung in 1/100W
oder
  • NewMultimeterEnergy für die kumulierte Energie in Wh

Eine Liste was die Funktion GetSpecificDeviceInfos zurück gibt findest du hier ("out" Variablen)

https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_hom ...

Lies dir meine Anleitung oben mal genau durch dann kannst du dir anschließend auch selbst Funktionen bauen face-wink.
Member: Nebellicht
Nebellicht Aug 04, 2020 at 12:16:55 (UTC)
Goto Top
Vielen Dank. Bisher kapiere ich vom Code nicht wirklich viel - liegt aber an mir face-smile
Werde mich damit demnächst beschäftigen...
Wirkt alles sehr interessant auf mich. Gruß
Member: mschubi72
mschubi72 Jan 05, 2021 at 22:53:45 (UTC)
Goto Top
Da ich gleich zwei der DECT Schaltdosen habe, gleich mal getestet.

Die Funktion muss nur leicht abgewandelt werden. Wichtig ist bei der Device ID, dass das Leerzeichen in der Zahl erhalten bleibt.

Die Funktion habe ich abgewandelt und direkt am Ende des Scriptes eingefügt.
function Get-FBSmartHomeInfos([string]$devicename){
    $resp = New-Request -urn 'urn:dslforum-org:service:X_AVM-DE_Homeauto:1' -action 'GetSpecificDeviceInfos' -parameter @{NewAIN = $devicename}  
    return $resp.envelope.body.'GetSpecificDeviceInfosResponse'  
    # $resp.envelope.body.'X_AVM-DE_GetSpecificDeviceInfosResponse' 
}

$resp1 = Get-FBSmartHomeInfos "11630 0103281"  
$resp2 = Get-FBSmartHomeInfos "08761 0264759"  
// 1/100 Watt; Wh, 1/10°C
// Schreck, schon 1184 KWh verbraucht, hintere Dose zum Test resetet  
$resp1 | select NewDeviceName,NewMultimeterIsEnabled,NewMultimeterPower, NewMultimeterEnergy, NewTemperatureCelsius
$resp2 | select NewDeviceName,NewMultimeterIsEnabled,NewMultimeterPower, NewMultimeterEnergy, NewTemperatureCelsius

und gibt in meinem Beispiel folgende Werte aus:

NewDeviceName : FRITZ!DECT 200 #2 hinten
NewMultimeterIsEnabled : ENABLED
NewMultimeterPower : 0
NewMultimeterEnergy : 0
NewTemperatureCelsius : 205

NewDeviceName : FRITZ!DECT 200 #1 vorn
NewMultimeterIsEnabled : ENABLED
NewMultimeterPower : 17616
NewMultimeterEnergy : 1184931
NewTemperatureCelsius : 185


PS: Danke an colinardo für dieses tolle Script!

Herzliche Grüße,
Mike
Member: MKL-DE
MKL-DE Apr 11, 2022 at 08:04:48 (UTC)
Goto Top
Hallo zusammen,

bin PS Anfänger
doch zuerst ebenfalls Danke an colinardo!

Habe vor einiger Zeit schon einmal mit Powershell: FritzBox über TR-064 im Netzwerk gelesen und auch ein bischen probiert ( Telefonverbindungen auslesen ) und bin heute auf die FRITZ!DECT bzw Messdaten abholen gestolpert.
Da ich davon einige Geräte im Einsatz habe möchte diese gerne über PS auslesen scheitere aber an:

New-Request : The term 'New-Request' is not recognized as the name of a cmdlet

wie kann ich das lösen?


Grüße Martin