Potrebujem vysvetlenie

Co umí šablony a jak je využívat.
Odpovědět
Marek
Nováček na fóru
Nováček na fóru
Příspěvky: 4
Registrován: 10. září 2023, 15:49
Dal poděkování: 1 poděkování

Potrebujem vysvetlenie

Příspěvek od Marek »

Ahojte .

Som v HA novy. A tak by som potreboval pomoc. Pátral som v home-assistant.io aj community.home-assistant.io no nie som raketový inžinier. Je to tam neskutočne neprehľadné.

Potrebujem vysvetliť kde robím chybu, lebo tomu asi nechápem.
Snímka obrazovky 2023-09-10 o 15.54.28.png
Ak zadám číselnú hodnotu 1 prečo mi ju podmienka IF nevráti ako OK , keď na konci mi vracia hodnotu 1.
Už s tým bojujem cez týždeň.

Potrebujem to na definovanie stavu Victron stavu nabíjania a vybíjania batérie. Venus posiela hodnotu 0-IDLE, 1-CHARGE, 2-DISCHARGE.

Kód: Vybrat vše

{% set value_json = {'Battery_State_Test': 1} %}

{% if states('value_json.Battery_State_Test') == 1 %}
ok
{% else %}
chyba
{% endif %}

{{ (value_json.Battery_State_Test) }}
Naposledy upravil(a) Marek dne 10. září 2023, 17:17, celkem upraveno 1 x.

Uživatelský avatar
Pete30
Moderátor
Moderátor
Příspěvky: 2626
Registrován: 30. září 2020, 20:33
Dal poděkování: 130 poděkování
Dostal poděkování: 287 poděkování

Re: Potrebujem vysvetlenie

Příspěvek od Pete30 »

Pokud je potřeba pomoci nevkládej sem obrázky (nic tam nejde upravovat, vlož sem správně naformátovaný skutečný kód.
Vlož kód označ ho a použij z lišty </>
Díky
Pokud nejsem přítomen tak jsem na rybách ;)

Uživatelský avatar
Pete30
Moderátor
Moderátor
Příspěvky: 2626
Registrován: 30. září 2020, 20:33
Dal poděkování: 130 poděkování
Dostal poděkování: 287 poděkování

Re: Potrebujem vysvetlenie

Příspěvek od Pete30 »

Vyzkoušej to takto

Kód: Vybrat vše

{% set value_json = {'Battery_State_Test': 1} %}
{% if value_json.Battery_State_Test == 1 %}
ok
{% else %}
chyba
{% endif %}

{{ (value_json.Battery_State_Test) }}
edit: jinak ty linky na které odkazuješ jsi asi špatně vložil, nefungují chyba 404
Pokud nejsem přítomen tak jsem na rybách ;)

Marek
Nováček na fóru
Nováček na fóru
Příspěvky: 4
Registrován: 10. září 2023, 15:49
Dal poděkování: 1 poděkování

Re: Potrebujem vysvetlenie

Příspěvek od Marek »

super. dakujem toto funguje. nenapadlo ma to dať bez zatvoriek ako funkciu. v návodoch na ofic. stranke je to vždy v zatvorke

Uživatelský avatar
acerot
Pokročilý
Pokročilý
Příspěvky: 114
Registrován: 12. prosinec 2022, 15:44
Dal poděkování: 2 poděkování
Dostal poděkování: 23 poděkování

Re: Potrebujem vysvetlenie

Příspěvek od acerot »

Jen doplním. Divil ses, že ti tvůj kód nejde, ale ve 3. a 9. řádku máš rozdíl. Přidal jsem 10. řádek podle toho, co máš ve 3. řádku a hleďmě - unknown ;)

Kód: Vybrat vše

1 {% set value_json = {'Battery_State_Test': 1} %}
2 
3 {% if states('value_json.Battery_State_Test') == 1 %}
4 ok
5 {% else %}
6 chyba
7 {% endif %}
8 
9 {{ (value_json.Battery_State_Test) }}
10 {{ states('value_json.Battery_State_Test') }}

Kód: Vybrat vše

chyba


1
unknown

Marek
Nováček na fóru
Nováček na fóru
Příspěvky: 4
Registrován: 10. září 2023, 15:49
Dal poděkování: 1 poděkování

Re: Potrebujem vysvetlenie

Příspěvek od Marek »

acerot píše: 12. září 2023, 22:51 Jen doplním. Divil ses, že ti tvůj kód nejde, ale ve 3. a 9. řádku máš rozdíl. Přidal jsem 10. řádek podle toho, co máš ve 3. řádku a hleďmě - unknown ;)
Práve preto by som to potreboval vysvetliť. Prečo mám rozdiel v 3 a 9 riadku a prečo 10 má hodnotu unknown.

Pretože nechapem kedy sa používa states, state_attr, atd. A to nehovorím o premennej a jej rozdielu ak je value_json.Battery_State bez uvodzoviek alebo 'value_json.Battery_State'.

Chápem štrukture MQTT tak isto aj JSON , viem si naprogramovať NODE-RED, posielať a prijimať správy medzi zariadeniami cez MQTT a spraovať ich, ale programovanie entity v home-assistant je pre mna vela pretože oficialna stránka nevysvetluje napríklad "A=1, A=A+1, PRINT A" ako je to trebarz s BASIC programovaní.

Takisto nevysvetluje kedy použiť () alebo ' ' prípade kombinaciu (' ') a ak ich použijem akú hodnotu mám očakávať.

V šablone velakrát nefunguje priklad s ofic stránky (ak tam vobec nejaký je). takže si to neviem odsimulovať pretože to hadže chybu.

Home-assistant je skvelý, ale čo sa týka navodu na programovanie tak to je otras. Takyto "bordel" v navode som ešte nikde nevidel. Aj ESP-HOME v navode je prehladnejšie a to som sa tam zozačiatku stratil.

Uživatelský avatar
acerot
Pokročilý
Pokročilý
Příspěvky: 114
Registrován: 12. prosinec 2022, 15:44
Dal poděkování: 2 poděkování
Dostal poděkování: 23 poděkování

Re: Potrebujem vysvetlenie

Příspěvek od acerot »

Myslím, že tvoje aktuální pocity znám. Když jsem s v HA kdysi začínal programovat kódem, myslel jsem, že s tím seknu snad tisíckrát a to jsem bývalej programátor. Jedním příspěvkem tě samozřejmě všechno nenaučím, ale snad tě bude motivovat, že dnes už práskám automatizace i scripty v YAMLu levou zadní a nedám na něj dopustit. Psát to v GUI je stokrát horší, jak na tvorbu, tak na údržbu. Visual Studio Code ti s YAMLem tak pomůže, že nemusíš dělat skoro nic (skoro ;) ). Takže rozhodně vydrž! Jak píšeš, leccos už umíš, čili googli, googli a googli, čti příklady, sám si všechno ze všech stran zkoušej - a jednou to najednou prorazí a ty budeš jak v jiným světě , všechno bude dávat smysl (no, skoro tak ;) ).

state a state_attr jsou funkce pracující s entitami HA. Patří sem https://www.home-assistant.io/docs/conf ... extensions a rozšiřují Jinja jazyk, který HA používá v šablonách, o funkce specifické pro HA. Tím set value_json jsi nedefinoval entitu, ale běžnou proměnnou, jejíž obsah je objekt (zapisuje se do složených závorek formou klíč:hodnota).

tady {% set value_json = {'Battery_State_Test': 1} %} je to v uvozovkách, protože definuješ proměnnou typu objekt, kde klíč (to před dvojtečkou) má být string. Pokud někde uvidíš zápis klíče bez uvozovek, je to špatně anebo ten kompilátor to za toho programátora lenocha pak doplní ;)

states je funkce a argumenty funkce se zapisují do kulatých závorek.

atd. atd. ;)

Co se psaní kódu týče, jsou důležitý:
https://www.home-assistant.io/docs/scripts/
https://www.home-assistant.io/docs/conf ... emplating/
https://jinja.palletsprojects.com/en/3.1.x/

PS: kdybych psal nějaký voloviny, s klidem mě někdo opravte/doplňte.

Odpovědět

Zpět na „Šablony“