Cześć,
mam taką zagwozdkę: używam GPIO jako binary sensor. Jego stan musi być ustawiony na pull-UP. Przy zmianie stanu z niskiego na wysoki automatyzacja wysyła mi powiadomienie przez whatsapp.
Sęk w tym, że otrzymuję to powiadomienie przy każdym restarcie HA ponieważ wtedy na chwilę zasilanie z GPIO jest, jak sądzę, zdejmowane (usługa się restartuje), a przy jego powrocie stan się zmienia i automatyzacja wykonuje się.
Jak w automatyzacji dodać warunek, że ma się wykonać jeśli jest np. 30 sekund po starcie HA?
Albo może z innej strony: jak na 30 sekund po starcie HA wyłączyć jedną automatyzację?
A może można ustawić kolejność startu usług tak, żeby najpirw uruchamiała się usługa GPIO a potem ta od powiadomień whatsapp?
Po restarcie zostanie wyłączona automatyzacja - opóźnienie 20 sekund i uruchomienie automatyki
alias: Nowa automatyzacja
description: ""
trigger:
- platform: homeassistant
event: start
condition: []
action:
- service: automation.turn_off
data: {}
target:
entity_id: automation.test
- delay:
hours: 0
minutes: 0
seconds: 20
milliseconds: 0
- service: automation.turn_on
data: {}
target:
entity_id: automation.test
mode: single
Jeśli jest to kontynuacja wcześniej omawianego tematu RPi GPIO … to odwróciłbym logikę na porcie i w centralce. Wtedy reset w stanie normalnym nie zmieniał by stany gpio.
Tak jest, tylko tym razem chodzi o wyjście z satela, które jest sterowane masą (+ jest stały a rozłączany jest -) i tego chyba nie da się zmienić. To konkretne wyjście jest w satelu z kolei zależne od kontaktronu na jednym z wejść.
Narysuj to nawet odręcznie. Wydaje mi się, że się da … bo opis trechę dezorientuje.
Czyli tak…
Czy połączyłeś Satela z RPi bezpiecznie?
Wyjście satela ustawić tak aby “alarm” wywoływał ustawienie wyjścia na LO.
W RPi alarm ustawić na taki sam stan.
… nie wiem czy o to chodzi, ale tak to zrozumiałem.
Podłączone mam tak bo mierzyłem miernikiem i między OUT8 a masą w momencie gdy OUT8 nie jest wyzwolone jest 3V, co daje stan wysoki, a gdy jest wyzwolone, to jest zwarte do masy czyli stan niski.
Nie wiem czy dobrze to sobie wykombinowaem.
A to co narysowałeś z lewej strony za przerywaną kreską to jest wewnątrz Satel?
Wyjście 8 jest sterowane wejściem 8 w Satel:
Cover mam skonfigurowany tak:
- platform: rpi_gpio
relay_time: 1.2
invert_relay: true
state_pull_mode: "UP"
covers:
- relay_pin: 5
state_pin: 27
name: "Garaż brama"
unique_id: "satel_kontaktron_GPIO27_GPIO5"
Przedtem rozmawialiśmy o wyzwalaniu Satela za pomocą GPIO5 i to zrobiłem na tranzystorze NPN.
Na pewno jest tranzystor - w manualu satela jest napisane, że “open colector” 50mA więc raczej tego rezystora do +12V nie ma.
Łatwo to sprawdzić na niepodłączonym OUT8 nigdy nie powinno być napięcia.
Jeśli tak jest to ten twój rezystor 1k jest nie jest potrzebny. Lepiej dodaj zew.PullUp 4.7k do 3.3V dla GPIO. Moje podłączenie jest bardziej poprawne Podczas restartów stan wejścia jest nieokreślony - od tego zacznij. …lub jeśli to nie pomoże zaneguj wyjście OUT8 (lub IN8) w centrali i jednocześnie wejście GPIO - to w czasie restartów nie powinien być wysyłany event.
Jedno z dwóch ( może oba) powinno rozwiązać problem.
tak jest (w stosunku do GND).
usunąłem go.
tak zrobiłem.
Niestety powyższe zabiegi nie pomogły.
tak czułem, że poszedłem na skróty Muszę zamówić doidy. Ale jakie to powinny być?
hmm… Ale w mojej akcji wyzwalaczem jest gdy stan zmieni się z otwarta na zamknięta więc to by nie pasowało, że jak się zmienia z nieokreślonego, to wyzwala akcję…
tu chyba muszę pokombinować…
W zasadzie nie ma tu zbytnich wymagań może być popularna prostownicza 1A np. 1N4007
lub np. dioda Schottky BAT85. Chodzi o to aby przypadkiem, gdy grzebiesz w centralce nie wysłać na GPIO zbyt dużego napięcia.
Jaki stan GPIO jest dla zamnięty, a jaki dla otwart? … nie wiem jak to wytłumaczyć ale odwrócenie logiki może poprawić działanie.
Myślę, że za bardzo kombinujemy - pokaż automatyzację ( tryger powien być zmiana “z niski na wysoki” ) gdy masz tylko zmianę “na wysoki” to tak może być - zmienia się z nieokreślonego na wysoki,
mam tak:
- id: '1662747321365'
alias: Powiadomienia garaż brama zam
description: ''
trigger:
- platform: state
entity_id:
- cover.garaz_brama_2
from: open
to: closed
condition: []
action:
- service: notify.whatsapp
data:
message: Garaż brama ZAMKNIĘTA.
mode: single
Teraz zrobiłem jeszcze jedną automatyzację, przy użyciu podpowiedzi @krskrab
(ponieważ chcę wiedzieć gdy HA się zrestartuje):
- id: '1662838257165'
alias: Powiadomienia - HA uruchomienie
description: ''
trigger:
- platform: homeassistant
event: start
condition: []
action:
- service: notify.whatsapp
data:
message: Home Assistant uruchomił się.
- service: automation.turn_off
data: {}
target:
entity_id: automation.powiadomienia_brama_garaz_zam
- delay:
hours: 0
minutes: 0
seconds: 20
milliseconds: 0
- service: automation.turn_on
data: {}
target:
entity_id: automation.powiadomienia_brama_garaz_zam
mode: single
wiem, że to nie rozwiązanie problemu, tylko obejście, ale sprawdza się w tej konkretnej sytuacji.
Mimo to, @RobinI30 jeśli chcesz ustalić co jest nie tak z tą automatyzacją to ja również, bo jestem dociekliwy. Przy tym mogę się czegoś nauczyć.
Bez układu “na stole” nic więcej nie pomogę i więcej pomysłów nie mam.