ESP32-EVB i czujnik ciśnienia wody

Nie mam bladego pojęcia jak coś tak prostego może nie działać, ale w tym co zamieściłeś nie widać w jaki sposób wywołujesz ten skrypt.

Może zmień sobie nazwy na takie, by było jasne co jest czym, to wtedy może zrozumiesz co robisz źle

tzn. sugeruję by zmienić

script:
  - id: moj_script_1
    then:
      - switch.turn_on: moj_przekaznik_1
      - delay: 5s
      - switch.turn_off: moj_przekaznik_1

# Przekaźniki
switch:
  - platform: gpio
    pin: GPIO32
    restore_mode: ALWAYS_OFF
    name: "Elektrozawór Napełniający c.o." 
    id: moj_przekaznik_1

bo tak mi zaświtało, że pewnie wcale nie wywołujesz skryptu, tylko przełączasz switcha na sztywno przypisanego do przekaźnika…

tak właśnie robiłem :wink:
nazwy pozmieniałem tak jak sugerowałeś.
Jak wywołać ten script bo nie poradzę go znaleźć?

Np. template button jeśli chcesz to robić ręcznie z GUI albo fizyczny przycisk, ewentualnie z jakieś automatyzacji, no bo skąd mam wiedzieć jak chcesz?
https://esphome.io/components/script.html#script-execute-action

najlepiej dla mnie byłby chyba template button, tylko nie wiem jak go “wkomponować”
w kod

W/g dokumentacji, przecież nie od razu Kraków zbudowano.

https://esphome.io/components/button/template

button:
  - platform: template
    name: "Template Button"
    on_press:
      - script.execute: moj_script_1

w ogóle to czytaj dokumentację, bo warto np. limitować użycie skryptu.


Ja bym to próbował jednak zrobić inaczej - np. stworzyć template switch który będzie odpowiadał za tryb pracy instalacji, a pompowanie zautomatyzować na podstawie ciśnienia sprawdzając oczywiście stan tego wirtualnego przełącznika.

wszystko można rozwiązać na wiele sposobów, nie ma jedynej słusznej ścieżki


przykładowo rozwiązanie w ogóle bez skryptów - na dobry początek (copy/paste z dokumentacji)

sensor:
  - platform: dht
    humidity:
      name: "Living Room Humidity"
      on_value_range:
        - above: 65.0
          then:
            - switch.turn_on: dehumidifier1
        - below: 50.0
          then:
            - switch.turn_off: dehumidifier1
    temperature:
      name: "Living Room Temperature"

tylko musisz je totalnie zmodyfikować - mam na myśli adc zamiast dht, warunki odwrotnie i przed włączeniem przekaźnika sprawdzać warunek (tzn. stan w jakim jest twój wirtualny przełącznik) - tu taka figura (oczywiście wcięcia muszą być dużo głębiej, bo taki blok będziesz miał już po sprawdzeniu warunku ciśnienia)

on_...: 
  then:
    - if:
        condition:
          - switch.is_on: twoj_wirtualny_switch
        then:
          - switch.turn_on: moj_przekaznik_1
          - delay: 5s
          - switch.turn_off: moj_przekaznik_1

czyli taki blok ma się znaleźć w tym poprzednim kawałku w ten sposób (dolne then i blok kodu ma być w miejscu tego górnego then)

uwaga na wcięcia, to zawsze musisz sprawdzać w dokumentacji jeśli nie znasz tego na wylot - spacje są kluczowym elementem sterującym YAMLa, więc jeśli wcięcia nie są na właściwym poziomie to blok kodu zadziała totalnie inaczej lub wcale

wirtualny switch to switch template (zbudowany analogicznie do przycisku template)

można sprawdzać więcej warunków jednocześnie (nie wiem np. co ma robić pompa solary, ale może od jej stanu też ma zależeć pompowanie ciśnienia?)

no generalnie musisz sobie rozpisać konkretne założenia co to ma robić i je zrealizować w dowolny sposób, który ci najbardziej odpowiada (no sorry ja nie mam tyle czasu na to by to zaprojektować za Ciebie)

Dzięki mistrzu, bez Twojej pomocy pewnie bym sobie nie poradził, albo trwało by to bardzo długo.
Na chwilę obecną zrobiłem to tak, że po wyłączeniu kominka za pomocą automatyzacji w HA załącza się przekaźnik 1 za pomocą template button (uruchamia się script) po sprawdzeniu w jakim stanie jest przekaźnik i jakie jest ciśnienie w układzie c.o.
Wyłączenie przekaźnika następuje gdy ciśnienie w układzie jest 1,5 bara.
Jeżeli z jakiegoś powodu nie byłoby odczytu z czujnika ciśnienia to zawór wyłączy się 20 sekund później (za pomocą scriptu). przez te 20 sekund ciśnienie nie przekroczy 1,7 bara.
Gdybym np. zdalnie chciał dopuścić wodę to załączam też script za pomocą template button i zajkiegoś powodu straciłbym połączenie z HA to zawór będzie otwarty 165s i po przekroczeniu 2,5 bara będzie przez chwilę około 20 s woda będzie wylatywała dwoma zaworami bezpieczeństwa (mała szkoda)

No i fajnie, nawet nie analizuję tego jak to ogarniasz, ale cieszę się że moje wypociny nie poszły na marne.