Moin Zusammen,
gibt es eigentlich ein Modul das etwas vergleichbares macht wie dieser fritzbox_exporter als Docker?
https://registry.hub.docker.com/r/mxschmitt/fritzbox_exporter/
https://github.com/mxschmitt/fritzbox_exporter
Dort werden über http://fritz.box:49000/igddesc.xml und TR064 bestimmte Metriken abgerufen,
die über das was das FRITZBOX modul hat hinaus gehen, wenn ich es richtig sehe.
Da ich bereits in eine MariaDB logge, würde man kann zusätzliches Prometheus benötigen.
Es gibt auch sehr schöne Grafana Dashboards die darauf basieren: https://grafana.com/grafana/dashboards/12579
Hat sich das schon mal jemand angeschaut?
Der fritzbox_exporter stellt laut git folgende Infos bereit:
Name: urn:schemas-any-com:service:Any:1
WANDevice - FRITZ!Box 7490: urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1
GetCommonLinkProperties
WANAccessType: DSL
Layer1UpstreamMaxBitRate: 1148000
Layer1DownstreamMaxBitRate: 12860000
PhysicalLinkStatus: Up
GetTotalBytesSent
TotalBytesSent: 255710914
GetTotalBytesReceived
TotalBytesReceived: 5037753042
GetTotalPacketsSent
TotalPacketsSent: 3050536
GetTotalPacketsReceived
TotalPacketsReceived: 1346651
GetAddonInfos
ByteSendRate: 0
ByteReceiveRate: 0
PacketSendRate: 0
PacketReceiveRate: 0
TotalBytesSent: 255710914
TotalBytesReceived: 5037753042
AutoDisconnectTime: 0
IdleDisconnectTime: 10
DNSServer1: 1.1.1.1
DNSServer2: 2.2.2.2
VoipDNSServer1: 1.1.1.1
VoipDNSServer2: 2.2.2.2
UpnpControlEnabled: false
RoutedBridgedModeBoth: 1
WANConnectionDevice - FRITZ!Box 7490: urn:schemas-upnp-org:service:WANDSLLinkConfig:1
GetDSLLinkInfo
LinkType: PPPoE
LinkStatus: Up
GetModulationType
ModulationType: ADSL G.lite
GetDestinationAddress
DestinationAddress: NONE
GetATMEncapsulation
ATMEncapsulation: LLC
GetFCSPreserved
FCSPreserved: true
GetAutoConfig
AutoConfig: true
WANConnectionDevice - FRITZ!Box 7490: urn:schemas-upnp-org:service:WANIPConnection:1
X_AVM_DE_GetDNSServer
IPv4DNSServer1: 1.1.1.1
IPv4DNSServer2: 2.2.2.2
GetAutoDisconnectTime
AutoDisconnectTime: 0
GetIdleDisconnectTime
IdleDisconnectTime: 0
X_AVM_DE_GetExternalIPv6Address
ExternalIPv6Address:
PrefixLength: 0
ValidLifetime: 0
PreferedLifetime: 0
GetNATRSIPStatus
RSIPAvailable: false
NATEnabled: true
GetExternalIPAddress
ExternalIPAddress: 1.1.1.1
X_AVM_DE_GetIPv6Prefix
IPv6Prefix:
PrefixLength: 0
ValidLifetime: 0
PreferedLifetime: 0
X_AVM_DE_GetIPv6DNSServer
IPv6DNSServer1:
ValidLifetime1: 2002000000
IPv6DNSServer2:
ValidLifetime2: 199800000
GetConnectionTypeInfo
ConnectionType: IP_Routed
PossibleConnectionTypes: IP_Routed
GetStatusInfo
ConnectionStatus: Connected
LastConnectionError: ERROR_NONE
Uptime: 65386
WANConnectionDevice - FRITZ!Box 7490: urn:schemas-upnp-org:service:WANIPv6FirewallControl:1
GetFirewallStatus
FirewallEnabled: true
InboundPinholeAllowed: false
Was davon benötigts Du denn?
Grüße Jörg
ich misch mich hier mal ein, weil es sich ja um klassisches UPnP handelt u. mit meinem neuen UPNPController die device- u. service-Struktur auch ausgelesen wird 2021-05-26 22:32:11 localIP_49000_3-UDN uuid:75802409-uuidPart2-3-8e6c-uuidPart5
2021-03-12 09:00:54 localIP_49000_3-friendlyName FRITZ!Box Fon WLAN 7390
2021-05-26 22:32:11 localIP_49000_3-location http://localIP:49000/igddesc.xml
2021-03-12 09:00:54 localIP_49000_3-manufacturer AVM Berlin
2021-03-12 09:00:54 localIP_49000_3-modelDescription FRITZ!Box Fon WLAN 7390
2021-03-12 09:00:54 localIP_49000_3-modelName FRITZ!Box Fon WLAN 7390
2021-03-12 09:00:54 localIP_49000_3-modelNumber avm
2021-03-14 15:04:01 localIP_49000_3-presence online
2021-03-12 09:00:54 localIP_49000_3-zs-any1 urn:schemas-any-com:service:Any:1
2021-05-24 14:22:07 localIP_49000_3-zs-l2tpv31 urn:schemas-any-com:service:l2tpv3:1
2021-03-12 09:00:54 localIP_49000_3-zz uuid:uuidPart1-3-8e6b-uuidPart5
2021-03-12 09:00:54 localIP_49000_3-zz-UDN uuid:uuidPart1-3-8e6b-uuidPart5
2021-03-12 09:00:54 localIP_49000_3-zz-friendlyName WANDevice - FRITZ!Box Fon WLAN 7390
2021-03-12 09:00:54 localIP_49000_3-zz-location http://localIP:49000/igddesc.xml
2021-03-12 09:00:54 localIP_49000_3-zz-manufacturer AVM Berlin
2021-03-12 09:00:54 localIP_49000_3-zz-modelDescription WANDevice - FRITZ!Box Fon WLAN 7390
2021-03-12 09:00:54 localIP_49000_3-zz-modelName WANDevice - FRITZ!Box Fon WLAN 7390
2021-03-12 09:00:54 localIP_49000_3-zz-modelNumber avm
2021-03-12 09:00:54 localIP_49000_3-zz-presence online
2021-05-27 10:41:27 localIP_49000_3-zz-zs-WANCommonIFC1 subscribed
2021-03-12 09:00:54 localIP_49000_3-zz-zz uuid:uuidPart1-3-8e6a-uuidPart5
2021-03-12 09:00:54 localIP_49000_3-zz-zz-UDN uuid:uuidPart1-3-8e6a-uuidPart5
2021-03-12 09:00:54 localIP_49000_3-zz-zz-friendlyName WANConnectionDevice - FRITZ!Box Fon WLAN 7390
2021-03-12 09:00:54 localIP_49000_3-zz-zz-location http://localIP:49000/igddesc.xml
2021-03-12 09:00:54 localIP_49000_3-zz-zz-manufacturer AVM Berlin
2021-03-12 09:00:54 localIP_49000_3-zz-zz-modelDescription WANConnectionDevice - FRITZ!Box Fon WLAN 7390
2021-03-12 09:00:54 localIP_49000_3-zz-zz-modelName WANConnectionDevice - FRITZ!Box Fon WLAN 7390
2021-03-12 09:00:54 localIP_49000_3-zz-zz-modelNumber avm
2021-03-12 09:00:54 localIP_49000_3-zz-zz-presence online
2021-05-27 10:42:03 localIP_49000_3-zz-zz-zs-WANDSLLinkC1 subscribed
2021-05-27 10:42:39 localIP_49000_3-zz-zz-zs-WANIPConn1 subscribed
2021-05-27 10:43:10 localIP_49000_3-zz-zz-zs-WANIPv6Firewall1 subscribed
Wie man sieht, versuchte ich die services zu subscriben. Das ging aber in die Hose(sonst wäre der Reading-Inhalt von z.B. localIP_49000_3-zz-zz-zs-WANDSLLinkC1 ein anderer :-[). Ist aber ein interessanter case, um mein Modul zu korrigieren(liegt vermutlich daran, dass auf dem selben Port(49000) mehrere UPnP-devices(..._3... vorhanden sind).
Wenn ich meinen Fehler korrigiert habe, könnte man in folgenden Schritten weitermachen:
1. bei erfolgreicher subscription dem Log die Daten entnehmen, die die Fritte "pushed".
2. ein einfaches Modul(2-Stufenmodell;vergleichbar meinem DLNAController) entwickeln, welches die interessanten Informationen als readings bereitstellt.
3. das Modul um set-Befehle erweitern, um weitere Informationen zu "pollen" oder auch um evtl. Parameter zu setzen.
Grüße Markus
@Jörg: gerne alle Werte als Readings, die das Fritzbox Modul bisher nicht hat, aber im fritz_exporter entahlten sind. Wo würdest du die und wie einbauen?
@Markus: mit welchem Modul experimentierst du da gerade?
Es gibt ja verschiedene Versionen des fritz_exporter. Ich habe jetzt mit mehreren als Docker herumprobiert, bekomme aber nur den von mxschmitt ans Laufen. Er scheint es aber nicht mehr zu betreuen und leider finde ich kein passendes Grafana Dashboard dazu.
Zitat von: Tungsten am 27 Mai 2021, 17:13:21
@Jörg: gerne alle Werte als Readings, die das Fritzbox Modul bisher nicht hat, aber im fritz_exporter entahlten sind. Wo würdest du die und wie einbauen?
Bisher kennt das FritzBox Modul keine UPnP Abfragen. Könnte man aber integrieren.
@Markus, wäre dann ein Anwendungsfall für Dein UPNPDevice. Andererseits sind die SOAP Abfragen auch gut in das FritzBox-Modul einbaubar.
Grüße Jörg
Hallo Ihr Zwei,
schön, dass zumindest ein Anfangsinteresse besteht.
Zitatmit welchem Modul experimentierst du da gerade?
dem UPNPController (https://forum.fhem.de/index.php/topic,118837.msg1132815.html#msg1132815)
Zitat@Markus, wäre dann ein Anwendungsfall für Dein UPNPDevice. Andererseits sind die SOAP Abfragen auch gut in das FritzBox-Modul einbaubar.
Nicht UPNPDevice(in meinem Sprachgebrauch) Das ist bei mir ein virtuelles/logisches in FHEM definiertes UPNP device, welches kein physisches Pendant hat.
Der UPNPController setzt auf dem UPnP-Standard auf und hat folgende Funktionalitäten:
- presence-Erkennung anhand von alive- u. byebye-messages
- search-Funktionalität(initial und bei Bedarf), um UPnP devices(ungleich UPNPDevice ;)) im lokalen Netz zu finden
- Darstellung von device-Attributen, Liste der services eines device
- subscribe-(renewal-,unsubscribe-)Funktion, um events zu "abonnieren"(keine Darstellung der events im FHEM-device, sondern lediglich je nach verbose-level Infos im Log)
- dispatch von messages an Module 2. Stufe(bisher nur der DLNAController)
Und am Bsp. des DLNAControllers, wie ein Modul der 2. Stufe sich den UPNPController zunutze machen kann
- anlegen von FHEM-devices per autocreate
- automatische subscription von services(einfacher Aufruf des UPNPControllers)
- Interpretation u. Darstellung der vom UPNPController dispatchten messages in readings
- syntaktische Befehlsdefinition, aber "technische" Übertragung durch Übergabe an den UPNPController
Lange Rede kurzer Sinn: Man kann sich den UPNPController zu nutze machen, ohne UPnP verstehen bzw. technisch umsetzen zu müssen. Bis dato schien mir das mächtige FritzBox-Modul nicht wirklich ein Kandidat dafür, da dort ja andere Techniken zur Informationsbeschaffung und Befehlsausführung genutzt werden.
Zitatgerne alle Werte als Readings, die das Fritzbox Modul bisher nicht hat, aber im fritz_exporter entahlten sind. Wo würdest du die und wie einbauen?
Da hab ich so meine Bedenken. Die Latte der readings ist ja jetzt schon recht lang und unübersichtlich. Ich werfe mal einen Blick in den fritz_exporter....
Grüße Markus
Ich kenne den fritzbox_exporter nicht. Ich nutze ein anderes Script das ich in Telegraf eingebunden habe. Losgelöst von Fhem gehen die DAten in Influx und Darstellung in Grafana.
Im Github ist etwas Doku, vielleicht kann man auch vom Script was übernehmen.
Es läuft bei mir seit längerem zuverlässig. Ich gehe davon aus, dass die selbe Schnittstelle der Fritzbox verwendet wird, es sind zumindest viele Informationen verfügbar.
https://github.com/jhubig/FritzBoxShell
Hab meinen Fehler gefunden. Läuft im Testsystem.
Bei welchem der vielen servicesMeineIP_49000-zs-AVM_ServerStatus urn:avm.de:service:AVM_ServerStatus:1
MeineIP_49000-zs-ConnectionManager urn:schemas-upnp-org:service:ConnectionManager:1
MeineIP_49000-zs-ContentDirectory urn:schemas-upnp-org:service:ContentDirectory:1
MeineIP_49000-zs-X_MS_MediaReceiverRegistrar urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1
MeineIP_49000_1-zs-l2tpv31 urn:schemas-any-com:service:l2tpv3:1
MeineIP_49000_2-zs-fritzbox urn:schemas-any-com:service:fritzbox:1
MeineIP_49000_3-zs-any1 subscription committed, timeout: 1800
MeineIP_49000_3-zz-zs-WANCommonIFC1 urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1
MeineIP_49000_3-zz-zs-any1 subscribed
MeineIP_49000_3-zz-zz-zs-WANDSLLinkC1 SID: uuid:8c2ce90a-1dd2-11b2-8f6f-960ef1772485 timeout: 1800 property: AutoConfig
MeineIP_49000_3-zz-zz-zs-WANIPConn1 SID: uuid:c56cce24-1dd1-11b2-8f70-960ef1772485 timeout: 1800 property: PortMappingNumberOfEntries
MeineIP_49000_3-zz-zz-zs-WANIPv6Firewall1 urn:schemas-upnp-org:service:WANIPv6FirewallControl:1
MeineIP_49000_4-zs-any1 urn:schemas-any-com:service:Any:1
MeineIP_49000_4-zz-zs-WANCommonIFC1 urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1
MeineIP_49000_4-zz-zz-zs-WANDSLLinkC1 urn:schemas-upnp-org:service:WANDSLLinkConfig:1
MeineIP_49000_4-zz-zz-zs-WANIPConn1 urn:schemas-upnp-org:service:WANIPConnection:2
MeineIP_49000_4-zz-zz-zs-WANIPv6Firewall1 urn:schemas-upnp-org:service:WANIPv6FirewallControl:1
macht eine subscription Sinn(erwartete Änderungen/Ereignisse) ? :-\
Grüße Markus
Edit:
- subscription-prozess funktioniert anstandslos nach 24h
- service WANDSLLinkC1 liefert keine events; bei der subscription
2021.05.29 19:44:43 5: UPNPController: Received event: by MeineIP_49000_3-zz-zz-zs-WANDSLLinkC1 UPnP::ControlPoint::Service=HASH(0x4500d28)
$VAR1 = 'AutoConfig';
$VAR2 = '0';
$VAR3 = 'LinkStatus';
$VAR4 = 'Up';
- interessanter WANIPConn1
- subscription $VAR1 = 'PortMappingNumberOfEntries';
$VAR2 = '0';
$VAR3 = 'PossibleConnectionTypes';
$VAR4 = 'IP_Routed';
$VAR5 = 'ExternalIPAddress';
$VAR6 = '88.76.26.xyz';
$VAR7 = 'ConnectionStatus';
$VAR8 = 'Connected';
$VAR9 = 'ExternalIPv6Address';
$VAR10 = '';
- heute Nacht beim IP-Wechsel
2021.05.30 03:01:16 5: UPNPController: Received event: by MeineIP_49000_3-zz-zz-zs-WANIPConn1 UPnP::ControlPoint::Service=HASH(0x44f6b38)
$VAR1 = 'ConnectionStatus';
$VAR2 = 'Connecting';
2021.05.30 03:24:31 5: UPNPController: Received event: by MeineIP_49000_3-zz-zz-zs-WANIPConn1 UPnP::ControlPoint::Service=HASH(0x44f6b38)
$VAR1 = 'ConnectionStatus';
$VAR2 = 'Disconnected';
2021.05.30 03:24:31 5: UPNPController: Received event: by MeineIP_49000_3-zz-zz-zs-WANIPConn1 UPnP::ControlPoint::Service=HASH(0x44f6b38)
$VAR1 = 'ConnectionStatus';
$VAR2 = 'Connecting';
2021.05.30 03:24:31 5: UPNPController: Received event: by MeineIP_49000_3-zz-zz-zs-WANIPConn1 UPnP::ControlPoint::Service=HASH(0x44f6b38)
$VAR1 = 'ExternalIPAddress';
$VAR2 = '94.221.104.xyz';
2021.05.30 03:24:31 5: UPNPController: Received event: by MeineIP_49000_3-zz-zz-zs-WANIPConn1 UPnP::ControlPoint::Service=HASH(0x44f6b38)
$VAR1 = 'ConnectionStatus';
$VAR2 = 'Connected';
2021.05.30 03:58:48 5: UPNPController: Received event: by MeineIP_49000_3-zz-zz-zs-WANIPConn1 UPnP::ControlPoint::Service=HASH(0x44f6b38)
$VAR1 = 'ConnectionStatus';
$VAR2 = 'Connecting';
(fragt mich nicht, was da um 3:01 u. 3:58 passiert ist :-\. 3:24 fand der IP-Wechsel statt. Das FritzBox-Modul hat es erst 4' später "bemerkt". :) )
@Jörg: Hab ich das richtig verstanden, dass TR-064 "nur" auf UPnP aufsetzt u. somit vergleichbar DLNA zu betrachten ist ? War mir bisher zumindest nicht klar.
Wann u. wie soll Dein fork in das offizielle Modul einfließen ? Kontakt mit tupol ?