Nutzt hier irgendwer Home Assistant?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Home Assistant
Einklappen
X
-
Bin gerade dabei, mich darin einzuarbeiten. Gefällt mir ganz gut. Die Doku ist nicht so prall, aber da der Code sehr modular ist, kann man schnell mal im Quelltext nachschauen.
KNX ist nicht unterstützt, sollte aber kein grosses Problem sein, das zu implementieren. Ein Stück Python-Code dafür habe ich eh schonmal entwickelt, das sollte sich ganz gut einbinden lassen. Ich muss aber erstmal noch etwas genauer die Architektur verstehen.
-
Schön dass sich noch wer darauf stürztIch hatte leider wenig Zeit die letzten Monaten.
Offiziell gibt es bereits ein Feature Request. Es gab aber mal wer der etwas programmiert hatte, habe ich aber leider nie getestet wegen fehlender Zeit und Dokumentation. Bei mir ist auch noch erste Baustelle die Architektur besser zu verstehen.
Kommentar
-
So, die erste Version is verfügbar zum Testen:
https://github.com/usul27/home-assistant
Konfiguration wie folgt (Beispiel)
knx:
host: 192.168.1.128
port: 3671
switch 2:
name: KNX Switch
platform: knx
address: 0/0/1
state_address: 0/0/3
switch 3:
name: KNX Switch (Timer)
platform: knx
address: 0/0/2
state_address: 0/0/3
- Likes 1
Kommentar
-
Im Prinzip kannst du jede Gruppenadresse einfach als "Sensor" einbinden, ein Beispiel für einen binary sensor ist schon drin, das auf 1-4 byte-Werte auszubauen sollte recht einfach sein.
Meine KNX Bibliothek überwacht generell alles, was auf dem Bus läuft und merkt sich den Status. Damit ist auch für das Abfragen des Wertes einer Gruppenadresse oft kein Zugriff auf den Bus notwendig. Wenn es Dinge gibt, die den Status ändern, ohne eine Nachricht auf den Bus zu schreiben, geht das auch, dann muss einfach "cache=No" gesetzt werden (habe ich aber noch nicht getestet).
Kommentar
-
So richtig funktionieren tut es bei mir nicht. Sobald ich Switche einfüge funktioniert es nicht mehr richtig:
Code:knx: host: 172.16.178.171 port: 3671 switch 1: platform: knx name: Living light address: 0/1/4 # state_address: 0/1/4 switch 2: platform: knx name: Hall wall light address: 0/1/7 # state_address: 0/1/7
Code:16-06-13 11:25:10 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: service=turn_off, domain=homeassistant> 16-06-13 11:25:10 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: service=turn_on, domain=homeassistant> 16-06-13 11:25:10 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: service=toggle, domain=homeassistant> 16-06-13 11:25:10 INFO (MainThread) [homeassistant.bootstrap] Home Assistant core initialized 16-06-13 11:25:10 INFO (MainThread) [homeassistant.loader] Loaded switch from homeassistant.components.switch 16-06-13 11:25:10 INFO (MainThread) [homeassistant.loader] Loaded sun from homeassistant.components.sun 16-06-13 11:25:10 INFO (MainThread) [homeassistant.loader] Loaded notify from homeassistant.components.notify 16-06-13 11:25:10 INFO (MainThread) [homeassistant.loader] Loaded automation from homeassistant.components.automation 16-06-13 11:25:10 INFO (MainThread) [homeassistant.loader] Loaded group from homeassistant.components.group 16-06-13 11:25:10 INFO (MainThread) [homeassistant.loader] Loaded mqtt from homeassistant.components.mqtt 16-06-13 11:25:10 INFO (MainThread) [homeassistant.loader] Loaded knx from homeassistant.components.knx 16-06-13 11:25:11 INFO (MainThread) [homeassistant.loader] Loaded sensor from homeassistant.components.sensor 16-06-13 11:25:11 INFO (MainThread) [homeassistant.loader] Loaded history from homeassistant.components.history 16-06-13 11:25:11 INFO (MainThread) [homeassistant.loader] Loaded recorder from homeassistant.components.recorder 16-06-13 11:25:11 INFO (MainThread) [homeassistant.loader] Loaded http from homeassistant.components.http 16-06-13 11:25:11 INFO (MainThread) [homeassistant.loader] Loaded frontend from homeassistant.components.frontend 16-06-13 11:25:11 INFO (MainThread) [homeassistant.loader] Loaded api from homeassistant.components.api 16-06-13 11:25:11 INFO (MainThread) [homeassistant.core] Bus:Handling <Event component_loaded[L]: component=recorder> 16-06-13 11:25:11 INFO (MainThread) [homeassistant.loader] Loaded switch.knx from homeassistant.components.switch.knx 16-06-13 11:25:11 INFO (MainThread) [homeassistant.components.knx] KNX IP tunnel to 192.168.1.1:3671 established 16-06-13 11:25:11 INFO (MainThread) [homeassistant.core] Bus:Handling <Event component_loaded[L]: component=knx> 16-06-13 11:25:14 INFO (Thread-5) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10241, [29, 178]]> 16-06-13 11:25:40 INFO (Thread-6) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [13568, [0]]> 16-06-13 11:25:43 INFO (Thread-7) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10242, [29, 95]]> 16-06-13 11:25:45 INFO (Thread-8) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10241, [30, 47]]> 16-06-13 11:25:54 INFO (Thread-9) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [13568, [1]]> 16-06-13 11:25:55 INFO (Thread-10) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [12544, [0]]> 16-06-13 11:25:56 INFO (Thread-11) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10240, [12, 142]]> 16-06-13 11:25:56 INFO (Thread-12) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10240, [20, 59]]> ....
Code:^C16-06-13 11:28:35 ERROR (MainThread) [homeassistant.components.knx] Unable to read from KNX address: 260 Traceback (most recent call last): File "/opt/homeassitant/lib/python3.5/site-packages/homeassistant-0.22.0.dev0-py3.5.egg/homeassistant/components/knx.py", line 190, in update use_cache=self.cache) File "/opt/homeassitant/lib/python3.5/site-packages/knxip-0.2-py3.5.egg/knxip/ip.py", line 317, in group_read res = self.result_queue.get() File "/usr/lib/python3.5/queue.py", line 164, in get self.not_empty.wait() File "/usr/lib/python3.5/threading.py", line 293, in wait waiter.acquire() KeyboardInterrupt 16-06-13 11:28:36 INFO (Thread-64) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10241, [31, 124]]> 16-06-13 11:28:44 INFO (Thread-65) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [4362, [0]]> 16-06-13 11:28:46 INFO (Thread-66) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [4864, [0]]> 16-06-13 11:29:03 INFO (Thread-67) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [6144, [43, 29, 2]]> 16-06-13 11:29:10 INFO (Thread-68) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10752, [86, 77]]> 16-06-13 11:29:11 INFO (Thread-69) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [4096, [0]]> 16-06-13 11:29:19 INFO (Thread-70) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [4364, [12, 111]]> 16-06-13 11:29:37 INFO (Thread-71) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10241, [31, 249]]> ....
Code:^C16-06-13 11:30:33 ERROR (MainThread) [homeassistant.components.knx] Unable to read from KNX address: 260 Traceback (most recent call last): File "/opt/homeassitant/lib/python3.5/site-packages/homeassistant-0.22.0.dev0-py3.5.egg/homeassistant/components/knx.py", line 190, in update use_cache=self.cache) File "/opt/homeassitant/lib/python3.5/site-packages/knxip-0.2-py3.5.egg/knxip/ip.py", line 317, in group_read res = self.result_queue.get() File "/usr/lib/python3.5/queue.py", line 164, in get self.not_empty.wait() File "/usr/lib/python3.5/threading.py", line 293, in wait waiter.acquire() KeyboardInterrupt 16-06-13 11:30:33 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: new_state=<state switch.living_light=off; friendly_name=Living light @ 2016-06-13T11:30:33.642894+02:00>, old_state=None, entity_id=switch.living_light> 16-06-13 11:30:33 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: new_state=<state group.all_switches=unknown; hidden=True, auto=True, friendly_name=all switches, entity_id=[], order=0 @ 2016-06-13T11:30:33.648913+02:00>, old_state=None, entity_id=group.all_switches> 16-06-13 11:30:33 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: new_state=None, old_state=<state group.all_switches=unknown; hidden=True, auto=True, friendly_name=all switches, entity_id=[], order=0 @ 2016-06-13T11:30:33.648913+02:00>, entity_id=group.all_switches> 16-06-13 11:30:33 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: new_state=<state group.all_switches=off; hidden=True, auto=True, friendly_name=all switches, entity_id=('switch.living_light',), order=0 @ 2016-06-13T11:30:33.661028+02:00>, old_state=None, entity_id=group.all_switches> 16-06-13 11:30:38 INFO (Thread-78) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [4866, [12, 85]]> 16-06-13 11:30:41 INFO (Thread-79) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10242, [30, 5]]> 16-06-13 11:30:47 INFO (Thread-80) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [4610, [12, 70]]> 16-06-13 11:30:47 INFO (Thread-81) [homeassistant.core] Bus:Handling <Event knx_frame_received[L]: [10241, [31, 41]]> ....
Wenn ich Switch 1 und Switch 2 weglasse startet Home Assistant ganz normal.
Kommentar
-
Gestern Abend bis in die Morgenstunden beim selbigen Problem eine debugging session eingelegt wie bei knxmfbp
sieht irgendwie so aus als wenn die socket threadsvon deinem pknx den mainthread nicht weiter arbeiten lässt und er daher die anderen Components nicht laden kann
hatte das phenomän auch schon bei einem test code nur mit dem pknx module..
Werd das heute abend weiter debuggen...
Habe auch das Weinzierl 730 Modul
Kommentar
-
Wenn du das meinst das du auf den tunnel ack wartest
Code:self.control_socket.sendto(bytes(p), (self.remote_ip, self.remote_port)) #TODO: non-blocking receive received = self.control_socket.recv(1024) if sys.version_info[0] < 3: received = map(ord,received) # Check if the response is an TUNNELING ACK r_sid = received[2]*256+received[3]
Denn wenn das passiert bekomm ich auch einen callback von
received_message und daher auch die knx daten
Kommentar
Kommentar