Natywna integracja z Home Assistant (komponent) 2.1

  • 338 Odpowiedzi
  • 25196 Wyświetleń
*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #225 dnia: Października 28, 2021, 13:49:31 »
Już namierzyłem miejsce. Dzieje się to przy ponownym wczytywaniu wczytywaniu konfiguracji. Wygląda na to, że ta funkcja jest też wołana niejawnie przy włączeniu/wyłączaniu urządzeń.
Trochę się bawiłem nowymi urządzeniami i dlatego to wyszło.
Ta opcja to coś co pojawiło się relatywnie niedawno w HA. Myślę gdzieś w ciągu ostatniego roku. Podczas gdy tworzyłem integrację, to nie było jeszcze tej funkcji w HA więc nie testowałem tego. Prawdopodobnie będą potrzebne jakieś zmiany w  kodzie, aby wprowadzić obsługę tej funkcji w HA i zwiększyć kompatybilność, ale ostatnio bardzo krucho u mnie z czasem, więc na razie musi zostać tak jak jest, bo nawet nie wiem co dokładnie potrzeba zrobić, aby to działało. Muszę trochę poczytać, albo rozeznać się na discord HA u innych developerów.

Jako workaround proponuję nie używać tej funkcji, a gdy będzie potrzeba przeładowania integracji to sugeruję zrestartować całego HA Core i wtedy wszystko załaduje się od nowa.
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

Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #226 dnia: Października 28, 2021, 15:04:04 »
Jest OK.

Inna sprawa, czy powinien się pojawić ten błąd (tak, w logu jest jako błąd a nie ostrzeżenie) w przypadku ponownego wczytywania konfiguracji, czy też da się to jakoś naprawić.

EDIT: na "naprawić" odpowiedź widzę już w poprzednim poście  ;)
« Ostatnia zmiana: Października 28, 2021, 15:07:13 wysłana przez Fantomas »
Elementy systemu, których używam: Bramka AIS DEV 3 + pilot, EFC-01, 3x ROP-01, 3x ROP-02, RDP-01, ROP-07, RNK-02, 5x RNK-04, RNP-01, P-257/2, 2x ROP-21, 3x ROP-22, 5x RNK-24, RCK-21, 3x RCR-21, RCM-21, 4x RGT-01, urządzenia Zigbee, kamera IP.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #227 dnia: Października 28, 2021, 17:18:39 »
Ten błąd loguje HA, a nie sama integracja, więc ja nie mam nad tym kontroli. Przestanie się pokazywać gdy zrobię niezbędne zmiany żeby obsłużyć to ponowne wczytywanie
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

Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #228 dnia: Października 28, 2021, 19:04:27 »
OK, nic pilnego.

Kolejne pytanie: Czy da się wyciągnąć trochę więcej informacji z RGT-01? Interesowałby mnie czas ostatniej synchronizacji i poziom zamknięcia zaworu.

Aktualnie dostępne atrybuty (BTW: battery_status, to prawdziwe info - nie jest wyczerpana, czy raczej tylko zaślepka?) :
hvac_modes:
  - auto
  - heat
min_temp: 5
max_temp: 50
target_temp_step: 0.5
current_temperature: 22
temperature: 18
channel_id: 34-1
not_responding: false
waiting_to_synchronize: false
battery_status: false
temperature_old: 220
friendly_name: Sypialnia
supported_features: 1
Elementy systemu, których używam: Bramka AIS DEV 3 + pilot, EFC-01, 3x ROP-01, 3x ROP-02, RDP-01, ROP-07, RNK-02, 5x RNK-04, RNP-01, P-257/2, 2x ROP-21, 3x ROP-22, 5x RNK-24, RCK-21, 3x RCR-21, RCM-21, 4x RGT-01, urządzenia Zigbee, kamera IP.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #229 dnia: Października 28, 2021, 19:44:24 »
OK, nic pilnego.

Kolejne pytanie: Czy da się wyciągnąć trochę więcej informacji z RGT-01? Interesowałby mnie czas ostatniej synchronizacji i poziom zamknięcia zaworu.

Aktualnie dostępne atrybuty (BTW: battery_status, to prawdziwe info - nie jest wyczerpana, czy raczej tylko zaślepka?) :
hvac_modes:
  - auto
  - heat
min_temp: 5
max_temp: 50
target_temp_step: 0.5
current_temperature: 22
temperature: 18
channel_id: 34-1
not_responding: false
waiting_to_synchronize: false
battery_status: false
temperature_old: 220
friendly_name: Sypialnia
supported_features: 1
Powinno się dać,.ale nie posiadam tego urządzenia i nie mam też już dostępu do logów z EFC-01 od kolegi shibby, więc nie wiem już jak wygląda model danych RGT w protokole Extalife. Jeśli zarejestrujesz komunikację między telefonem, a kontrolerem to zobaczymy co da się 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: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #230 dnia: Października 28, 2021, 19:46:09 »
A informacje o baterii są skopiowane z protokołu Extalife i pokazują to co wysyła kontroler do aplikacji. Jeśli cos się nie zgadza to już Zamela trzeba pytać  :)
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: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #231 dnia: Października 28, 2021, 21:31:10 »
To ciekawe. Z ciekawości odpaliłem na chwilę swoją instancję HA deweloperską i użyłem funkcji ponownego wczytania integracji i nie mam żadnego błędu. Integracja wczytuje się od nowa poprawnie. HA 2021.12.0. Może to jednak kwestia AIS? Na instancji produkcyjnej 2021.10 nie próbowałem. Może jutro spróbuję
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

Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #232 dnia: Października 28, 2021, 22:50:51 »
A informacje o baterii są skopiowane z protokołu Extalife i pokazują to co wysyła kontroler do aplikacji. Jeśli cos się nie zgadza to już Zamela trzeba pytać  :)
A to ciekawa różnorodność, bo dla innych encji (np. sensor.*) battery_status jest 0/1, a tutaj jest true/false  :)
Elementy systemu, których używam: Bramka AIS DEV 3 + pilot, EFC-01, 3x ROP-01, 3x ROP-02, RDP-01, ROP-07, RNK-02, 5x RNK-04, RNP-01, P-257/2, 2x ROP-21, 3x ROP-22, 5x RNK-24, RCK-21, 3x RCR-21, RCM-21, 4x RGT-01, urządzenia Zigbee, kamera IP.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #233 dnia: Października 29, 2021, 11:44:04 »
A informacje o baterii są skopiowane z protokołu Extalife i pokazują to co wysyła kontroler do aplikacji. Jeśli cos się nie zgadza to już Zamela trzeba pytać  :)
A to ciekawa różnorodność, bo dla innych encji (np. sensor.*) battery_status jest 0/1, a tutaj jest true/false  :)
Poza Zamelem raczej nikt nie wie dlaczego tak to tutaj jest a gdzie indziej inaczej. Generalnie są pewne niekonsekwencje w protokole Exta Life, a to jest kolejna z nich. Generalnie atrybuty encji mają poza kilkoma wyjątkami dla licznika MEM-21 wartości takie jak przysyła kontroler bez żadnych zmian.
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

Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #234 dnia: Października 31, 2021, 17:06:49 »
Coś tam udało mi się namierzyć  ;D
Z odpowiedzi na komendę 25:

{
   "status":"success",
   "command":25,
   "data":{
      "sync_time":1635684838,
      "last_sync":267,
      "time":1635685105,
      "hist_temperatures_max":5,
      "hist_temperatures_min":5,
      "alarm_temperatures_max":900,
      "alarm_temperatures_min":100,
      "readings_time":300,
      "synch_time":2,
      "valve_val":100,
      "button_lock":false,
      "global_temperatures":[
         180,
         200,
         240,
         220
      ],
      "colors":[
         10092339,
         10092531,
         16773887,
         2236979
      ]
   }
}

valve_val - zamknięcie zaworu (100%, czyli zamknięty)
sync_time - znacznik czasowy ostatniej synchronizacji (zapewne :D )

Są jeszcze zapytania dzięki którym można wyciągnąć harmonogram z głowicy i go ustawić. Do tego potrzebne będzie ustawienie global_temperatures z powyższej encji, więc ich odczyt przyszłościowo też może się przydać (w tablicy po kolei: 'poza domem', 'ekonomiczna', 'komfortowa', 'użytkownika'. Tak samo kolorki do nich przypisane w tablicy colors.
Elementy systemu, których używam: Bramka AIS DEV 3 + pilot, EFC-01, 3x ROP-01, 3x ROP-02, RDP-01, ROP-07, RNK-02, 5x RNK-04, RNP-01, P-257/2, 2x ROP-21, 3x ROP-22, 5x RNK-24, RCK-21, 3x RCR-21, RCM-21, 4x RGT-01, urządzenia Zigbee, kamera IP.

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #235 dnia: Listopada 03, 2021, 08:31:00 »
@Fantomas

ja mam tak
      sync_grzejnik_salon:
        friendly_name: "Salon synch."
        value_template: "{{ state_attr('climate.grzejnik_salon', 'waiting_to_synchronize') }}"
      batt_grzejnik_salon:
        friendly_name: "Wymiana baterii"
        value_template: "{{ state_attr('climate.grzejnik_salon', 'battery_status') }}"

jeżeli jedno albo drugie zbyt długo jest na True to jest to dla mnie info że bateria nadaje się do wymiany.

dla pozostałych czujników tj multisenson czy czujka ruchu mam tak
lastsync_multisensor_salon:
        friendly_name: "Multi. salon"
        value_template: "{{ state_attr('sensor.multisensor_salon_5', 'sync_time') | timestamp_custom('%Y-%m-%d %H:%M') }}"

czyli data ostatniej synchronizacji.
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

Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #236 dnia: Listopada 03, 2021, 11:36:17 »
Moja wariacja na temat, do włożenia do karty markdown:

{% if state_attr('climate.salon','waiting_to_synchronize') -%}
<ha-icon icon="mdi:sync"></ha-icon> Czekam na synchronizację z głowicą.
{%- else -%}
<ha-icon icon="mdi:check"></ha-icon> Ustawienia zsynchronizowane z głowicą.
{%- endif %}
{% if state_attr('climate.salon', 'battery_status') -%}
<ha-icon icon="mdi:battery-low"></ha-icon> Bateria do wymiany.
{%- else -%}
<ha-icon icon="mdi:battery-high"></ha-icon> Bateria OK.
{%- endif %}

Jednakowoż czas synchronizacji by się też przydał - żeby wiedzieć, czy w zadanych interwałach komunikacja z głowicą następuje.
Elementy systemu, których używam: Bramka AIS DEV 3 + pilot, EFC-01, 3x ROP-01, 3x ROP-02, RDP-01, ROP-07, RNK-02, 5x RNK-04, RNP-01, P-257/2, 2x ROP-21, 3x ROP-22, 5x RNK-24, RCK-21, 3x RCR-21, RCM-21, 4x RGT-01, urządzenia Zigbee, kamera IP.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #237 dnia: Listopada 03, 2021, 15:43:09 »
Coś tam udało mi się namierzyć  ;D
Z odpowiedzi na komendę 25:

{
   "status":"success",
   "command":25,
   "data":{
      "sync_time":1635684838,
      "last_sync":267,
      "time":1635685105,
      "hist_temperatures_max":5,
      "hist_temperatures_min":5,
      "alarm_temperatures_max":900,
      "alarm_temperatures_min":100,
      "readings_time":300,
      "synch_time":2,
      "valve_val":100,
      "button_lock":false,
      "global_temperatures":[
         180,
         200,
         240,
         220
      ],
      "colors":[
         10092339,
         10092531,
         16773887,
         2236979
      ]
   }
}

valve_val - zamknięcie zaworu (100%, czyli zamknięty)
sync_time - znacznik czasowy ostatniej synchronizacji (zapewne :D )

Są jeszcze zapytania dzięki którym można wyciągnąć harmonogram z głowicy i go ustawić. Do tego potrzebne będzie ustawienie global_temperatures z powyższej encji, więc ich odczyt przyszłościowo też może się przydać (w tablicy po kolei: 'poza domem', 'ekonomiczna', 'komfortowa', 'użytkownika'. Tak samo kolorki do nich przypisane w tablicy colors.
Ah tak, teraz pamiętam. Ktoś już kiedyś o tym pisał. To osobna komenda do zaimplementowania. Szkoda, że tak to Zamel wymyślił, bo to dość mocno komplikuje mi sprawę, bo dla pewnego rodzaju urządzeń trzebaby robić dodatkowe zapytania. A w zasadzie żeby było ładnie i spójnie to dla każdego trzebaby robić takie zapytanie, a to niestety oznacza, że kontroler musiałby wykonać dodatkowe zapytanie do każdego urządzenia. W rezultacie całkowity czas odpytywania wszystkich urządzeń (cyklicznie co 5 minut) znacznie się wydłuży, a co za tym idzie - szansa, że nastąpi zakłócenie transmisji jakiegoś czujnika lub sygnał sterujący z kontrolera lub nadajnika/pilota nie dotrze do odbiornika. Generalnie czas zajętości radia należy zdecydowanie minimalizować.
Ale nie wykluczam, że zastanowię się, może jako kwestia konfiguracji w integracji. Będzie można to sobie włączyć dodatkowo i wtedy encje zyskają dodatkowe informacje.
Tyle że z czasem u mnie już nie tak dobrze jak w 2018,19 i nawet 2020 roku i gdybym teraz miał robić integrację z ExtaLife to zajęłoby mi to nieporównywalnie więcej czasu.
Ale nie wykluczam, że jak sytuacja się zmieni to coś tutaj dodam.

Żeby mi trochę ułatwić sprawę w przyszłości to mam zadanie dla ciebie: uzupełnienie naszej wiki o opis komendy 25 - pod tym adresem. Jako referencyjny przykład może być ten (poziom szczegółowości): https://www.forumextalife.pl/wiki/index.php/EFC-01:TCP/IP:Polecenia:FetchDevicesFromCategory, lub ten: https://www.forumextalife.pl/wiki/index.php/EFC-01:TCP/IP:Polecenia:ControlDevice

To usystematyzuje wiedzę o protokole i ułatwi odnajdywanie potrzebnych do implementacji informacji. Powodzenia!

PS. Logowanie do wiki działa przez autoryzację forum - ten sam user i hasło jaki masz na forum
« Ostatnia zmiana: Listopada 03, 2021, 15:56:03 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 SebiCo

  • ***
  • 225
    • Zobacz profil
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #238 dnia: Listopada 03, 2021, 22:48:17 »
Wiem, że to "druciarnia, ale...

Mam skrypty dla:
-synchronizacji (sync.py)

import socket
host = '192.168.1.136'
port = 20400
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall(b'{"command":1,"data":{"login":"login","password":"haslo"}}')
data = s.recv(1024)
s.sendall(b'{"command":25,"data": {"channel":1,"id":18}}')
data = s.recv(1024)
lista = str(data)
print(lista[lista.find('last_sync')+11:lista.find('"time"')-1])

- otwarcia zaworu (zaw.py)

import socket
host = '192.168.1.136'
port = 20400
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall(b'{"command":1,"data":{"login":"login","password":"haslo"}}')
data = s.recv(1024)
s.sendall(b'{"command":25,"data": {"channel":1,"id":18}}')
data = s.recv(1024)
lista = str(data)
print(str(100 - lista[lista.find('valve_val')+11:lista.find('"button_lock"')-2]))

W sensorach mam dodane

- platform: command_line
  name: Sync zawór kuchnia
  command: "python sciezka_do_pliku/sync.py"
  unit_of_measurement: "s"
  scan_interval: 300
 
- platform: command_line
  name: Zawór kuchnia
  command: "python sciezka_do_pliku/zaw.py"
  unit_of_measurement: "%"
  scan_interval: 300
 
Oczywiście trzeba zmienić na swoje: ip, login, hasło, id zaworu i ścieżkę do plików.

 i u mnie działa ;)

Jak widać poniżej zawór w kuchni ma problemy, alarm mam ustawiony na > 3600 więc niedługo dostane maila ;)
« Ostatnia zmiana: Listopada 03, 2021, 22:51:29 wysłana przez SebiCo »

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Natywna integracja z Home Assistant (komponent) 2.1
« Odpowiedź #239 dnia: Listopada 04, 2021, 09:47:03 »
Wiem, że to "druciarnia, ale...

Mam skrypty dla:
-synchronizacji (sync.py)

import socket
host = '192.168.1.136'
port = 20400
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall(b'{"command":1,"data":{"login":"login","password":"haslo"}}')
data = s.recv(1024)
s.sendall(b'{"command":25,"data": {"channel":1,"id":18}}')
data = s.recv(1024)
lista = str(data)
print(lista[lista.find('last_sync')+11:lista.find('"time"')-1])

- otwarcia zaworu (zaw.py)

import socket
host = '192.168.1.136'
port = 20400
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall(b'{"command":1,"data":{"login":"login","password":"haslo"}}')
data = s.recv(1024)
s.sendall(b'{"command":25,"data": {"channel":1,"id":18}}')
data = s.recv(1024)
lista = str(data)
print(str(100 - lista[lista.find('valve_val')+11:lista.find('"button_lock"')-2]))

W sensorach mam dodane

- platform: command_line
  name: Sync zawór kuchnia
  command: "python sciezka_do_pliku/sync.py"
  unit_of_measurement: "s"
  scan_interval: 300
 
- platform: command_line
  name: Zawór kuchnia
  command: "python sciezka_do_pliku/zaw.py"
  unit_of_measurement: "%"
  scan_interval: 300
 
Oczywiście trzeba zmienić na swoje: ip, login, hasło, id zaworu i ścieżkę do plików.

 i u mnie działa ;)

Jak widać poniżej zawór w kuchni ma problemy, alarm mam ustawiony na > 3600 więc niedługo dostane maila ;)
Świetna robota kolego! :) Na pewno komuś się przyda. ExtaLife zdecydowanie stwarza potrzebę bycia wynalazcą :D Jest to dodatkowo świetny przykład jak genialnym systemem jest HA - można nim nawet leczyć niedociągnięcia innych systemów jak ten nasz.
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