NodeMcu 433Mhz Sniffer – Home Assistant Integrációval

Kedves Blogolvasó!

Ebben a leírásban megmutatom, hogy hogyan készítek egy NodeMcu 433Mhz Sniffer-t, amit Home Assistant alá integrálok. Konyhanyelven: csináltam egy 433 Mhz-es vevő-t, ami a Home Assistant alá betolja a 433Mhz-es nyitásérzékelőim, és a csengő státuszát. 

A snifferhez felhasznált eszközök:

NodeMcu

RXB6 – 433 Mhz Szuperheterodin vevő

Kapcsolási rajz:

 

NodeMcu 433Mhz Snifferr - RXB6

 

A száraz műszaki leírás után pár szóban arról, hogy miért ezt a megoldást választottam. Az ok egyszerű, nálam egyirányú kommunikáció van a 433mhz-es eszközök irányából. Nem kapcsolok 433 Mhz-en lámpát, nem nyitom vele a garázs kaput, ezért nem érte meg vennem egy Gateway-t. Bár egyébként, ha kapcsolnék sem biztos, hogy vettem volna Gateway-t, mert olcsóbb építeni.

Első körben egy másik 433Mhz-es vevővel próbálkoztam. A sima 433Mhz adó-vevő páros vevőjét akartam használni vevőnek, de sajnos az elég gyengének és zajosnak bizonyult. Egyszerűen ezeknek az elemes eszközöknek az adója, annyira gyenge jelet sugároz, hogy azt csak egy szuperheterodin vevővel lehet tökéletesen begyűjteni. A tapasztalatom az volt, hogy 2 méter távolság után az adó eszköz által sugárzott jelsorozat fele kiesett, így pedig teljesen használhatatlan volt. Egy erősebb jelet sugárzó eszköz pl. egy távirányító jelét simán veszi 30-50 méterről. Viszont ez jelen esetben nem segített a helyzeten, de menjünk is tovább.

 

Home Assistant integráció

 

Gondolom ha NodeMcu már mindenki kitalálta, hogy ESPhome-mal készül el a bináris a 433Mhz Sniffer-re. Szerencsére ESPhome alá tökéletesen integrálták az RC-Switch könytárat, és ennek köszönhetően nagyban megkönnyítik mindenki dolgát, aki 433Mhz-es eszközöket akar integrálni Home Assistant alá.

 

NodeMcu 433Mhz Sniffer – ESPhome kód

 

esphome:
  name: nodemcu_433mhz_tracker
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "*****"
  password: "*****"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Nodemcu 433Mhz Tracker"
    password: "******"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "******"

ota:
  password: "******"

# Example configuration entry

remote_receiver:
  pin: 
    number: D8
    inverted: True
    mode: INPUT_PULLUP
  dump:
    - rc_switch
  tolerance: 50%
  filter: 250us
  idle: 4ms
  buffer_size: 2kb

binary_sensor:
- platform: remote_receiver
  id: front_door_open
  internal: true
  rc_switch_raw:
      code: '000010100000101001110011'
      protocol: 6
  filters:
      delayed_off: 100ms
      

- platform: remote_receiver
  id: front_door_closed
  internal: true
  rc_switch_raw:
      code: '000010100000101001111001'
      protocol: 6
  filters:
      delayed_off: 100ms

- platform: template
  name: Bejárati ajtó
  device_class: door
  lambda: |-
      if (id(front_door_open).state) {
        // front dooris open
        return true;
      } else if (id(front_door_closed).state) {
        // front door closed
        return false;
      } else {
        return {};
      }

- platform: remote_receiver
  id: livingroom_window_open
  internal: true
  rc_switch_raw:
      code: '110111010110111101110011'
      protocol: 6
  filters:
      delayed_off: 100ms
      

- platform: remote_receiver
  id: livingroom_window_closed
  internal: true
  rc_switch_raw:
      code: '110111010110111101111001'
      protocol: 6
  filters:
      delayed_off: 100ms

- platform: template
  name: Nappali ablak
  device_class: door
  lambda: |-
      if (id(livingroom_window_open).state) {
        // livingroom window open
        return true;
      } else if (id(livingroom_window_closed).state) {
        // livingroom window closed
        return false;
      } else {
        return {};
      }

 

Első körben érdemes azzal kezdeni, hogy csak az eszközök állapotjelét gyűjtjük be. Ehhez elég ez a kódrészlet:

 

remote_receiver:
  pin: 
    number: D8
    inverted: True
    mode: INPUT_PULLUP
  dump:
    - rc_switch
  tolerance: 50%
  filter: 250us
  idle: 4ms
  buffer_size: 2kb

 

Ezt a részletet én személy szerint benne is hagytam a config fájlban, mert a későbbi bővíthetőséget megkönnyíti. A feltöltés után ha belenézünk a logba, akkor valami ilyesmit kell látnunk:

RF Sniffer log

Ezeknek a rádiójeleknek a forrása nem nálam található. Ezek csak a környező házakból elkapott jeltöredékek. Nem szeretném kielemezni a rádiójeleket, de azért látható, hogy nálam az azonos márkájú azonos gyártmányú nyitásérzékelők jelei mennyiben hasonlítanak egymásra decimális formában. 

Nyitásérzékelő 1:

00001010000010100111 | 0011 -> nyitott

00001010000010100111 | 1001 -> zárt

Nyitásérzékelő 2:

11011101011011110111 | 0011 -> nyitott

11011101011011110111 | 1001 -> zárt

 

Egyébként ha mindent jól csináltunk, akkor az eredmény sem sokáig várat magára. Kódfeltöltés után az Entitások között egyből megjelennek a nyitásérzékelők, és csak hozzá kell őket adni a lovelace-hez:

Egy kicsit jobban bő lére tudnám ereszteni ezt a cikket, az általam használt, és egyébként a webshopban forgalmazott 433 Mhz-es nyitásérzékelő bemutatásával, de úgy gondolom, hogy ez egy másik rövid cikket megér. Ezért a beüzemeléshez szükséges kapcsolás és az ESPhome konfigurációval én le is zárom ezt a bejegyzést, és visszatérek majd egy másik cikkel, ami konkrétan az általam használt eszközt mutatja be

Ha tetszett a leírás Like-old facebook oldalunkat, hogy értesülj a további hasonló leírásokról!

Mikrokontroller Blog és Webáruház – Facebook

 

 

(Statisztika: 432 megtekintés)