leshqo
26 Wrzesień 2023 21:23
21
Rafał_Kasperski:
Cover Time Based RF
Porobiłem małe poprawki posiłkując się githubem rf time based, bo darł japę u unkown entity (brakowało script w config yaml), na chwilę obecną wygląda to tak
configuration.yaml
cover:
- platform: cover_rf_time_based
devices:
biuro_cover_time_based:
name: Biuro
travelling_time_up: 10
travelling_time_down: 10
close_script_entity_id: script.office_shutter_down
open_script_entity_id: script.office_shutter_up
send_stop_at_ends: False #optional
scripts.yml
office_shutter_up:
alias: office_shutter_up
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.AT_office_shutter_up
mode: single
office_shutter_down:
alias: office_shutter_down
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.AT_office_shutter_down
mode: single
ale wychodzi, że nadal brakuje mu akcji stop, która u mnie zależna jest aktualnego biegu rolet
Integrację wziąłem stąd: GitHub - davidramosweb/home-assistant-custom-components-cover-time-based: With this component you can add a time-based cover. You can set a switch to open and another to close the cover.
jak popełnić logikę sprawdzającą, czy aktualnie roleta sunie w górę czy w dół i dobierającą odpowiednią akcję?
Edit. Zacząłem eksperymentować z czymś takim, co by później if elsa zrobić, ale ni siuda nie działa
office_shutter_stop:
alias: office_shutter_stop
sequence:
condition:
- condition: state
entity_id: cover.biuro
state: opening
action:
- service: switch.turn_on
data: {}
target:
entity_id: switch.at_office_shutter_down
mode: single
Wyciachałem też z sekcji rolet delay, przynajmniej z perspektywy satela jest zbędna
No w wyżej podanym przez Ciebie przykładzie brakuje logiki. Jeśli się otwiera to ma się otworzyć ?. Po drugie brak wywołania skryptu w podanym przykładzie. Wg mnie powinno wyglądać to tak
cover:
- platform: cover_rf_time_based
devices:
biuro_cover_time_based:
name: Biuro
travelling_time_up: 10
travelling_time_down: 10
close_script_entity_id: script.office_shutter_down
stop_script_entity_id: script.office_shutter_stop
open_script_entity_id: script.office_shutter_up
send_stop_at_ends: False #optional
I skrypt wywołujący akcje stop
office_shutter_up:
alias: office_shutter_up
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.at_office_shutter_up
mode: single
office_shutter_down:
alias: office_shutter_down
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.at_office_shutter_down
mode: single
office_shutter_stop
alias: office_shutter_stop
sequence:
- choose:
- conditions:
- condition: state
entity_id: cover.biuro
state: opening
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.at_office_shutter_down
- conditions:
- condition: state
entity_id: cover.biuro
state: closing
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.at_office_shutter_up
mode: single
leshqo
27 Wrzesień 2023 22:21
23
Tak uzupełniłem stop w configu, o czym pisałem, chociaż fakt w listingu zabrakło. Sam warunek stopujący na start był tylko w połowie, bo do testów, ale nie działał. Dziś zastosowałem Twój, ale nie działa mi, zmodyfikowałem nawet, żeby nie operował na cover.biuro state ale na switch.at_office_shutter_up i down state (stany i jednej i drugiej encji zmieniają się w dev toolsach prawidłowo). Nadal klawisz stop nie działa Mogę zatrzymać przeciwną strzałką bez problemu, ale stop milczy. Zatrzymanie strzałką tożsame jest z tym, że HASS myśli że z otwierania przechodzę od razu do zamykania i vice versa. Sam state też już opisywałem z dużych i małych liter, w apostrofach i bez. Nie mam pomsyłu
office_shutter_stop:
alias: office_shutter_stop
sequence:
- choose:
- conditions:
- condition: state
entity_id: switch.AT_office_shutter_up
state: 'on'
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.AT_office_shutter_down
- conditions:
- condition: state
entity_id: switch.AT_office_shutter_down
state: 'on'
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.AT_office_shutter_up
mode: single
Edit:
Nie mam pojęcia OCB, czy gdzieś jakaś literówka była, czy co, ale wywaliłem wszystko, napisałem jeszcze raz i ruszyło
Dziękuję za pomoc