Pakiet integracyjny Exta Life <-> Home Assistant

  • 104 Odpowiedzi
  • 30041 Wyświetleń
*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #60 dnia: Września 19, 2019, 19:46:55 »
jeszcze wracając do głowic... rozumiem, że pełne oprogramowanie ich (harmonogram) nie wchodzi w grę,
Dokładnie. Nie wchodzi w grę gdyż nie ma jak tego odwzorować w HA za pomocą komponentu MQTT
Cytuj
ale pytanie czy nie szło by z nich zczytywać chociaż temperatury otoczenia i (jakby się dało) temperatury zdefiniowanej. Chciałbyś się tym pobawić? Jak tak to daj znać czy na odległość jestem w stanie dać ci potrzebne dane/logi :)
Powinno się dać...będzie z tym troszkę zabawy gdyż te temperatury to cechu odbiornika a nie czujnika Exta Life (widać je w zakładce odbiorniki a nie czujniki), ale chyba sobie z tym poradzę  ;)
Będę jednak potrzebował pomocy - potrzebuje przechwyconego ruchu sieciowego żeby wiedzieć jak kontroler przesyła to do aplikacji. Jutro dam znać co masz zrobić
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #61 dnia: Września 20, 2019, 16:07:44 »
Będę potrzebował przechwycony ruch sieciowy pomiędzy twoim EFC-01 a aplikacją. Chodzi o ekran Urządzenia, gdzie jak mniemam pojawia się głowica RGT-01.
W tym poście i wątku masz filmik pokazujący jak to zrobić. Ja używam aplikacji Ja używam apkę "Packet capture" od developera Grey Shirts. W sklepie Play już jej nie ma, ale bezpieczenie można pobrać z APK Mirror - link

Operację przeprowadź może na jakiś testowym użytkowniku, gdyż może zalogować się twoje hasło i user. Powodzenia :)
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #62 dnia: Września 25, 2019, 08:56:50 »
mam, załączyć tu czy podesłać ci gdzieś na maila?
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #63 dnia: Września 25, 2019, 09:04:14 »
mam, załączyć tu czy podesłać ci gdzieś na maila?
Odpisałem Ci na maila. Odpisz na adres forumowy tak jak podałem w mailu.
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #64 dnia: Września 25, 2019, 09:28:47 »
poszło.
Powodzenia :)
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #65 dnia: Września 26, 2019, 20:37:20 »
poszło.
Powodzenia :)
Przeanalizowałem to trochę lepiej dzisiaj doszedłem do wniosku że na razie nie będę robił specjalnego mapowania atrybutów odbiorników na czujniki. Za to zamierzam lepiej rozpoznać komponent HA MQTT HVAC czyli dedykowany komponent do sterowania ogrzewaniem i wentylacją w HA i mapować głowicę na niego. Jak robić - to porządnie, a co 🙂 oczywiście takie podejście spowoduje że zajmie to więcej czasu ale myślę że się opłaca
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #66 dnia: Września 29, 2019, 12:50:12 »
Kolego @shibby - pierwsza wersja testowa kodu, który zmapuje RGT-01 na integrację MQTT HVAC (w HA szukaj encji zaczynającej się od "climate.")! :)
Nie było z tym nawet bardzo dużo pracy. Dużo dobrej roboty, aby skrócić czas odwalił Visual Studio Code, którego używam od niedawna i jestem zachwycony (a i to chyba mało powiedziane). Że ja o nim nie wiedziałem, gdy robiłem pierwszą wersję!! W porównaniu do Notepad++ to jak przejażdżka Bugatti Chiron vs Fiat 126p :)
Z racji tego, że nie posiadam RGT-01 nie miałem jak przetestować kodu, więc nie mam pojęcia czy działa. Polegam jedynie na pylint - wbudowane w VS Code narzędzie rozpoznające i sprawdzające kod Pythona podczas pisania.

Możliwe, że jest nieprawidłowy mapping wartości (nie miałem jak sprawdzić) czyli np w HA zobaczysz tryb manualny zamiast automatycznego i to samo przy sterowaniu z HA do EFC-01. Jeśli tak będzie - daj znać. W atrybutach encji w HA powinny pojawić się dodatkowe informacje jak stan baterii głowicy, info o oczekiwaniu na synchronizację itp.
Jeśli zadziała to powinieneś być użyć karty Lovelace o nazwie Thermostat i zobaczyć coś takiego:




Trzymam kciuki, że zadziała. To byłoby dopiero osiągnięcie :) Jeśli będzie się sypało to daj znać jakie błędy wystąpiły (backtrace)
« Ostatnia zmiana: Września 29, 2019, 13:55:02 wysłana przez admin »
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #67 dnia: Września 30, 2019, 08:19:37 »
Trzymam kciuki, że zadziała. To byłoby dopiero osiągnięcie :) Jeśli będzie się sypało to daj znać jakie błędy wystąpiły (backtrace)

po odpaleniu testrun mam

root@nas:/apps/docker-root/homeassistant/scripts# ./start_exta2ha.sh --testrun
Traceback (most recent call last):
  File "main_exta2ha.py", line 173, in main
    self.ha_cfg.get_from_device(device)
  File "/apps/docker-root/homeassistant/scripts/ExtaLife_HA.py", line 629, in get_from_device
    cfg_dict[objid] = self.cfg_dict[objid]      # may raise KeyError exception
KeyError: '13-1'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main_exta2ha.py", line 201, in <module>
    prog.main()
  File "main_exta2ha.py", line 182, in main
    self.ha_mqtt.ha_do_discovery_single(k, v)
  File "/apps/docker-root/homeassistant/scripts/ExtaLife_HA.py", line 944, in ha_do_discovery_single
    mq_tp_state         = ha_topic.get_state_topic()
  File "/apps/docker-root/homeassistant/scripts/ExtaLife_HA.py", line 1079, in get_state_topic
    return self.tp_base+self.cfg_item[HAConfig.CFG_TOPICS][HA_MQTT.MQTT_JSON_STATE_TP_TO]
KeyError: 'state_topic'

Log nic ciekawego nie pokazuje a zatrzymuje się na:
2019-09-30 08:16:50,335 WARNING:No config found for device: 13
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #68 dnia: Września 30, 2019, 10:29:29 »
Czyli to było zbyt piękne, aby było prawdziwe ;)

OK, wprowadziłem kilka małych zmian. Zobaczmy dokąd to nas zaprowadzi... kolejna wersja w załączniku.
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #69 dnia: Września 30, 2019, 11:12:01 »
root@nas:/apps/docker-root/homeassistant/scripts# ./start_exta2ha.sh --testrun
Traceback (most recent call last):
  File "main_exta2ha.py", line 201, in <module>
    prog.main()
  File "main_exta2ha.py", line 186, in main
    self.ha_mqtt.ha_update_state_from_device(device)
  File "/apps/docker-root/homeassistant/scripts/ExtaLife_HA.py", line 861, in ha_update_state_from_device
    obj_id = self.k.split('-')
AttributeError: 'HA_MQTT' object has no attribute 'k'
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #70 dnia: Września 30, 2019, 11:17:56 »
ok, faktycznie ma rację, że się wywalił 😅
Żeby nie zamieszczać kolejnych załączników.
Wyedytuj linię 861 i zamień ją na:
Cytuj
obj_id = k.split('-')
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #71 dnia: Września 30, 2019, 11:27:45 »
no to wracamy do punktu wyjścia
root@nas:/apps/docker-root/homeassistant/scripts# ./start_exta2ha.sh --testrun
Traceback (most recent call last):
  File "main_exta2ha.py", line 173, in main
    self.ha_cfg.get_from_device(device)
  File "/apps/docker-root/homeassistant/scripts/ExtaLife_HA.py", line 629, in get_from_device
    cfg_dict[objid] = self.cfg_dict[objid]      # may raise KeyError exception
KeyError: '13-1'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main_exta2ha.py", line 201, in <module>
    prog.main()
  File "main_exta2ha.py", line 182, in main
    self.ha_mqtt.ha_do_discovery_single(k, v)
  File "/apps/docker-root/homeassistant/scripts/ExtaLife_HA.py", line 947, in ha_do_discovery_single
    mq_tp_state         = ha_topic.get_state_topic()
  File "/apps/docker-root/homeassistant/scripts/ExtaLife_HA.py", line 1082, in get_state_topic
    return self.tp_base+self.cfg_item[HAConfig.CFG_TOPICS][HA_MQTT.MQTT_JSON_STATE_TP_TO]
KeyError: 'state_topic'
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #72 dnia: Września 30, 2019, 11:37:41 »
ok, małe nieporozumienie z pythonem.

Próba nie strzelba. Kolejna wersja. Stawiam, że po załadowaniu tej wersji przejdzie przynajmniej proces Discovery i RGT01 pojawi się w HA jako encja climate.grzejnik_salon. A może nawet zacznie działać i status będzie się updateował?...trzymam kciuki. Natomiast nie wiem czy sterowanie z HA będzie działać. Zobaczymy
« Ostatnia zmiana: Września 30, 2019, 12:00:05 wysłana przez admin »
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #73 dnia: Września 30, 2019, 12:13:47 »
root@nas:/apps/docker-root/homeassistant/scripts# ./start_exta2ha.sh --testrun
Traceback (most recent call last):
  File "main_exta2ha.py", line 201, in <module>
    prog.main()
  File "main_exta2ha.py", line 186, in main
    self.ha_mqtt.ha_update_state_from_device(device)
  File "/apps/docker-root/homeassistant/scripts/ExtaLife_HA.py", line 913, in ha_update_state_from_device
    i_device.get_wait_to_synchron(int(channel))
  File "/root/.pyenv/versions/3.6.9/lib/python3.6/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "/root/.pyenv/versions/3.6.9/lib/python3.6/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/root/.pyenv/versions/3.6.9/lib/python3.6/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/root/.pyenv/versions/3.6.9/lib/python3.6/json/encoder.py", line 180, in default
    o.__class__.__name__)
TypeError: Object of type 'set' is not JSON serializable

i log:
2019-09-30 12:12:37,971 WARNING:No config found for device: 13
2019-09-30 12:12:37,972 INFO:About to publish MQTT config payload topic: {"name": "Grzejnik salon", "device": {"identifiers": "zamel_exta_life_efc_01", "manufacturer": "Zamel", "model": "EFC-01", "name":
"Exta Life"}, "unique_id": "13-1", "mode_command_topic": "ha/climate/13-1/mode_set", "mode_state_topic": "ha/climate/13-1/mode_state", "modes": ["auto", "heat"], "temperature_command_topic": "ha/climate/1
3-1/temp_set", "temperature_state_topic": "ha/climate/13-1/temp_state", "precision": 0.5, "json_attributes_topic": "ha/climate/13-1/attributes", "min_temp": 5.0, "max_temp": 50.0, "temp_step": 0.5}
Elementy systemu, których używam: EFC-01, 1x RNK-22, 2x RNK-24, P-457/2, ROP-21, 3x ROP-22, RDP-21, 2x RGT-01, SLR-21, SLR-22, 3x RCK, 2x RCM, RCZ, RCR

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Pakiet integracyjny Exta Life <-> Home Assistant
« Odpowiedź #74 dnia: Września 30, 2019, 12:23:42 »
Na tym etapie proces Discovery powinien był się już wykonać tzn, że powinna się pojawić encja climate. Czy widzisz ją u siebie w HA (ekran states i Integrations)??
Spróbuję rozkminić co nie gra w aktualizacji stanu.
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant