Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
so, wollte es mal testen, erhalte aber einen Fehler:
PHP-Code:
2016-04-05 17:46:19 ERROR Main Plugin fb1 exception: cannot import name 'InsecureRequestWarning' Traceback (most recent call last): File "/usr/local/smarthome/lib/plugin.py", line 53, in __init__ plugin_thread = Plugin(smarthome, plugin, classname, classpath, args) File "/usr/local/smarthome/lib/plugin.py", line 81, in __init__ exec("import {0}".format(classpath)) File "<string>", line 1, in <module> File "/usr/local/smarthome/plugins/avm/__init__.py", line 41, in <module> from requests.packages.urllib3.exceptions import InsecureRequestWarning ImportError: cannot import name 'InsecureRequestWarning'
habe Zeile 41 mal auskommentiert, läuft aber auch dann nicht:
PHP-Code:
2016-04-05 19:23:59,423 DEBUG avm_fritzbox_1 "POST /upnp/control/x_myfritz HTTP/1.1" 200 401 -- connectionpool.py:_make_request:362 2016-04-05 19:23:59,437 DEBUG avm_fritzbox_1 Accessing TAM reponse cache for action GetInfo! -- __init__.py:_update_tam:902 2016-04-05 19:23:59,441 ERROR avm_fritzbox_1 Method avm_fritzbox_1 exception: 'ExpatError' object has no attribute 'strerror' -- scheduler.py:_task:362 Traceback (most recent call last): File "/usr/local/smarthome/plugins/avm/__init__.py", line 905, in _update_tam xml = minidom.parseString(self._response_cache["tam_"+action]) File "/usr/lib/python3.4/xml/dom/minidom.py", line 1970, in parseString return expatbuilder.parseString(string) File "/usr/lib/python3.4/xml/dom/expatbuilder.py", line 925, in parseString return builder.parseString(string) File "/usr/lib/python3.4/xml/dom/expatbuilder.py", line 223, in parseString parser.Parse(string, True) xml.parsers.expat.ExpatError: mismatched tag: line 1, column 174
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/smarthome/lib/scheduler.py", line 358, in _task obj() File "/usr/local/smarthome/plugins/avm/__init__.py", line 394, in _update_loop self._update_tam(item) File "/usr/local/smarthome/plugins/avm/__init__.py", line 907, in _update_tam logger.error("Exception when parsing response: %s" % e.strerror) AttributeError: 'ExpatError' object has no attribute 'strerror'
Hmm bei mir ist requests (2.8.1) drauf.. Nutze aber auch nicht das Standard-Image. Man müsste mal schauen, wie man diese Warning mit einem älteren Requests rauskriegt. Muss mal die Woche noch ein Debian-Image aufsetzen.
Ich muss mal schauen, ob man die Warning die ohne das include und die Zeile die darauf aufbaut kommt, anderweitig wegbekommt.. Er schiebt halt warnings ins log, dass man ohne "verify" gegen ein HTTPS geht..Theoretisch kannst Du das include und diese Zeile auskommentieren:
Code:
if not self._verify:
requests.packages.urllib3.disable_warnings()
Es gibt wohl auch alternative Methoden wie
Code:
with warnings.catch_warnings():
warnings.filterwarnings("ignore", message=".*InsecurePlatformWarning.*")
Ich schaue morgen mal, ob das irgendwie anders geht. Vielleicht hat auch jemand Ideen oder möchte - wenn er das Problem hat - selber mal experimentieren.
Hatte einen fiesen Bug in den gettern / settern der Authentifizierung. Kein Plan warum bei mir trotzdem alles lief. Nach Fixen des Bugs hagelt es nun neue Fehler. Bitte erstmal den Test on Hold, bis ich eine neue Version liefere!!!
So ich denke das von Markov könnte jetzt auch gehen. Ich mache nun ein urllib3.disable_warnings() anstatt dem Befehl von vorher.. Wenn das auch nicht geht oder jemanden stört, lasse ich die Warning halt rausloggen. Notfalls kann man ja immer noch ein -W ignore ans Python hängen.
PS: Bitte mal testen, ob die Version aus dem DEV jetzt geht..
Update: ich habe gerade noch die aktuellste readme in den DEV gepackt. Dort sind jetzt die Item-Erweiterungen für den Monitor enthalten.
@ivande: das ist ein Merge aus den Sachen https://github.com/herrmannj/smartvi...aster/fritzbox (ich selber habe da den weiter unten stehenden callmonitor_small ergänzt) und bischen eigenem HTML / SmartVISU Gebastel.
ich konnte keiner Verbindung zur Box herstellen. Ich habe dazu in der Fritzbox einen user angelegt, password vergeben und dies auch in der plugin.conf eingetragen.
Weiters habe ich in der Fritzbox die "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" aktiviert.
Muss ich in der Fritzbox noch etwas einstellen?
Mein smarthome.py läuft in Virtualbox unter debian32/jessie
PHP-Code:
016-04-07 22:24:50,154 DEBUG Main Plugin: fb1 -- plugin.py:__init__:43 2016-04-07 22:24:50,179 INFO Main Init AVM Plugin with identifier fritzbox_1 -- __init__.py:__init__:391 2016-04-07 22:24:50,187 ERROR Main Plugin fb1 exception: 'LogRecord' object has no attribute 'message' -- plugin.py:__init__:57 Traceback (most recent call last): File "/usr/local/smarthome_dev/plugins/avm/__init__.py", line 76, in connect self.conn.connect((self._host, self._port)) ConnectionRefusedError: [Errno 111] Verbindungsaufbau abgelehnt
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/smarthome_dev/lib/plugin.py", line 53, in __init__ plugin_thread = Plugin(smarthome, plugin, classname, classpath, args) File "/usr/local/smarthome_dev/lib/plugin.py", line 82, in __init__ exec("self.plugin = {0}.{1}(smarthome{2})".format(classpath, classname, args)) File "<string>", line 1, in <module> File "/usr/local/smarthome_dev/plugins/avm/__init__.py", line 410, in __init__ self._monitoring_service.connect() File "/usr/local/smarthome_dev/plugins/avm/__init__.py", line 80, in connect logger.error("Cannot connect to", self._host,"on port:",str(self._port),"\nError:",e) File "/usr/lib/python3.4/logging/__init__.py", line 1303, in error self._log(ERROR, msg, args, **kwargs) File "/usr/lib/python3.4/logging/__init__.py", line 1409, in _log self.handle(record) File "/usr/lib/python3.4/logging/__init__.py", line 1419, in handle self.callHandlers(record) File "/usr/lib/python3.4/logging/__init__.py", line 1481, in callHandlers hdlr.handle(record) File "/usr/lib/python3.4/logging/__init__.py", line 853, in handle self.emit(record) File "/usr/local/smarthome_dev/bin/smarthome.py", line 104, in emit self._log.add([timestamp, record.threadName, record.levelname, record.message]) AttributeError: 'LogRecord' object has no attribute 'message'
PS: Bitte mal testen, ob die Version aus dem DEV jetzt geht..
vielen Dank für Deine Änderungen - ich habe keinen Fehler mehr im Log und die Verbindung zur Fritzbox wird hergestellt. Allerdings kann ich mit sh.fritzbox_1.BEFEHL keine Befehle im interaktiven Modus auslösen:
PHP-Code:
ERROR Main Unhandled exception: 'SmartHome' object has no attribute 'fritzbox_1' <class 'AttributeError'> -- smarthome.py:_excepthook:513
vielleicht habe ich die Syntax in der Readme auch falsch verstanden?
Schau in die neue readme im DEV. Da war noch ein Fehler. Anstatt fritzbox_1 muss halt das stehen, was in der plugin.conf in den [...] steht. Im Beispiel glaube ich fb1 anstatt fritzbox_1
Gib zudem mit dem cycle acht, das alte Plugin hatte hier 300 Sec stehen. Evtl werden ältere Boxen durch zu kurze Taktraten überlastet und knicken temporär ein mit der Requestannahme. Mit allen meinen Items schiebt man halt fast 3mal so viel gegen die FB als früher. Und das obwohl ich Request-Antworten, die mehrfach benötigt werden, pro cycle cache. Wenn die CPU also am Limit ist auf der Box, lieber Cycle hochdrehen oder nicht benötigte Items entfernen.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar