Wyłączenie wysyłania powiadomień podczas startu HA

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.

1 polubienie

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 :wink: 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 :wink: 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.
:wink:
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.

Rozumiem i bardzo dziękuję, że znalazłeś tyle czasu dla mnie. Na innych forach napisali by: “lepiej zadzwoń po fachowca bo coś zepsujesz” i pomocy bym nie otrzymał.
Ja to traktuję hobbystycznie i gdybym coś zepsuł to sobie.
Dziękuję @RobinI30 i dziękuję @krskrab