marcschmiedchen / home-assistant-wolf_ism8

WOLF ISM8 -- HVAC integration for Home Assistant
32 stars 6 forks source link

Datentyp für AN/ AUS fehlerhaft #17

Closed hwilma closed 1 year ago

hwilma commented 1 year ago

Die folgenden Schalter führen beim Betätigen zu einer Fehlermeldung

Logger: homeassistant.components.websocket_api.http.connection Source: components/select/init.py:105 Integration: Home Assistant WebSocket API (documentation, issues) First occurred: 15:09:16 (6 occurrences) Last logged: 22:23:26

[2632173432] Option 1 not valid for select.cwl_zeitw_feuchteschutz_an_aus [2632173432] Option 0 not valid for select.cwl_zeitw_feuchteschutz_an_aus [2589123128] Option 1 not valid for select.cwl_intensivlueftung_an_aus [2647202712] Option 1 not valid for select.cwl_intensivlueftung_an_aus [2647202712] Option 1 not valid for select.cwl_zeitw_feuchteschutz_an_aus Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 199, in handle_call_service await hass.services.async_call( File "/usr/src/homeassistant/homeassistant/core.py", line 1808, in async_call task.result() File "/usr/src/homeassistant/homeassistant/core.py", line 1845, in _execute_service await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)( File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service await service.entity_service_call( File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 686, in entity_service_call future.result() # pop exception if have File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 961, in async_request_call await coro File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 726, in _handle_entity_call await result File "/usr/src/homeassistant/homeassistant/components/select/init.py", line 105, in async_select_option raise ValueError(f"Option {option} not valid for {entity.entity_id}") ValueError: Option 1 not valid for select.cwl_intensivlueftung_an_aus

hwilma commented 1 year ago

Habe in den Logs noch folgende Fehlermeldung gefunden die ziemlich häufig auftritt. Vielleicht steht diese mit dem Problem im Zusammenhang:

Logger: homeassistant Source: /usr/src/homeassistant/homeassistant/runner.py:137 First occurred: 08:07:39 (452 occurrences) Last logged: 23:14:30

Error doing job: Fatal error: protocol.data_received() call failed. Traceback (most recent call last): File "/usr/local/lib/python3.10/asyncio/selector_events.py", line 876, in _read_ready__data_received self._protocol.data_received(data) File "/usr/local/lib/python3.10/site-packages/wolf_ism8/ism8.py", line 137, in data_received self.process_msg(data[_header_ptr + 10 : _header_ptr + msg_length]) File "/usr/local/lib/python3.10/site-packages/wolf_ism8/ism8.py", line 164, in process_msg self.decode_datapoint(dp_id, dp_raw_value) File "/usr/local/lib/python3.10/site-packages/wolf_ism8/ism8.py", line 177, in decode_datapoint Ism8.log.error("unknown datapoint: %s, data:%s", dp_id, result) UnboundLocalError: local variable 'result' referenced before assignment

marcschmiedchen commented 1 year ago

Also die erste Fehlermeldung: da bin ich noch auf der Suche. Theoretisch sollten die beiden Punkte "0" und "1" akzeptieren. Ich weiss echt nicht wo das Problem ist. Kannst Du bitte mal sicherstellen, dass Du die beiden komplett aus HA gelöscht hattest und dann wieder neu hinzufuegst? Problem 2: hat nichts damit zu tun, bedeutet aber, dass dein ISM8 Daten sendet, die meine Version der Doku noch nicht kennt/kannte und die ich nicht implementiert habe. Ungluecklicherweise ist im "log"-Befehl ein fehler gewesen, und statt den fehlenden Datenpunkt zu loggen hat er nur den Fehler geworfen. Den Fehler korrigiere ich in der nächsten Version, dann kommt die Log-Meldung korrekt durch und DANN koennen wir den fehlenden Datenpunkt einbinden.

Staccato77 commented 1 year ago

Bezüglich der ersten Fehlermeldung: Ich habe das gleiche Problem beim Ändern der Datenpunkte 78 (Sollwertkorrektur) und 79 (Sparfaktor) (alle vom Typ DPT_TEMPD / float) beobachtet. Ich bin in den Home Assistant Developer Docs nicht sehr vertraut, aber ich glaube das hat etwas mit der Datentypkovertierung zu tun: Die "Select Entity" arbeitet so wie ich das verstehe mit Strings, aber es liegen floats vor. Ich vermute, dass hier keine automatische Konvertierung stattfindet. Ich habe probehalber in custom_components/wolf/select.py in Zeile 124 und 131 eine Konvertierung zu String hinzugefügt, und das geht bisher. Meine Datei sieht damit nun so aus (Änderungen in gelb): grafik

Ob das der richtige/saubere Weg ist, weiß ich nicht, aber vielleicht hilft es bei der Fehlersuche.

marcschmiedchen commented 1 year ago

Habe es korrigiert.