Home Assistant pomoc dla początkujących

  • 148 Odpowiedzi
  • 37286 Wyświetleń
Odp: Home Assistant pomoc dla początkujących
« Odpowiedź #135 dnia: Lipca 31, 2021, 12:46:42 »
Zrobiłem automatyzację. Jeśli będzie ciemniej niż 50lx a ktoś będzie w pomieszczeniu ma się zapalić jedną lampa.
Nie witam co robię nie tak ale to się nie robi.
Mam też inna automatyzację ale bez warunku i ta działa.
Macie jakiś pomysł?

Warunek dla systemu jest zero jedynkowy, więc admin ma rację. Proponuję użyć narzędzi deweloperskich -> stany -> wybrać encję  i można sprawdzić jej stan.
Dla czujników ruchu będzie to on lub off. Przyda się również zwłoka czasowa.
Warunkiem automatyzacji powinien stan a nie urządzenie.
Elementy systemu, których używam: Bramka AIS DEV3 "Jolka" + pilot+aplikacja WearOS, 32 urządzenia Exta Life z EFC-01, Mi-flora, Sonoff, ESP8266, ESP32 (ESPHome, Tasmota) Zigbee2mqtt, kamery IP, inteligentny głośnik w oparciu o AIS DEV1, urządzenia SIP.

*

Offline shibby

  • ***
  • 193
    • Zobacz profil
Odp: Home Assistant pomoc dla początkujących
« Odpowiedź #136 dnia: Stycznia 24, 2022, 10:31:47 »
Panowie,

nabyłem kilka elementów blebox. O ile większość z nich ma natywną obsługę w HA, tak niestety jeden nie - thermobox do sterowania ogrzewaniem.

Blebox natomiast ma API po http
https://technical.blebox.eu/openapi_thermobox/openAPI_thermoBox_20200229.html

przykładowo http://<ip_urzadzenia>/state zwraca mi
{"thermo":{"state": 1,"operatingState": 1,"desiredTemp": 2300,"safety": {"eventReason": 0,"triggered": []}},"sensors":[{"id": 0,"type": "temperature","value": 2293,"state": 2}]}
gdzie desireTemp to temperatura zadana a value to temperatura z czujnika (sondy).

Dodatkowo http://<ip_urzadzenia>/s/t/inc/50
zwiększy temperaturę o 0,5st

a http://<ip_urzadzenia>/s/t/dec/50
zmniejszy temperaturę o 0,5st

Potrzebuję zrobić 4 encje:
- sensor: temperatura z czujnika
- sensor: temperatura zadana
- przyciski zwiększenie/zmniejszenie temperatury o 0.5st

Taka minimalna obsługa thermoboxa przez HA by mnie w zupełności zadowalała :) Ktoś pomoże? :)
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: Home Assistant pomoc dla początkujących
« Odpowiedź #137 dnia: Stycznia 24, 2022, 11:57:07 »
Panowie,

nabyłem kilka elementów blebox. O ile większość z nich ma natywną obsługę w HA, tak niestety jeden nie - thermobox do sterowania ogrzewaniem.

Blebox natomiast ma API po http
https://technical.blebox.eu/openapi_thermobox/openAPI_thermoBox_20200229.html

przykładowo http://<ip_urzadzenia>/state zwraca mi
{"thermo":{"state": 1,"operatingState": 1,"desiredTemp": 2300,"safety": {"eventReason": 0,"triggered": []}},"sensors":[{"id": 0,"type": "temperature","value": 2293,"state": 2}]}
gdzie desireTemp to temperatura zadana a value to temperatura z czujnika (sondy).

Dodatkowo http://<ip_urzadzenia>/s/t/inc/50
zwiększy temperaturę o 0,5st

a http://<ip_urzadzenia>/s/t/dec/50
zmniejszy temperaturę o 0,5st

Potrzebuję zrobić 4 encje:
- sensor: temperatura z czujnika
- sensor: temperatura zadana
- przyciski zwiększenie/zmniejszenie temperatury o 0.5st

Taka minimalna obsługa thermoboxa przez HA by mnie w zupełności zadowalała :) Ktoś pomoże? :)

Kiedyś trochę pomagałem koledze integrować Grentona z HA, więc nakieruję Cię na rozwiązanie:
Sensor
To czego potrzebujesz to Commandline sensor: https://www.home-assistant.io/integrations/sensor.command_line/
a z linii komend trzeba odpalić curl, aby odczytać dane z urządzenia. Przykłady: https://community.home-assistant.io/t/curl-sensor/154293/2

Przyciski
To zrobiłbym z kolei na wywołaniu usługi Shell Command także z curl: https://www.home-assistant.io/integrations/shell_command/
Przykłady: https://community.home-assistant.io/t/how-can-i-use-curl-from-an-automation/60449/2?u=grzeg8102

Jako admin sieciowy i twórca softu do ruterów na pewno jesteś bardzo dobrze zaznajomiony z curl.

Daj znać czy to ci rozwiązało problem. Oczywiście najlepiej byłoby gdyby Blebox wprowadził obsługę dla tego elementu, ale tak jak Ci już pisałem - ta integracja wygląda prosto, ale prosta nie jest i trochę zabawy wymaga, aby zrozumieć jak to działa i co trzeba zrobić, aby dodać obsługę tego komponentu, bo wygląda, że przy tym nie trzeba nic ruszać w kodzie HA tylko w bibliotece BleBox, a tego już ktokolwiek nie ruszy, bo zmiany będą wpływały na wszystkie projekty używające tej biblioteki, nie tylko HA.
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: Home Assistant pomoc dla początkujących
« Odpowiedź #138 dnia: Stycznia 24, 2022, 12:19:31 »
Polecam Ci otworzyć issue na github HA Core dla tej integracji - może ktoś się zlituje i doda obsługę. A dodatkowo issue w repo BleBox: https://github.com/blebox/blebox_uniapi/issues
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: Home Assistant pomoc dla początkujących
« Odpowiedź #139 dnia: Stycznia 24, 2022, 12:27:37 »
piękne dzięki za odpowiedź. Pierwszą część "zadania" udało mi się zrobić przez REST Api :) Efekt póki co taki:

sensor:
  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Temp Raw
    value_template: "{{ (value_json.sensors[0].value) }}"
    scan_interval: 5

  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Docel Raw
    value_template: "{{ (value_json.thermo.desiredTemp) }}"
    scan_interval: 5
   
  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Heating
    scan_interval: 5
    value_template: "{% if value_json.thermo.operatingState | int == 1 %} 'Heating' {% else %} 'Standby' {% endif %}"
   
  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Status
    value_template: "{% if value_json.thermo.state | int == 1 %} 'On' {% else %} 'Off' {% endif %}"
    scan_interval: 5
   
  - platform: template
    sensors:
      blebox_salon_temp:
        device_class: temperature
        value_template: "{{ (states('sensor.blebox_salon_temp_raw') | float / 100 ) | round(2) }}"
       
      blebox_salon_docel:
        device_class: temperature
        value_template: "{{ (states('sensor.blebox_salon_docel_raw') | float / 100 ) | round(2) }}"

Niestety nie wiem jak zrobić by w jednej linii wyciągnąć dane jsonem i je przeparsować (podzielić przez 100). Co bym nie robił to mi nie działało. Dlatego cinalnie zrobiłem drugi senson i tam wartość RAW poprawiłem :)

Teraz pora za przyciski +/- ;)
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 shibby

  • ***
  • 193
    • Zobacz profil
Odp: Home Assistant pomoc dla początkujących
« Odpowiedź #140 dnia: Stycznia 24, 2022, 12:29:20 »
Polecam Ci otworzyć issue na github HA Core dla tej integracji - może ktoś się zlituje i doda obsługę. A dodatkowo issue w repo BleBox: https://github.com/blebox/blebox_uniapi/issues

W przyszłości wiem, że się pojawi obsługa thermoboxa (saunsabox już widzę dodali). Ale kiedy to będzie... Póki co więc chociaż taka minimalna obsługa mi wystarczy :)
« Ostatnia zmiana: Stycznia 24, 2022, 12:42:46 wysłana przez admin »
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: Home Assistant pomoc dla początkujących
« Odpowiedź #141 dnia: Stycznia 24, 2022, 12:43:28 »
Sorki, bo zamiast napisać post z cytatet to wyedytowałem twój oryginalny. Już wrzucam swoją odpowiedź:

W przyszłości wiem, że się pojawi obsługa thermoboxa (saunsabox już widzę dodali). Ale kiedy to będzie... Póki co więc chociaż taka minimalna obsługa mi wystarczy :)

Rzuciłem jeszcze raz okiem na Pythonowe API thermoboxa i mam takie nieodparte wrażenie (choć mogę się mylić), że to tylko kwestia dodania kilku linijek w pliku: https://github.com/blebox/blebox_uniapi/blob/master/blebox_uniapi/box_types.py, aby wprowadzić obsługę thermoboxa do HA. Generalnie to integracja HA pobiera dane o urządzeniach z API pythonowego a w nim nie ma nic o thermobox, a właśnie o Saunabox jest.
Sam tego nie naprawisz, a przynajmniej nie na stałe bo każda aktuaizacja HA napisze ci zmianę, ale ja bym się na towim miejscu pobawił, bo jeśli się uda, to wtedy można bardzo przyspieszyć to wdrożenie thermoboxa do HA - trzeba będzie zrobić update na githubie i PyPi dla BleBox API, a potem w integracji BleBox w HA zrobić tylko dribną zmianę, że prerequisite/dependency to nowsza wersja python API z PyPi i tyle - a coś takiego to twórcy HA syzbką klepną i w nabliżsyzm release się pojawi, może nawet nie miesięcznym, a razem z drobnym hotfixem.

To co musisz zrobić, aby spróbować czy HA wykryje urządzenie to wyedytować plik box_types.py wewnątrz kontenera docker HA Core (jako linuksowiec na pewno poradzisz sobie ze znalezieniem pliku w kontenerze jakąś komendą), dodać tam te kilka linijek analogicznie do pozostałych urządzeń, zapisąć plik, restart HA i spróbować dodać Thermobox.
Jeśli się uda, to pokieruję Cię jak to dalej zrobić, aby to weszło do repo HA na GitHub,a od tego droga już krótka do oficjalnego wsparcia.
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 admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Home Assistant pomoc dla początkujących
« Odpowiedź #142 dnia: Stycznia 24, 2022, 12:54:14 »
piękne dzięki za odpowiedź. Pierwszą część "zadania" udało mi się zrobić przez REST Api :) Efekt póki co taki:

sensor:
  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Temp Raw
    value_template: "{{ (value_json.sensors[0].value) }}"
    scan_interval: 5

  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Docel Raw
    value_template: "{{ (value_json.thermo.desiredTemp) }}"
    scan_interval: 5
   
  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Heating
    scan_interval: 5
    value_template: "{% if value_json.thermo.operatingState | int == 1 %} 'Heating' {% else %} 'Standby' {% endif %}"
   
  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Status
    value_template: "{% if value_json.thermo.state | int == 1 %} 'On' {% else %} 'Off' {% endif %}"
    scan_interval: 5
   
  - platform: template
    sensors:
      blebox_salon_temp:
        device_class: temperature
        value_template: "{{ (states('sensor.blebox_salon_temp_raw') | float / 100 ) | round(2) }}"
       
      blebox_salon_docel:
        device_class: temperature
        value_template: "{{ (states('sensor.blebox_salon_docel_raw') | float / 100 ) | round(2) }}"

Niestety nie wiem jak zrobić by w jednej linii wyciągnąć dane jsonem i je przeparsować (podzielić przez 100). Co bym nie robił to mi nie działało. Dlatego cinalnie zrobiłem drugi senson i tam wartość RAW poprawiłem :)

Teraz pora za przyciski +/- ;)
Też myślałem o REST, ale wydawało mi się, że to działa tylko gdy zaimplementowane jest w urządzeniu REST API o zadanej strukturze response'a, a tu chyba tak nie jest, ale skoro działa to fajnie :)

Konwersję / 100 powinno dać się zrobić bez problemu w value_template bez dodatkowego template sensor.
Spróbuj tak jak w twoim template sensor:
"{{ (value_json.thermo.desiredTemp|float / 100 )|round(2) }}
[/quote]
Ostatnio zauważyłem, że nawiasy są czasem konieczne, aby template działał tak jak chcemy. Jak to nie będzie działało, to coś w logu powinno się pojawić i nakierować na przyczynę.
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: Home Assistant pomoc dla początkujących
« Odpowiedź #143 dnia: Stycznia 24, 2022, 12:56:09 »
przyciski w banalny sposób zrobiłem ale działa

switch:
  - platform: command_line
    switches:
      grzejnik_salon_plus:
        command_on: "curl -X GET http://10.1.1.206/s/t/inc/50"
        command_off: "curl -X GET http://10.1.1.206/s/t/inc/50"

  - platform: command_line
    switches:
      grzejnik_salon_minus:
        command_on: "curl -X GET http://10.1.1.206/s/t/dec/50"
        command_off: "curl -X GET http://10.1.1.206/s/t/dec/50"

Natomiast zrobiłeś mi mega prezent informacją że dość prosto powinno dać się dodać obsługę thermoboxa. bo tam sobie patrzę na saunabox w pliku box_types.py i faktycznie to wygląda bliźniaczo podobnie do thermoboxa

curl http://10.1.1.206/api/thermo/extended/state | jq .

{
  "thermo": {
    "state": 1,
    "operatingState": 0,
    "desiredTemp": 2200,
    "mode": 1,
    "minimumTemp": 1400,
    "maximumTemp": 3500,
    "safety": {
      "eventReason": 0,
      "triggered": []
    },
    "safetyTempSensor": {
      "sensorId": null
    }
  },
  "sensors": [
    {
      "id": 0,
      "type": "temperature",
      "value": 2293,
      "state": 2
    }
  ]
}

Żeby było zabawniej to API dla thermoboxa jest z lutego 2020 a to saunaboxa nie ma oficjalnego API, więc nie zdziwię się jak korzysta on z api thermoboxa
https://technical.blebox.eu/

idę się pobawić :)
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 shibby

  • ***
  • 193
    • Zobacz profil
Odp: Home Assistant pomoc dla początkujących
« Odpowiedź #144 dnia: Stycznia 24, 2022, 13:02:11 »

Spróbuj tak jak w twoim template sensor:
"{{ (value_json.thermo.desiredTemp|float / 100 )|round(2) }}

no oczywiście że działa :D piękne dzięki :)

sensor:
  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Temp
    value_template: "{{ (value_json.sensors[0].value|float / 100 )|round(2) }}"
    scan_interval: 5

  - platform: rest
    resource: http://10.1.1.206/state
    method: GET
    name: Blebox Salon Docel
    value_template: "{{ (value_json.thermo.desiredTemp|float / 100 )|round(2) }}"
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: Home Assistant pomoc dla początkujących
« Odpowiedź #145 dnia: Stycznia 24, 2022, 16:00:08 »
kolego @shibby - założyłem nowy, osobny wątek dla blebox, bo trochę się offtop zrobił: https://www.forumextalife.pl/index.php?topic=417.0
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: Home Assistant pomoc dla początkujących
« Odpowiedź #146 dnia: Lutego 26, 2023, 21:10:35 »
Witam, zaczynam zabawę z integracja z home, mam pytanie, jak rozwiązać połączenie z centralka efc-01. Podczas połączenia z home tracę komunikację poprzez aplikacje extalife, pojawią się komunikat przekroczono ilość aktywnych połączeń.

*

Offline SebiCo

  • ***
  • 225
    • Zobacz profil
Odp: Home Assistant pomoc dla początkujących
« Odpowiedź #147 dnia: Lutego 26, 2023, 21:41:36 »
Wyłącz chmurę, lub jeśli nie chcesz jej wyłączać aplikacja w telefonie łącz się przez chmurę.
Ogólna zasada:
* chmura - dostępne 2 połączenia do kontrolera z czego jedno zajmuje chmura drugie integracja, aplikacją już nie połączysz się bezpośredni do kontrolera, ale masz nieograniczony dostęp przez chmurę.
* brak chmury - dostępne 3 połączenia do kontrolera z czego jedno zajmuje integracja i pozostają dwa połączenie dla aplikacji w danym momencie.

Odp: Home Assistant pomoc dla początkujących
« Odpowiedź #148 dnia: Lutego 27, 2023, 00:23:47 »
Wszystko działa po wyłączeniu chmury.