Closed enkama closed 2 years ago
It's unlikely that the service is called something else on your router. It's more likely that AVM may have removed the service. At least I'm unable to find the according documentation in the current AVM publications. Also some services can be different for DSL, cable or fiber connections. May be it's time to go into this again. Edit: may be that labeled boxes are customized and also differ. But that's guessing – I don't know it.
I also think that this is due to a customized firmware from some connection provider and this is not a standard firmware behavior
@kbr as we are finding more devices with those different names, would you consider a patch that will handle both ? Something like:
if "WANCommonIFC1" in services:
call WANCommonIFC1
else:
call WANCommonInterfaceConfig1
Simone
These are two different services with partly different information. Back in bitbucket times the wrong service has been used in the library providing strange results. However I don't remember why and can't find the according documentation in the AVM-files. So we need some more investigation here.
As documented here, I am experiencing the same issue on a vanilla Fritzbox 7590 using the latest labor firmware. Are there any new findings here @kbr?
The two services have attribute-sets just partly overlapping. So i.e. calling the action GetAddonInfos
on the service WANCommonIFC1
and switching internal to WANCommonInterfaceConfig1
in case that the former service is not available, the call will result in a FritzActionError
, what is wrong.
Same with the WANIPConn1 / WANIPConnection1
services where is the situation, that actions with the same name can return different results, like GetTotalBytesReceived
can return the bytes received since the last sync or the last reboot.
A FritzServiceError
(inherited from KeyError
) indicates that the router does not provide this API. I don't know why this happens on routers of the same series (or at least with the same labels), but this is an issue that should not get handled on the interface level, because it may return wrong results and also the interface has no idea about the intention of the application.
I had this error in my logs with Home Assistant and Fritzbox 7530 (firmware 7.29, unbranded/retail DSL version). It was weird because I have this very similar setup in two locations, but only one location showed the error.
I compared my configs and it appears to be this setting is the cause for it, if you turn it off:
Statusinformationen über UPnP übertragen
Found in network settings, translation in English approx. "Transmit status information via UPnP"
As soon as you turn it on & restart HA, the log errors disappear, two new UPnP devices are found. And new sensors are available on the Fritzbox integration, which were previously missing (e.g. current download throughput).
Hi @chk1, great finding !
Let's see if this settings fix it for everyone. Fingers crossed.
Simone
To activate the TR-064 API, the UPnP flag has to get set. This is known and documented.
Regarding the issue itself: the service WANIPConn1
allows access to the IPv6 settings. To make this service available, activate IPv6:
"Internet -> Account Information -> IPv6 -> IPv6 Support enabled"
I close this, because the issue is triggered by the settings.
Found in network settings, translation in English approx. "Transmit status information via UPnP"
Do you mind providing the output of http://fritz.box:49000/x_upnpSCPD.xml ? With both the flag on and off.
Thx,
Simone
Found in network settings, translation in English approx. "Transmit status information via UPnP"
Do you mind providing the output of http://fritz.box:49000/x_upnpSCPD.xml ? With both the flag on and off.
Thx,
Simone
Should it be changing when changing it from on to off? If yes it stays the same for me.
Both times it is
<scpd>
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>GetInfo</name>
<argumentList>
<argument>
<name>NewEnable</name>
<direction>out</direction>
<relatedStateVariable>Enable</relatedStateVariable>
</argument>
<argument>
<name>NewUPnPMediaServer</name>
<direction>out</direction>
<relatedStateVariable>UPnPMediaServer</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>SetConfig</name>
<argumentList>
<argument>
<name>NewEnable</name>
<direction>in</direction>
<relatedStateVariable>Enable</relatedStateVariable>
</argument>
<argument>
<name>NewUPnPMediaServer</name>
<direction>in</direction>
<relatedStateVariable>UPnPMediaServer</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable sendEvents="no">
<name>Enable</name>
<dataType>boolean</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>UPnPMediaServer</name>
<dataType>boolean</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
</serviceStateTable>
</scpd>
That's fine, I posted the description request and not the query itself. My fault.
In the mean time I found the way to programmatically check the flag: #153
Simone
Hey. So on the newest Homeassistant version using fritzconnection library I am gettin this error messages:
On
fritzconnection -s -i 192.168.178.1
I am getting the following:So I guess the service is called something else on my router. What can I do about that. Its a Fritbox 7590 on firmware 7.29. Related HA Issue: https://github.com/home-assistant/core/issues/63725