ok logisch, weil vorher die exception fliegt.. das ist aber direkt ein fehler der Requests Lib an der stelle, weil diese keine Verbindung zu Deiner Box hinbekommt.. Die Frage ist, ob man auf Pluginebene da noch groß was untersuchen kann..
Gib vielleicht mal ALLE parameter der post Methode aus?!
self.logger.debug("%s %s %s %s %s %s" % (url, soap_data, self._timeout, headers, self._fritz_device.get_user(), self._fritz_device.get_password(), self._verify))
Ankündigung
Einklappen
Keine Ankündigung bisher.
AVM Plugin
Einklappen
X
-
Zitat von psilo Beitrag anzeigenbau mal in der Methode _update_fritz_device_info des Plugins das logging hier ein - error damit es auf jdn fall bei dir ausgegeben wird:
Code:if "dev_info_" + action not in self._response_cache:[INDENT]try:[/INDENT][INDENT=2]response = self._session.post(url, data=soap_data, timeout=self._timeout, headers=headers, auth=HTTPDigestAuth(self._fritz_device.get_user(), self._fritz_device.get_password()), verify=self._verify)[/INDENT][INDENT=2]self.logger.debug('Response: {}'.format(response.content))[/INDENT][INDENT]except Exception as e:[/INDENT][INDENT=2]if self._fritz_device.is_available():[/INDENT][INDENT=3]self.logger.error("Exception when sending POST request: %s" % str(e))[/INDENT][INDENT=3]self.set_device_availability(False)[/INDENT][INDENT=2]return[/INDENT]
Mit einer Konfig in der plugin.yaml, die ein Verbindung vermöglicht, kommt im Log:
Code:plugins.avm Response: b'<?xml version="1.0"?>\n<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">\n<s:Body>\n<u:GetInfoResponse xmlns:u="urn:dslforum-org:service:DeviceInfo:1">\n<NewManufacturerName>AVM</NewManufacturerName>\n<NewManufacturerOUI>00040E</NewManufacturerOUI>\n<NewModelName>FRITZ!Box 7490</NewModelName>\n<NewDescription>FRITZ!Box 7490 113.07.12</NewDescription>\n<NewProductClass>FRITZ!Box</NewProductClass>\n<NewSerialNumber>3810D5158767</NewSerialNumber>\n<NewSoftwareVersion>113.07.12</NewSoftwareVersion>\n<NewHardwareVersion>FRITZ!Box 7490</NewHardwareVersion>\n<NewSpecVersion>1.0</NewSpecVersion>\n<NewProvisioningCode></NewProvisioningCode>\n<NewUpTime>512874</NewUpTime>\n<NewDeviceLog>18.01.20 16:31:37 WLAN-\xc3\x9cbertragungsqualit\xc3\xa4t durch reduzierte Kanalbandbreite erh\xc3\xb6ht (2,4 GHz). [5 Meldungen seit 16.01.20 20:41:23]\n16.01.20 19:39:45 WLAN-\xc3\x9cbertragungsqualit\xc3\xa4t durch reduzierte Kanalbandbreite erh\xc3\xb6ht (2,4 GHz). [2 Meldungen seit 13.01.20 23:12:10]\n13.01.20 17:48:27 WLAN-\xc3\x9cbertragungsqualit\xc3\xa4t durch reduzierte Kanalbandbreite erh\xc3\xb6ht (2,4 GHz). [3 Meldungen seit 12.01.20 21:41:34]</NewDeviceLog>\n</u:GetInfoResponse>\n</s:Body>\n</s:Envelope>'
Einen Kommentar schreiben:
-
ne,
self.logger.error(response.content)
steht da nicht.
wobei.. grmmpff. habe das vermutlich grade mit gepusht... ich lass das jetzt mal drin, wer debug log anmacht muss eh mit vielen ausgaben rechnen..
update: gerade geschaut: nein ich habe es nicht gepusht..Zuletzt geändert von psilo; 18.01.2020, 19:18.
Einen Kommentar schreiben:
-
Zitat von psilo Beitrag anzeigenbau mal in der Methode _update_fritz_device_info des Plugins das logging hier ein - error damit es auf jdn fall bei dir ausgegeben wird:
Code:
try: response = self._session.post(url, data=soap_data, timeout=self._timeout, headers=headers, auth=HTTPDigestAuth(self._fritz_device.get_user(), self._fritz_device.get_password()), verify=self._verify) self.logger.error(response.content) except Exception as e: if self._fritz_device.is_available(): self.logger.error("Exception when sending POST request: %s" % str(e)) self.set_device_availability(False)
Hab den Unterschied gefunden. Melde mich gleich wieder
Einen Kommentar schreiben:
-
Zitat von psilo Beitrag anzeigenzusätzlich könntest Du in der INIT Methode mal die ganzen Parameter ausgeben, die er mit get_parameter_value ausliest.
PluginCodet:
Code:self._verify = self.get_parameter_value('verify') ssl = self.get_parameter_value('ssl') self.logger.debug('Verify: {}'.format(self._verify)) self.logger.debug('SSL: {}'.format(ssl))
Code:fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: 49433 cycle: 120 ssl: true verify: false call_monitor: true
Code:2020-01-18 19:04:27 INFO plugins.avm Init AVM Plugin TEST 2020-01-18 19:04:27 DEBUG plugins.avm Verify: False 2020-01-18 19:04:27 DEBUG plugins.avm SSL: True
Mit dem anderen Log kämpfe ich noch.
Einen Kommentar schreiben:
-
bau mal in der Methode _update_fritz_device_info des Plugins das logging hier ein - error damit es auf jdn fall bei dir ausgegeben wird:
Code:try: response = self._session.post(url, data=soap_data, timeout=self._timeout, headers=headers, auth=HTTPDigestAuth(self._fritz_device.get_user(), self._fritz_device.get_password()), verify=self._verify) self.logger.error(response.content) except Exception as e: if self._fritz_device.is_available(): self.logger.error("Exception when sending POST request: %s" % str(e)) self.set_device_availability(False)
zusätzlich könntest Du in der INIT Methode mal die ganzen Parameter ausgeben, die er mit get_parameter_value ausliest. dazu habe ich gerade eine neue debug log zeile in den dev gepusht. das obere möchte ich nicht für alle user rausloggen, da bitte selber aktiv werden.
Bei mir sieht es jetzt so aus:
Code:2020-01-18 18:47:47 DEBUG plugins.avm __init__ fritzbox_7590@: Plugin initialized with host: 192.168.178.1, port: 49443, ssl: True, verify: False, user: smarthome, call_monitor: True
Meine These ist, dass Verify bei Dir nicht auf FALSE steht, bzw. warum auch immer FALSE nicht im Plugin ankommt.Zuletzt geändert von psilo; 18.01.2020, 18:51.
Einen Kommentar schreiben:
-
Zitat von psilo Beitrag anzeigenwie ist es, wenn du eine konfig, die du bereits korrigiert hast, erneut mit admin IF abspeicherst? geht es dann immer noch? was ist wenn du mehrfach eine nicht funktionierende abspeicherst? kommt der fehler also nur, wenn du das plugin ganz frisch reinhängst? kann es evtl sein, dass du dich beim passwort vertippst? das ist ja nicht sichtbar in der admin gui- Ich habe im laufenden Betrieb aus der plugin.yaml die Einträge für das avm-plugin mit Notepad++ gelöscht und die Datei angespeichert.
- Dann ins Admin-Interace -> Plugins -> Konfiguration; Dort ist das Plugin dann nicht mehr gelistet.
- neues Plugin hinzufügen - > avm und entsprechend konfiguriert und gesichert.
- folgende Einträge wurden in der plugin.yaml ergänzt (angeschaut mit Notpad++)
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: 49433 cycle: 300 ssl: true verify: false call_monitor: false
- Neustart von shNG über putty via sudo systemctl restart smarthome.service
- Plugin bekommt keine Verbindung zur Fritzbox; Fehlermeldung: Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x670efbf0>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt'))
- Im Admin-Interface den Call_Monitor von false auf true gesetzt und gesichert.
- folgendes steht nun in der plugin.yaml ergänzt (angeschaut mit Notpad++)
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: '49433' cycle: '300' ssl: true verify: false call_monitor: true
- Neustart von shNG über putty via sudo systemctl restart smarthome.service
- Plugin bekommt keine Verbindung zur Fritzbox; Fehlermeldung: Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x670efbf0>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt'))
- Ich habe diese nicht funktionierende Konfiguration mehrfach über das Admin-Interface gesichert. Keine Änderung in der plugin.yaml und das Plugin bekommt keine Verbindung zu Fritzbox.
- Nun habe ich folgende Konfig direkt als Block mit Notepad++ in die plugin.yaml kopiert:
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: 49433 cycle: 120 ssl: true verify: false call_monitor: false
- Neustart von shNG über putty via sudo systemctl restart smarthome.service
- Plugin bekommt keine Verbindung zur Fritzbox; Fehlermeldung: Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x670efbf0>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt'))
- Nun habe ich folgende Konfig direkt als Block mit Notepad++ in die plugin.yaml kopiert:
-
Code:
fb1: class_name: AVM class_path: plugins.avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: 49443 cycle: 120 ssl: true verify: false call_monitor: true
- Plugin bekommt Verbindung zur Fritzbox.
- Im Admin Interface die Konfigruation geöffnet und neu gesichert.
- In der plugin.yaml wurde der Eintrag wie dadurch wie folgt geändert.
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: '49433' cycle: '120' ssl: true verify: false call_monitor: true
- Plugin bekommt keine Verbindung zur Fritzbox; Fehlermeldung: Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x670efbf0>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt'))
- Nun habe ich folgende Konfig mit Notepad++ in die plugin.yaml geändert:
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: 49443 cycle: 120 ssl: true # use https or not verify: false # verify ssl certificate call_monitor: 'True'
- Plugin bekommt Verbindung zur Fritzbox.
- Im Admin Interface die Konfigruation geöffnet und neu gesichert.
- In der plugin.yaml wurde der Eintrag wie dadurch wie folgt geändert.
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: '49433' cycle: '120' ssl: true verify: false call_monitor: true
- Plugin bekommt keine Verbindung zur Fritzbox; Fehlermeldung: Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x668d8f50>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt'))
- Nun habe ich folgende Konfig mit Notepad++ in die plugin.yaml geändert:
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: 49443 cycle: 120 ssl: true verify: false call_monitor: true
- Plugin bekommt Verbindung zur Fritzbox.
- Im Admin Interface die Konfigruation geöffnet und neu gesichert.
- In der plugin.yaml wurde der Eintrag wie dadurch wie folgt geändert.
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: '49433' cycle: '120' ssl: true verify: false call_monitor: true
- Plugin bekommt keine Verbindung zur Fritzbox; Fehlermeldung: Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x668d98d0>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt'))
- Nun habe ich folgende Konfig mit Notepad++ in die plugin.yaml geändert:
-
Code:
fb1: plugin_name: avm username: smarthome password: Fortuna1 host: 192.168.2.4 port: 49443 cycle: 120 ssl: true verify: false call_monitor: true
- Plugin bekommt Verbindung zur Fritzbox.
Der Fehler ist bei mir reproduziertbar, aber nach wie vor nicht erklärbar. Kann ich den Anfragen des Plugins an die Fritzbox mitloggen, um darüber ggf mehr Hinweise zu bekommen?
Einen Kommentar schreiben:
-
Zitat von psilo Beitrag anzeigenich habe die konfig für meine 7490 jetzt gerade mit dem admin if abgespeichert und alles geht... trotz ' '
Sie werden dann nur zur Übergabe an das Plugin in den gewünschten Datentyp gecastet.
Beim einlesen mit Quotes, wird der Wert gleich als String gelesen. Ohne Quotes wird er zwar als Zahl gelesen, dann aber in einen String gecastet.Zuletzt geändert von Msinn; 17.01.2020, 17:18.
Einen Kommentar schreiben:
-
Msinn das mit dem port ist echt etwas seltsam.. die admin gui setzt ihn in ' ', der datentyp laut avm plugin.yaml ist aber type: int. zumindest könnten wir dann hier in yaml auch direkt zahlen setzen... ansich müsste das einlesen der konfig aber richtig umwandeln, oder?
ich habe die konfig für meine 7490 jetzt gerade mit dem admin if abgespeichert und alles geht... trotz ' '
Sisamiwe wie ist es, wenn du eine konfig, die du bereits korrigiert hast, erneut mit admin IF abspeicherst? geht es dann immer noch? was ist wenn du mehrfach eine nicht funktionierende abspeicherst? kommt der fehler also nur, wenn du das plugin ganz frisch reinhängst? kann es evtl sein, dass du dich beim passwort vertippst? das ist ja nicht sichtbar in der admin guiZuletzt geändert von psilo; 17.01.2020, 16:42.
Einen Kommentar schreiben:
-
Zitat von psilo Beitrag anzeigenDu startest shng schon neu, nachdem du via gui konfiguriert hast?
Einen Kommentar schreiben:
-
Du startest shng schon neu, nachdem du via gui konfiguriert hast?
Einen Kommentar schreiben:
-
psilo Maxthomas2001
Hallo,
wie versprochen habe ich heute noch mal etwas rumprobiert mit der Konfig in der plugin.yaml
Ich konnte das Verhalten reproduzieren, aber die Ursache nicht wirklich finden.
Konfiguriert man das Plugin über die GUI des Admin-Interfaces startet das Plugin, es kommt immer zum gleiche Fehler.
Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x6707dc90>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt'))
Code:2020-01-16 20:57:48 WARNING __main__ -------------------- Init SmartHomeNG 1.6a.da992f67.develop -------------------- 2020-01-16 20:57:48 WARNING __main__ Running in Python interpreter 'v3.7.3 final' (pid=15210) on linux platform 2020-01-16 20:57:56 INFO plugins.avm Init AVM Plugin 2020-01-16 20:57:59 DEBUG plugins.avm is_staticfile: path=static/img/plugin_logo.png, complete_path=/usr/local/smarthome/plugins/avm/webif/static/img/plugin_logo.png, result=True 2020-01-16 20:58:01 DEBUG plugins.avm scheduler_add: name = plugins.avm.update, parameters: prio=5, cycle=120, offset=2 2020-01-16 20:58:03 DEBUG plugins.avm Starting update loop for instance 2020-01-16 20:58:03 ERROR plugins.avm Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x6707dc90>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt')) 2020-01-16 20:58:03 DEBUG plugins.avm Availability for FritzDevice set to False 2020-01-16 20:58:06 DEBUG plugins.avm is_staticfile: path=static/img/plugin_logo.png, complete_path=/usr/local/smarthome/plugins/avm/webif/static/img/plugin_logo.png, result=True 2020-01-16 20:58:09 DEBUG plugins.avm is_staticfile: path=static/img/plugin_logo.png, complete_path=/usr/local/smarthome/plugins/avm/webif/static/img/plugin_logo.png, result=True
Code:2020-01-16 21:00:13 WARNING __main__ -------------------- Init SmartHomeNG 1.6a.da992f67.develop -------------------- 2020-01-16 21:00:13 WARNING __main__ Running in Python interpreter 'v3.7.3 final' (pid=15427) on linux platform 2020-01-16 21:00:20 INFO plugins.avm Init AVM Plugin 2020-01-16 21:00:20 DEBUG plugins.avm starting monitoring service 2020-01-16 21:00:20 DEBUG plugins.avm MonitoringService: connection established 2020-01-16 21:00:25 DEBUG plugins.avm scheduler_add: name = plugins.avm.update, parameters: prio=5, cycle=120, offset=2 2020-01-16 21:00:26 DEBUG plugins.avm is_staticfile: path=static/img/plugin_logo.png, complete_path=/usr/local/smarthome/plugins/avm/webif/static/img/plugin_logo.png, result=True 2020-01-16 21:00:27 DEBUG plugins.avm Starting update loop for instance 2020-01-16 21:00:27 ERROR plugins.avm Exception when sending POST request: HTTPSConnectionPool(host='192.168.2.4', port=49433): Max retries exceeded with url: /upnp/control/deviceinfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHT TPSConnection object at 0x6680e6d0>: Failed to establish a new connection: [Errno 111] Verbindungsaufbau abgelehnt')) 2020-01-16 21:00:27 DEBUG plugins.avm Availability for FritzDevice set to False 2020-01-16 21:00:27 DEBUG plugins.avm MonitoringService: disconnecting 2020-01-16 21:00:27 DEBUG plugins.avm Data Received from CallMonitor: 2020-01-16 21:02:27 DEBUG plugins.avm Starting update loop for instance
In der plugin.yaml stehen immer die exakt die gleichen Einträge, zumindest habe ich keine Unterschiede gefunden.
Aufgefallen ist mir, dass die GUI beim ersten Aktivieren des Plugins die Werte für Port und Cycle nicht in Hochkommas ' setzt. Überarbeitet man die Konfig nochmal über die GUI, werden die Werte dann in Hochkommas gesetzt.
Ich kann ausschließen, dass die Fritzbox mit Anfragen "überfordert" ist. ich habe kurz nacheinander jeden Versuch mehrfach wiederholt und immer das gleiche Ergebnis bekommen.
Es ist also wirklich Schlangenbeschwörung. ;o)
Maxthomas2001
Kannst Du ggf. meine Versuche auch nocheinmal durchspielen?
Danke
Einen Kommentar schreiben:
-
psilo
Ich habe sowohl das Interface benutzt als auch den Editor. Habe verschiedene Konfígurationen/Möglichkeiten ausprobiert, um es zum Laufen zu bringen.
Was ich wann über welchen Weg geändert habe, kann ich leider nicht mehr nachvollziehen.
Einen Kommentar schreiben:
-
Maxthomas2001 naja jetzt geht es Dir wie mir. Einen Fehler finden der nicht mehr auftritt ist schwer ;-). Hattest Du über das grafische Admin IF konfiguriert, als Du ihn noch hattest? Nur um zu sehen, ob das Problem nicht doch dort liegt?!
Ich glaube trotzdem noch, dass eure Boxen schlichtweg bei der Konfiguration irgendwann "dicht" gemacht haben und sich jetzt wieder erholt haben.Das Plugin kann da aber wenig für.
Sisamiwe mich wundert auch, dass Du so wenig debug logs siehst.. er müsste schon "a bisserl was" rausloggen. sonst halt einfach mal eigene self.logger.debug's ergänzen und schauen, wo er hängt.
Einen Kommentar schreiben:
Einen Kommentar schreiben: