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.
m WARNING Log erscheint dann wieder der Fehler:
Code:
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'startup'
jeder Aufruf im webif führt zu dem error 500.
Was für Devices/Leuchtmittel hast Du im Einsatz? Sind da Leuchtmittel dabei die kein Startup unterstützen (weil nicht von Philips oder die Firmware nicht upgedated wurde)?
tut mir Leid, aber auch mit dem update auf 1.8.2 ist das Problem bei mir nicht behoben.
zunächst mal habe ich in der plugins.yaml die Angaben der HUE2 Bridge gelöscht und neu discovered.
bei mir sehe ich im Web Interface neben der Bridge auch meinen zweiten Raspi mit dem System 1.7.2
hue2_182_1.JPG
wenn ich auf Vebinden klicke erscheint wieder dieser ERROR 500.
im plugins.yaml sind aber die Definitionen ergänzt:
Die hue Plugins sind unabhängig und können parallel betrieben werden.
Abgesehen davon, dass Du im Moment das Webinterface nicht aufrufen kannst funktioniert das Plugin aber, oder?
Der Webinterface Fehler 'dict object' has no attribute 'startup' ist im Develop Branch bereits gefixt.
in meiner plugin.yaml habe ich laut Dokumentation nur den Namen eingetragen.
das Discovery funktioniert dann wohl und es werden die anderen Einträge hinzugefügt.
danach kann ich das webif aber nicht mehr aufrufen. (Error 500)
es hat wohl auch nichts damit zu tun, dass ich in meiner ges. Konfiguration noch alle Definitionen des alten plugins drin habe.
wenn ich in der plugin.yaml den alten Eintrag rausnehme ändert sich nichts.
zur 2. Frage:
ich betreibe zwei Raspberries; meine funktionsfähige Umgebung mache ich ja nicht eher platt, bevor die neue funktioniert.
Das Portal von hue hat heute mal wieder Probleme. Das führt beim Start von SmartHomeNG zu folgendem Logeintrag:
Code:
2021-02-19 10:34:12 ERROR discoverhue Problem at portal: HTTP Error 404: Not Found
Das rührt daher, dass die von Philips/Signify empfohlene Discover Methode das Portal anfragt. Denn Bridges der Version 2 melden sich dort an.
Außer, dass das Portal nicht sehr stabil zu sein scheint (ich hatte diesen Fehler bereits mehrfach in den letzten Wochen), finde ich ich es nicht schön, dass die erste Methode zum discovern einer Bridge im eigenen LAN eine Anfrage ins Intrnet ist. Ich werde in einer kommenden Version das Package discoverhue ersetzen und das zumindest schaltbar machen.
muss leider noch mal auf mein 500 Problem zurückkommen. am langsamen Pi2 liegt es nicht, auf dem neuen Pi4 kommt der gleiche Fehler beim Aufruf des webif. Zu dem cherrypy.error kann ich nichts bei Google finden.
hier jetzt ein Auszug aus dem WARNING log:
Code:
2021-02-13 19:38:55 WARNING lib.smarthome.main -------------------- Init SmartHomeNG 1.8.1.master (84873f74) --------------------
2021-02-13 19:38:55 WARNING lib.smarthome.main Running in Python interpreter 'v3.7.3 final', from directory /usr/local/smarthome
2021-02-13 19:38:55 WARNING lib.smarthome.main - on Linux-5.10.11-v7l+-armv7l-with-debian-10.8 (pid=3558)
2021-02-13 19:38:56 WARNING lib.smarthome.main - Nutze Feiertage für Land 'DE', Provinz 'NW', benutzerdefinierte(r) Feiertag(e) nicht definiert
2021-02-13 20:39:15 WARNING lib.smarthome.main -------------------- SmartHomeNG initialization finished --------------------
2021-02-13 20:39:15 WARNING plugins.smartvisu Deprecated widget usage (used in # sv_widgets): {'basic.button': 2, 'basic.switch': 10}
2021-02-13 20:42:07 WARNING plugins.smartvisu client_info = [{'ip': '192.168.178.21', 'port': '50754', 'protocol': 'ws', 'sw': 'smartVISU', 'swversion': 'v2.9', 'hostname': '', 'browser': 'Firefox', 'browserversion': '85'}]
2021-02-13 20:43:12 ERROR cherrypy.error.2819222448 [13/Feb/2021:20:43:12] HTTP
Traceback (most recent call last):
File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 638, in respond
self._do_respond(path_info)
File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond
response.body = self.handler()
File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/lib/encoding.py", line 219, in __call__
self.body = self.oldhandler(*args, **kwargs)
File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__
return self.callable(*self.args, **self.kwargs)
File "/usr/local/smarthome/plugins/hue2/webif/__init__.py", line 113, in index
br_object=self.plugin.br)
File "/usr/lib/python3/dist-packages/jinja2/asyncsupport.py", line 76, in render
return original_render(self, *args, **kwargs)
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python3/dist-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "/usr/local/smarthome/plugins/hue2/webif/templates/index.html", line 413, in top-level template code
{% set tab6title = "<strong>Hue Bridge</strong>" %}
File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 183, in top-level template code
{% if scroll_heading is not defined %}
File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 1, in top-level template code
{% block doc -%}
File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 4, in block "doc"
{%- block html %}
File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 76, in block "html"
{% block body -%}
File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 79, in block "body"
{% block content -%}
File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 155, in block "content"
{% block bodytab2 %}
File "/usr/local/smarthome/plugins/hue2/webif/templates/index.html", line 221, in block "bodytab2"
<td class="py-1">{{ bridge_lights[l].config.startup.mode }}</td>
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 430, in getattr
return getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'startup'
Sie verhält sich eben nicht genau wie eine Philips v1 Bridge.
Mist das ist mein Fehler. Ich bitte vielmals um Entschuldigung. Ich habe die deCONZ-Software schon eine Weile nicht mehr aktualisiert. Alles hatte ohne Probleme funktioniert ...
Jetzt habe ich mal nachgesehen und tatsächlich gibt es schon längst ein Update ... Das habe ich ausgeführt und nun ist das auch eine v2 Bridge (aber API-Version weiterhin auf 1.16).
Diese Version liefert bei der Abfrage globaler Szenen eine leere Liste. Das try-except erübrigt sich daher.
Die alte Philips v1 Bridge ist mir aber dennoch wichtig, da die alten LivingColor Lichter nur mit dieser Bridge funktionieren. Die folgten damals noch einem anderen Standard den deCONZ nicht unterstützt (muss ich auch noch mal mit der aktuellen Version testen).
Die Philips v1 Bridge funktioniert mit dem hue2 Plugin mit den LivingColors bereits einwandfrei.
versuche gerade auch mein HUE System auf hue2 umzustellen.
habe jetzt auch mal das plugin auf DEBUG gestellt, aber das discovery funktioniert bei mir nicht.
ich erhalte im webif immer den Fehler 500.
im log finde ich nur folgende Zeilen. Offenbar geht das connect schief:
aber warum ? liegt wohl am webif und nicht am plugin.
Nachtrag: die beiden zusätzlichen IP-Adressen vom Discover sind meine beiden raspis; wieso ?
Jetzt hat plötzlich das webif die Bridge doch konfiguriert:
Code:
2021-02-10 14:08:08 INFO plugins.hue2 Connect: connect=
2021-02-10 16:38:53 INFO plugins.hue2 Connect: connect=001788762a60
2021-02-10 16:38:53 INFO plugins.hue2 create_new_username: Generated username = ayEREzTffAW-YV84dGKw4wGC46qFjREWcs6YaSf2
2021-02-10 16:38:53 INFO plugins.hue2 get_bridgeinfo: self.bridge = {'mac': '001788762a60', 'ip': '192.168.178.50', 'friendlyName': 'Philips hue (192.168.178.50)', 'manufacturer': 'Signify', 'modelName': 'Philips hue bridge 2015', 'modelNumber': 'BSB002', 'serialNumber': '001788762a60', 'UDN': 'uuid:2f402f80-da50-11e1-9b23-001788762a60', 'URLBase': 'http://192.168.178.50:80/', 'version': 'v2', 'username': 'ayEREzTffAW-YV84dGKw4wGC46qFjREWcs6YaSf2'}
2021-02-10 16:38:54 DEBUG plugins.hue2 update_config_section: Beginning to update section 'HUE2' of ../etc/plugin.yaml
2021-02-10 16:38:54 DEBUG plugins.hue2 update_config_section: valid parameter names to update = ['polltime_lights', 'polltime_sensors', 'polltime_bridge', 'bridge_serial', 'bridge_user', 'bridge_ip']
2021-02-10 16:38:54 INFO plugins.hue2 update_config_section: Config file = '/usr/local/smarthome/etc/plugin', update data = {'bridge_serial': '001788762a60', 'bridge_user': 'ayEREzTffAW-YV84dGKw4wGC46qFjREWcs6YaSf2', 'bridge_ip': '192.168.178.50'}
2021-02-10 16:38:54 INFO plugins.hue2 update_config_section: Changing Parameter 'bridge_serial' -> type = 'str' from 'None' to '001788762a60'
2021-02-10 16:38:54 INFO plugins.hue2 update_config_section: Changing Parameter 'bridge_user' -> type = 'str' from 'None' to 'ayEREzTffAW-YV84dGKw4wGC46qFjREWcs6YaSf2'
2021-02-10 16:38:54 INFO plugins.hue2 update_config_section: Changing Parameter 'bridge_ip' -> type = 'ip' from 'None' to '192.168.178.50'
2021-02-10 16:38:54 DEBUG plugins.hue2 update_config_section: Config section content = 'ordereddict([('plugin_name', 'hue2'), ('bridge_serial', '001788762a60'), ('bridge_user', 'ayEREzTffAW-YV84dGKw4wGC46qFjREWcs6YaSf2'), ('bridge_ip', '192.168.178.50')])'
2021-02-10 16:38:54 DEBUG plugins.hue2 update_config_section: Finished updating section 'HUE2' of ../etc/plugin.yaml
allerdings bekomme ich jetzt den ERROR 500 schon beim Aufruf des webif.
könnte es ein timing Problem sein, weil ich das ganze auf einem lahmen Pi 2 teste; das hat auch an anderer stelle schon mal merkwürdige Effekte.
Genau das ist der Grund, wieso ich die deconz Bridge erkennen wollte
Sie verhält sich eben nicht genau wie eine Philips v1 Bridge.
Einzelne excepts helfen hier nur bedingt weiter. Ich verschiebe Damit den Fehler an andere Stellen, da das Plugin nicht an jeder Stelle wieder erneut prüft, ob dieser oder jener Teil der Bridge Funktionalität von der jeweiligen Bridge unterstützt wird.
Ich muss eine einfache Möglichket für die deconz Bridge finden. Insgesamt werde ich nicht mehr viel Zeit in v1 Bridges investieren, zumal Philips sie deutlich als End-of-Life klassifiziert hat.
Welches der 3 Vorkommnisse von self.br.lights() meinst Du? Oder: Was soll ich sehen?
Sorry, da fehtle etwas Kontext:
Es geht um den commit "hue2: Added support for bridges using port different from default port 80; Caught exception for lights that do not support hue and sat attributes/functions".
Dort in get_bridgeinfo hast du eine Änderung vorgenommen, so dass all Abfrage-Methoden in einem try-except Block laufen:
Sobald also ein Aufruf eine Exception liefert, wird die ganze Bridge als unbrauchbar markiert (zumindest verstehe ich "self.br = None" so) und False zurück geliefert.
Das führt zu dem von mir berichtetem Fehler wo du meintest das käme von meinen eigenen Änderungen.
Wenn du in diesen try-except-Block ein "throw "Test"" einfügst, dann solltest du das Problem nachvollziehen können.
Meine Bitte ist, das nicht so zu machen, sondern jeden einzelnen Aufruf in ein try-except und dann jeweils nur die entsprechende Info als leere Liste setzen. Das hilft bei deconz, da dort scenes() immer eine Exception liefert.
Meiner Meinung nach ist das Problem, dass man nur auf API-Version 1.0 Knoten vertrauen darf. Bzw. bei Abwesenheit eines Knotens diese Information nicht liefern kann.
Das ist mir schon klar. Ist auch schon eingebaut.
Wegen anderer Änderungen/Erweiterungen läuft das Plugin aus dem develop aber jetzt nicht mehr mit dem v1.8.1 master. Das bedeutet, dass Du Dich ca. 2 Wochen gedulden musst und erst mit der v1.8.2 in den Genuss kommen wirst.
Eigentlich geht es ja nicht einmal um die Erkennung der deconz-Bridge. Eine Sonderbehandlung dafür wäre ja blöd.
Meine Original Philips Bridge liefert die "config" und "capabilities" auch nicht! Das ist also kein deconz-Problem.
Meiner Meinung nach ist das Problem, dass man nur auf API-Version 1.0 Knoten vertrauen darf. Bzw. bei Abwesenheit eines Knotens diese Information nicht liefern kann.
Das einzige was mir wirklich negativ an der deconz iaufgefallen ist, ist das sie im Gegensatz zur Philips keine globalen Scenen unterstützt. D.h. die Abfrage der Scenen liefert ein 404 weil es den Knoten im REST gar nicht gibt. Daher bitte ich dich ja darum, wenn diese Abfrage eine Exception wirft dann die Liste der Scenen als leer anzusehen, aber nicht die Bridge komplett rauszuwerfen.
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.
Einen Kommentar schreiben: