Hauptmenü

Devolo über/mit fhem?

Begonnen von gestein, 04 Januar 2020, 11:54:28

Vorheriges Thema - Nächstes Thema

gestein

Hallo,

ich habe mehrere Devolo dLan-Adapter (dLAN 500 duo+ und dLAN 500 AV Wireless+).
Kennt jemand eine Lösung um die in fhem einzubinden bzw. die Signalqualität auszulesen?

Danke, lg, Gerhard

Helmi55

Ich schließe mich an. Habe Magic 2 im Einsatz und es wäre interessant über FHem zu erfahren wenn die Verbindung z.B. In die Garage ausgefallen ist
Habe RFHEM in Verwendung, aber hier kommt es manchmal zu einem kurzen Verlust der IP und dann kommt eine Fehlermeldung
Nice Eve
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Helmi55

Hallo
habe das nochmals überschlafen - kann ja nicht funktionieren - es gibt ja zum dLan keine Schnittstelle. Außer du prüfst ob das WLAN Signal vorhanden ist.
Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

gestein

Hallo Helmut,

über das Devolo Cockpit bekommt man ja einige Informationen angezeigt.
Wie die das machen, weiß ich noch nicht.
Auch im Netz finde ich dazu nicht viel (oder ich suche falsch).

Und zumindest die Devolos mit WLan bekommen eine IP-Adresse.

Weißt Du, ob und wie man ein Log-File schreiben lassen kann?
Von Zeit zu Zeit bricht nämlich die Signalqualität zusammen und dann sind auch meine Geräte hinter dem Devolo nicht mehr erreichbar.

lg, Gerhard

ph1959de

Zitat von: gestein am 14 Januar 2020, 11:36:02
über das Devolo Cockpit bekommt man ja einige Informationen angezeigt.
Die Fritz!Boxen bekommen auch zumindest einige Basis-Informationen über die Devolos raus, die im verwalteten Netzwerk stecken.

Was in der Fritz!-Oberfläche im Detail über AVM DLan Adapter angezeigt wird, weiss ich nicht, vermutlich aber ähnlich Detailliertes wie über die Devolos in deren Cockpit (wer kann das bestätigen oder widerlegen?).

Ob AVM nicht mehr rausbekommt über die Devolos oder nicht mehr anzeigen will (damit die AVM Geräte als besser verwaltbar erscheinen), wäre dann die nächste Frage.
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

HeikoGr

#5
Ich hatte da auch schonmal recherchiert.
Ein fertigs Modul gibt es nicht.

Es gibt für Linux Systeme ein Tool welches zumindest (ältere) Qualcomm Atheros Chips auslesen kann.
Soweit ich weiß bauen devolo/AVM auf Qualcomm Technik.

https://github.com/qca/open-plc-utils

@Helmi55: Du siehst, es gibt sehr wohl eine Schnittstelle. Die Geräte müssen nur im gleichen Netzwerk sein.

Ich hatte das auch schon auf meinem Raspberry installiert und es hat funktioniert. Hab's aber nicht weiter verfolgt.

Ergebnis von damals soweit ich mich erinnere:
Chips <= QCA7420 (Devolo und AVM der Klasse bis 500Mbit) werden sehr gut unterstützt
Chips >   QCA7420 (Devolo und AVM der Klasse ab 1000Mbit; Homeplug AV2) werden nur rudimentär unterstützt

HeikoGr

Starthilfe:
Tool wie auf github beschrieben compilieren und installieren.

Der Befehl plctool -i eth0 -m zeigt mir dann meine Geräte und die aktuelle Geschwindigkeit an.


gestein

#7
Toll. Danke für die Starthilfe.
Das plctool probiere ich gleich mal aus.

Im Devolo-Tool Cockpit werden eigentlich nur die gefundenen Adapter und die Verbindungsgeschwindigkeiten untereinander angezeigt - zumindest bei mir.
Dann kann man noch ein paar Einstellungen treffen und bei den Adaptern mit WLan wird noch deren Homepage aufgerufen auf der man ein paar weitere Einstellungen treffen kann.

Signalqualität oder ähnliches wird nicht angezeigt. Oder ich habe es noch nicht gefunden.

lg, Gerhard

HeikoGr

Das plc-tool hat gegenüber dem Cockpit den Vorteil OEM-Anbieter (devolo/AVM/TPLink) neutral zu sein.
Rudimentäre Informationen soll es auch anderen Chips (zum Beispiel Broadcom) entlocken können

Außerdem gibt es die Informationen auf der Shell aus - somit dürfe es einfacher sein die Infos in FHEM zu bekommen :-D
Die Signalqualität habe ich im plctool auch noch nicht entdeckt (hab auch mal den Quellcode ein bisschen durchgeguckt  - aber nix entsprechendes entdeckt.

Fritzbox gibt die gleichen Informationen aus wie Devolo Cockpit und plctool

Das einzig brauchbare scheint tatsächlich die Verbindungsgeschwindigkeit zu sein.

gestein

#9
Das Tool funktioniert tatsächlich bei meinen Devolos.

Wenn ich
sudo ./plctool -i wlan0 -m
wlan0 XX:XX:XX:XX:XX:XX Fetch Network Information
wlan0 XX:XX:XX:XX:XX:XX Found 1 Network(s)

source address = XX:XX:XX:XX:XX:XX

        network->NID = XX:XX:XX:XX:XX:XX
        network->SNID = 5
        network->TEI = 171
        network->ROLE = 0x00 (STA)
        network->CCO_DA = XX:XX:XX:XX:XX:XX
        network->CCO_TEI = 2
        network->STATIONS = 2

                station->MAC = XX:XX:XX:XX:XX:XX
                station->TEI = 2
                station->BDA = XX:XX:XX:XX:XX:XX
                station->AvgPHYDR_TX = 116 mbps Primary
                station->AvgPHYDR_RX = 113 mbps Primary

                station->MAC = XX:XX:XX:XX:XX:XX
                station->TEI = 3
                station->BDA = XX:XX:XX:XX:XX:XX
                station->AvgPHYDR_TX = 130 mbps Primary
                station->AvgPHYDR_RX = 161 mbps Primary


Mit "sudo ./plctool -i wlan0 -m [MAC]" kann man dann auch die Geschwindigkeiten relativ zu den anderen abfragen.
Mit "sudo ./plctool -i wlan0 -I [MAC]" bekommt man weitere Infos zum jeweiligen Adapter.
        PIB 0-0 8628 bytes
        MAC BC:F2:AF:E9:CD:E4
        DAK 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 (none/secret)
        NMK YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY
        NID XX:XX:XX:XX:XX:XX
        Security level 0
        NET
        MFG devolo dLAN 500 duo [MT2584]
        USR dLan_Sonos_TW
        CCo Auto
        MDU N/A


Mal schauen was das alles heißt und wie man es in fhem einbinden kann.

lg, Gerhard

gestein

Hallo,

ich habe mir mal eine recht simple Lösung zum Einbinden der Devolos in fhem überlegt.
Ist momentan sehr rudimentär und über perl geht es wahrscheinlich um einiges leichter bzw. schöner.
Es gibt auch noch keinerlei Fehlerbehandlung.
Aber momentan reicht es mir so.
Mal sehen, ob ich das noch umschreibe. Dazu müsste ich mehr freie Zeit haben  ;)
Jede Hilfe ist herzlich willkommen ...

Zuerst habe ich mir das paket "open-plc-utils" von github geclont und installiert.
plctool liefert bei mir folgende Ausgabe:
udo ./plc/plctool -i wlan0 -m
wlan0 00:00:00:00:00:01 Fetch Network Information
wlan0 00:00:00:00:00:02 Found 1 Network(s)

source address = 00:00:00:00:00:01

        network->NID = 00:00:00:00:00:03
        network->SNID = 5
        network->TEI = 171
        network->ROLE = 0x00 (STA)
        network->CCO_DA = 00:00:00:00:00:04
        network->CCO_TEI = 2
        network->STATIONS = 2

                station->MAC = 00:00:00:00:00:04
                station->TEI = 2
                station->BDA = 00:00:00:00:00:05
                station->AvgPHYDR_TX = 125 mbps Primary
                station->AvgPHYDR_RX = 107 mbps Primary

                station->MAC = 00:00:00:00:00:06
                station->TEI = 3
                station->BDA = 00:00:00:00:00:07
                station->AvgPHYDR_TX = 130 mbps Primary
                station->AvgPHYDR_RX = 160 mbps Primary

Ich habe drei Devolos

Zuerst habe ich mir einfach eine script-Datei erstellt (bei mir test_Devolos.sh):
#!/bin/bash
i=1
while read l1 ;do
   if [[ $l1 =~ source ]];then
      set -- $l1
      perl /opt/fhem/fhem.pl 7072 "setreading dyDevolos source $4"
   fi
   if [[ $l1 =~ MAC ]];then
      set -- $l1
      perl /opt/fhem/fhem.pl 7072 "setreading dyDevolos MAC_$i $3"
   fi
   if [[ $l1 =~ AvgPHYDR_TX ]];then
      set -- $l1
      perl /opt/fhem/fhem.pl 7072 "setreading dyDevolos AvgPHYDR_TX_$i $3"
   fi
   if [[ $l1 =~ AvgPHYDR_RX ]];then
      set -- $l1
      perl /opt/fhem/fhem.pl 7072 "setreading dyDevolos AvgPHYDR_RX_$i $3"
      ((i=i+1))
   fi
done < <(sudo open-plc-utils/plc/plctool -i wlan0 -m 2> /dev/null)

Die Datei baut darauf auf, dass immer die gleiche Ausgabe von plctool kommt.

Dann habe ich in fhem ein dummy und die passende log-Datei angelegt.
defmod dyDevolos dummy
attr dyDevolos room Devolo
attr dyDevolos userReadings source,MAC_1,MAC_2,AvgPHYDR_TX_1,AvgPHYDR_TX_2,AvgPHYDR_RX_1,AvgPHYDR_RX_2

defmod FileLog_Devolos FileLog ./log/Devolos-%Y.log dyDevolos:.*
attr FileLog_Devolos logtype text
attr FileLog_Devolos room Devolo


Über crontab starte ich nun das script automatisch, damit werden die Werte für die Übertragungsgeschwindigkeiten in das Dummy geschrieben.
Auch ein Plot ist kein Problem mehr.

Vielleicht hilft es jemanden.
Oder es kommt jemand noch auf eine andere Idee.

lg, Gerhard

HeikoGr

sehr gut.
Das ist schonmal weit mehr als ich derzeit geschafft hätte! DANKE

werde ich mal ausprobieren.

bei mir läuft das plctool übrigens auch ohne sudo.

gestein

Noch etwas isst mir aufgefallen:
Ich habe insgesamt 3 Devolos; einer davon mit WLAN.

Von dem kann ich mit dem plctool keine zusätzlichen Informationen abfragen.
Da kommt immer eine Fehlermeldung.

Normalerweise kann man mit "plctool -i wlan0 -m" die Netzstruktur abfragen (mit der Standardknoten als Source) bzw. "plctool -i wlan0 -m <MAC>" (mit <MAC> als source).
Mit "plctool -i wlan0 -I <MAC>" bekommt man Zusatzinformationen, z.B.:
sudo open-plc-utils/plc/plctool -i wlan0 -I 00:00:00:00:00:04
        PIB 0-0 8628 bytes
        MAC 00:00:00:00:00:04
        DAK 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 (none/secret)
        NMK 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:01
        NID 00:00:00:00:00:02
        Security level 0
        NET
        MFG devolo dLAN 500 duo [MT2584]
        USR dLan_Sonos_TW
        CCo Auto
        MDU N/A


Nur bei dem Devolo mit dem WLAN klappt das nicht.
Fehlermeldung:
wlan0 00:00:00:00:00:04 Module not available in NVM or Memory (0x32): Device refused request
Diese MAC wird nämlich auch im WLAN verwendet.

lg, Gerhard

gestein

Hallo HeikoGr,

das script ist halt noch Bastelei. Da musst Du einiges anpassen.
Das sudo mache ich beim Testen immer - ist eine Angewohnheit von mir  ;)

lg, Gerhard

HeikoGr

bist du dir sicher, dass es die selbe mac-Adresse ist?
Bei mir hat der Powerline Wifi-Adapter (AVM Fritz!Powerline 1260E) 2 Mac Adressen.

Eine für den Poweline Chip: xx.xx.xx.xx.:x8:14
und eine für das WLAN: xx.xx.xx.xx.x8:17