O. Usunięcie urządzenia z sieci z-wave ZWP 10 (pilot) i dodanie do Z-Wave JS w HA
- Usuniecie:
- Wcisnąć IN/EX 2 razy
- Nacisnać przycisk i przytrzymac P (gorny) na rolecie
- Dodanie:
- Prawy dolny róg: wybieram: manage nodes
- Inclusion -> next
- Nadaje nazwe w konwencji: Blind_nazwaPomieszczenia_nazwa_rolety (jesli trzeba)
- Next
- Default – Next
- Wciskam P na rolecie
1. Developer Tools
W sekcji TEMPLATE mozna przecwiczyc dzialanie ‚Templating’, np:
2. Setting -> Automations -> Script
- Nazwa jak nazwa urzadzenia + „_nazwaAkcji”, np: Blind_stairs_left_up
- Sequence -> Add Action: Wait for a trigger
- Add Trigger: MQTT:
- When an MQTT message has been received:
- Topic = cmnd/GROUND_FLOOR/STAIRCASE/BLIND_STAIRS_RIGHT/MOVE_DIRECTION
- Add Trigger: template
- value_template: „{{ trigger.payload.split(‚:’)[0] == ‚UP’}}”
- Add Action: Device
- Device: Blind_stairs_right
- Action: Open Blind_stairs_right
- Add Action: Wait for time to pass (delay):
- Add anything in seconds, then switch to ‚Edit in YAML’, and change seconds to:
"{{int(trigger.payload.split(':')[1])/1000}}"
- Add anything in seconds, then switch to ‚Edit in YAML’, and change seconds to:
- Add Action: Device
- Device: Blind_stairs_right
- Action: Stop Blind_stairs_right
- Na koncu dodalem: Add Action: Repeat
- Until: Template 1=1
- Z tym że ta akacja dotyczy tylko ponizszej akcji, w zwiazku z tym przenioslem ja na sama górę i przerobilem w YAML sekwencje Repeat tak, żeby dotyczyła całego skryptu, czyli calosc wyglada:
alias: Blind_stairs_right_up
sequence:
- repeat:
until:
- condition: template
value_template: 1=1
sequence:
- wait_for_trigger:
- platform: mqtt
topic: cmnd/GROUND_FLOOR/STAIRCASE/BLIND_STAIRS_RIGHT/MOVE_DIRECTION
- platform: template
value_template: "{{ trigger.payload.split(':')[0] == 'UP'}}"
continue_on_timeout: false
- device_id: a14fb99ff2ea5b8d3991516d52882adc
domain: cover
entity_id: f1a57b5a00c764b4191a9c1fccdb39e7
type: open
- delay:
hours: 0
minutes: 0
seconds: "{{int(trigger.payload.split(':')[1])/1000}}"
milliseconds: 0
- device_id: a14fb99ff2ea5b8d3991516d52882adc
domain: cover
entity_id: f1a57b5a00c764b4191a9c1fccdb39e7
type: stop
mode: single
icon: mdi:roller-shade
3. Settings -> Automations
- Create AUTOMATION (name: Blind_tymek_right_up)
- Triggers: MQTT
- When an MQTT message has been received: cmnd/SECOND_FLOOR/ROOM_TYMEK/BLIND_RIGHT/MOVE_DIRECTION
- Conditions:
- condition: template
- value_template: „{{ trigger.payload.split(\”:\”)[0] == ‚UP’}}”
- Actions:
- Open Blind_tymek_right
- Device: Blind_tymek_right
- Action: Open Blind_tymek_right
- Delay for: … seconds: „{{int(trigger.payload.split(‚:’)[1])/1000}}” …
- Stop Blind_tymek_right
- Device: Blind_tymek_right
- Action: Stop Blind_tymek_right
- Open Blind_tymek_right
- Triggers: MQTT
3.1 Zatrzymanie automatyzacji
Potrzebne jest kiedy roleta jest w trakcie opuszczania i ktos nacisnie jej podnoszenie.
Wtedy przed uruchomeniem nowej automatyzacji, musze (w ramach nowej) zatrzymac stara automatyzacje.
Sa jeszcze 2 sprawy: zatrzymanie automatyzacji powoduje ze obliczona pozycja rolety nie zostala osiagnieta i kolejny wyznaczony czas (czy otwarcia czy zamkniecia) jest nieprawidlowy. Mozna albo zliczac czas jaki trwal do momentu przerwania akcji albo blokowac mozliwosc przerwania akcji (to drugie raczej slabe).
https://community.home-assistant.io/t/once-automation-is-triggered-can-it-be-terminated/213382/11
: