PIR senzor a retrigger

www
Odpovědět
Uživatelský avatar
tiimsvk
Dárce - Donátor
Dárce - Donátor
Příspěvky: 801
Registrován: 06. květen 2021, 07:03
Dal poděkování: 72 poděkování
Dostal poděkování: 65 poděkování

PIR senzor a retrigger

Příspěvek od tiimsvk »

Ahojte dávam sem jednoduchý kód, ktorý po x rozmýšľaniach ako sprovozniť pir tak aby pri pohybe detekoval kontinuálne nie bez prepínania do režimu bez pohybu tak ako to dokáže modul hw-416.
HC-SR501-Pinout-Annotation.jpg
(Dá sa to aplikovať na všetky ostatne pir senzory, ktoré nemajú hw nastavenie a osadený BISS0001 čip.)

Je to dobré hlavne preto keď potrebujete nastaviť automatizáciu zapnutia a vypnutia svetla a nedošlo k problémom prehadzovania binárneho senzoru true/false čo by spôsobilo zapínanie a vypínanie svetla.

(Situacia: zaznamenaný pohyb pir aktivuje na niekoľko sekúnd gpio vysoko - binarny senzor odošle hodnotu true. Po niekoľkých sekundách (alebo prednastavených hardwerovo v pir senzore) sa gpio prepne na nizko a binarny senzor zanamená hodnotu false aj keď v nejakom momente pir zaznamenal pohyb a tu nastava ten problem kedy potrebujete aby senzor bol pri pohybe v hodnote true... snaď som to dobre vysvetlil :D trochu polopate ale pre neznalých to moze pomoct)

EDIT1:
NOVÝ KÓD:

Kód: Vybrat vše

script:
  - id: motion_on
    mode: restart
    then:
      - binary_sensor.template.publish:
          id: motion_temp
          state: true
      - delay: 10s
      - binary_sensor.template.publish:
          id: motion_temp
          state: false

binary_sensor:
  - platform: gpio
    pin: 
      number: "$pir_sensor"
    name: "${friendly_name} Motion"
    id: motion
    device_class: motion
    on_state:
      if:
        condition:
          - binary_sensor.is_on: motion
        then:
          - script.execute: motion_on

  - platform: template
    name: test motion
    id: motion_temp
STARÝ KÓD:
Musel som upraviť trochu kód so skriptom nakoľko v lambda funkcii ak som zavolaj funkciu delay tak sa esp chovalo zvláštne a to tak, že každých prednastavených (10s) odosielalo údaje do logu, viete niekto vysvetliť túto udalosť?

Kód: Vybrat vše

binary_sensor:
  - platform: gpio
    pin: 
      number: "$pir_sensor"
      mode: INPUT_PULLDOWN
    id: motion
    device_class: motion

  - platform: template
    name: "${friendly_name} Motion"
    id: motion_temp
    lambda: |-
      if (id(motion).state) {
        return true;
      } else {
        delay(10000); //nastavenie času v milisekundách pri detekcii pohybu ako dlho má držať senzor aktivovaný aj keď už má pin v low mode
        return false;
      }

mspetik
Nováček na fóru
Nováček na fóru
Příspěvky: 1
Registrován: 06. říjen 2022, 22:59

Re: PIR senzor a retrigger

Příspěvek od mspetik »

Nestačilo by použít filters: pro binary sensor. Používám pir sr505 který má zpoždění vypnutí 8sec .

Kód: Vybrat vše

binary_sensor:
  - platform: gpio
    name: PIR
    id: pir
    device_class: motion
    pin: D6
    filters:
      - delayed_off: 15s
    on_press:
      - switch.turn_on: relay
    on_release:
      - switch.turn_off: relay

switch:
  - platform: gpio
    name: Relay
    id: relay
    pin: D7      

kiklhorn
Moderátor
Moderátor
Příspěvky: 901
Registrován: 03. červenec 2021, 18:35
Dal poděkování: 107 poděkování
Dostal poděkování: 210 poděkování

Re: PIR senzor a retrigger

Příspěvek od kiklhorn »

řešil jsem to v automatizacích s jedním pomocníkem
jako vstup - zigbee pir aquara se senzorem osvětlení
výstup dvě světla

Logika jednoduchá
- detekuje pohyb a osvětení je nízké,
- nebo detekuje pohyb a je nastavený pomocník (ignoruji hodnotu osvělení protože si svítím sám)
= zapne světlo a nastaví pomocníka

čeká dvě minuty

vypne světla a pomocníka

Vzhledem k tomu že je nastavený mód "restart" automatizace tak vlastně čeká s vypnutím dvě minuty od posledního detekovaného pohybu.

Kód: Vybrat vše

alias: SvětloPředsíňPIR
description: ""
trigger:
  - type: motion
    platform: device
    device_id: ac95a024fcff08b61fc4b885bc1f9d74
    entity_id: binary_sensor.pir_predsin_occupancy
    domain: binary_sensor
condition:
  - condition: or
    conditions:
      - condition: numeric_state
        entity_id: sensor.pir_predsin_illuminance_lux
        below: 200
      - condition: state
        entity_id: input_boolean.pirpredsinrunning
        state: "on"
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.pirpredsinrunning
  - type: turn_on
    device_id: 7784e3e8bbc6d20d4328026030b28e48
    entity_id: light.predsin_hue
    domain: light
  - type: turn_on
    device_id: 57f74d7fc91cfe6867c6dfd34171724c
    entity_id: switch.zarivka_predsin_svetlo_prepinac
    domain: switch
  - delay:
      hours: 0
      minutes: 2
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: 7784e3e8bbc6d20d4328026030b28e48
    entity_id: light.predsin_hue
    domain: light
  - type: turn_off
    device_id: 57f74d7fc91cfe6867c6dfd34171724c
    entity_id: switch.zarivka_predsin_svetlo_prepinac
    domain: switch
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.pirpredsinrunning
mode: restart
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží.
HA OS jako jedna z Proxmox VM na Odroid H3+/64GB https://github.com/tteck/Proxmox

Uživatelský avatar
tiimsvk
Dárce - Donátor
Dárce - Donátor
Příspěvky: 801
Registrován: 06. květen 2021, 07:03
Dal poděkování: 72 poděkování
Dostal poděkování: 65 poděkování

Re: PIR senzor a retrigger

Příspěvek od tiimsvk »

mspetik píše: 06. říjen 2022, 23:09 Nestačilo by použít filters: pro binary sensor. Používám pir sr505 který má zpoždění vypnutí 8sec .

Kód: Vybrat vše

binary_sensor:
  - platform: gpio
    name: PIR
    id: pir
    device_class: motion
    pin: D6
    filters:
      - delayed_off: 15s
    on_press:
      - switch.turn_on: relay
    on_release:
      - switch.turn_off: relay

switch:
  - platform: gpio
    name: Relay
    id: relay
    pin: D7      
Pri niektorých to nestačí lebo ti odoslu off aj vtedy keď zaznamenali pohyb. Chýba tam to čo spravil kilkhorn v automatizacii a to reštart.

Odpovědět

Zpět na „ESPHome“