-
Fototrend
Okos Otthon összefoglaló:
Új hozzászólás Aktív témák
-
kis.zsolt
aktív tag
válasz
Pistivi #56542 üzenetére
Itt elég sokan próbálunk szkriptet írni a kérésed szerint.
Hogy egyszerűsítsem a dolgod, én a kiindulópontra koncentráltam, vagyis arra a hozzászólásodra, melyre most válaszolok - azóta persze születtek jobbnál jobb szkriptek, de én az alapokból indulnék ki, ha megengeded:
Az általad megosztott szkript egy egyszeri végrehajtást biztosít, de nem ismétli meg a ciklust. A kívánt viselkedéshez egy folyamatosan ismétlődő ciklust kell létrehozni, amely figyelembe veszi a kapcsoló állapotát. Arepeat
funkciót kell használnod a ciklikus viselkedéshez.
Az alábbi példa szkript megvalósítja a 10 perc bekapcsolt állapotot és 20 perc kikapcsolt állapotot, és ezt addig ismétli, amíg azinput_boolean.pince_szelloztetes
kapcsoló bekapcsolt állapotban vanalias: Szelloztetes
description: "Ventilátor ciklikus vezérlése"
mode: restart
trigger:
- platform: state
entity_id: input_boolean.pince_szelloztetes
from: "off"
to: "on"
condition: []
action:
- repeat:
while:
- condition: state
entity_id: input_boolean.pince_szelloztetes
state: "on"
sequence:
- service: switch.turn_on
target:
entity_id: switch.d0............
- delay: "00:10:00" # 10 perc
- service: switch.turn_off
target:
entity_id: switch.d0............
- delay: "00:20:00" # 20 perc
Kipróbálni nem tudtam, de mintaként megállja a helyét.
Remélem segít a problémád megoldásában. -
Degeczi
nagyúr
válasz
Pistivi #56542 üzenetére
Ilyen hosszú időzítéseket nem túl célszerű delay-el megoldani, mert nagyon nagy rá az esély, h az automatizálás futása közben indítod újra a rendszert, és akkor félbeszakad az egész, vagyis már nem fog ki-, vagy épp bekapcsolni...
Lehet, szellőztetésnél ez csak kellemetlenség, de pl. locsolásnál már komoly anyagi kárt is okozhat egy ilyen hiba, így ahol ez fontos, ott mindenképpen más megoldást érdemes keresni, pl. bekapcsolásnál egy dátum segédváltozóba írni a kikapcsolás elvárt időpontját, és egy percenként lefutó automatizálásban azt nézni, elmúlt-e már az az időpont, az atombiztos.
Másrészt ha kézzel szerkesztesz yaml file-okat, mindenképpen nevezd át vmi beszédesre az entitásokat, mert a generált id-k olvashatatlanok emberi szemmel, ill. device alapú hivatkozás helyett sima entitás alapút használj, mert az nincs eszközhöz kötve (ha lecserélsz egy kapcsoló hardvert, az újnak is adhatsz ugyanolyan entitás id-t, míg a device id mindenképpen egyedi, és többé nem működik az automatizálás) másrészt jól dokumentált, míg a device alapú automatizálások egyáltalán nem, azok a GUI-n szerkesztésre jók csak.
-
dbius
veterán
válasz
Pistivi #56542 üzenetére
Én valami ilyesmit próbálnék első körben:
description: "Akármi"
mode: single
triggers:
- trigger: state
entity_id:
- sensor.marci_szobaja_homerseklet
conditions: []
actions:
- choose:
- conditions:
- condition: state
entity_id: light.tradfri_eloszoba_vilagitas
state: "on"
sequence:
- delay:
hours: 0
minutes: 10
seconds: 0
- type: turn_off
device_id: 12d38ffe9e29a9b14e932f1fdf9ee18e
entity_id: 290d7de698e3c9e3abee2c2f476b6625
domain: light
alias: Ha be van kapcsolva
- conditions:
- condition: state
entity_id: light.tradfri_eloszoba_vilagitas
state: "off"
sequence:
- delay:
hours: 0
minutes: 20
seconds: 0
- type: turn_on
device_id: 12d38ffe9e29a9b14e932f1fdf9ee18e
entity_id: 290d7de698e3c9e3abee2c2f476b6625
domain: light
alias: Ha ki van kapcsolva
Röviden:
Trigger (akkor) az maga a kapcsoló állapotváltozása, (esetleg HA restart)
Majd hajtsa végre (logikai - választ):
- ha be van kapcsolva: késleltet 10 percet, majd kapcsolja ki
- ha ki van kapcsolva: késlelte 20 percet, majd kapcsolja be.
Failsafe esetre be lehet rakni alapértelmezett műveletként pl. hogy kapcsolja be.Ezzel elvileg saját magát indítja újra, amikor vált az állapotok között.
Szerk: Amíg írtam Vizion is valami hasonlót javasolt. A példámban az entitásnevek csak véletlenszerűen lettek kiválasztva, hogy ki tudjam másolni Neked, hogy szükség esetén be tudd illeszteni YAML módban szerkesztve egy automatizmust.
[ Szerkesztve ]
-
válasz
Pistivi #56542 üzenetére
delay 3 sec az mi?
Mitől megy 10 percet és mitől áll 20 percet?
Mindegy. A végére ez kell sztem:
action: automation.trigger
data:
skip_condition: true
target:
entity_id: automation.szelloztetesEz triggereli az automatizációt.
Bár én úgy csinálnám, h
venti bekapcs
delay 10 perc
venti kikapcs
delay 20 perc
automation.trigger
Új hozzászólás Aktív témák
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest