ESPHOME czujnik na 433 MHz

Chcę zrobić czujnik odległości przesyłający pomiar poprzez transmiter 433 MHz - ze względu na brak zasięgu Wi-Fi oraz zasilanie baterii. Niestety ciężko znaleźć jakiekolwiek informację dotyczące wysyłania danych tym wiekowym protokołem związanych z ESPHome. Mam poniższy kod, ale nie wiem czy problem jest w kodzie czy w sprzęcie. Jako odbiornik używam Sonoff Bridge RF z wgranym dodatkiem Portish, ale nic mi się nie wyświetla w konsoli Tasmoty. Proszę o zerknięcie na kod, ewentualnie może ktoś dysponuje jakimś linkiem, który by mnie poprowadził dalej.

esphome:
  name: test

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

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

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "**********"
    password: "**********"
    
remote_transmitter:
  pin: 25
  carrier_duty_percent: 100%

captive_portal:


web_server:
  port: 80
  auth:
    username: **********
    password: **********
        
sensor:
  - platform: ultrasonic
    trigger_pin: 33
    echo_pin: 32
    name: "Ultrasonic Sensor"
    update_interval: 5s    
    timeout: 2m
    filters:
    - filter_out: nan
    on_value:
      then:
        - remote_transmitter.transmit_rc_switch_raw:
            protocol:
              pulse_length: 350
              sync: [1, 31]
              zero: [3, 1]
              one: [1, 3]
            repeat:
              times: 5
              wait_time: 0ms
            code: x

Dziękuję za wskazówki

Zbudowałeś domowym sposobem dwa urządzenia, które się nie komunikują.
Nie masz pewność, które z nich nie działa.
Należałoby najpierw sprawdzić które , np. zaczynając o bramki.
Na początek w konsoli wpisać komendę rfraw 166 aby bramka zaczęła wyświetlać dane RAW bez próby i dekodowania.
Do sprawdzenia najlepiej użyć sprawdzonego nadajnika np. jakiegoś pilota 433MHz.

Dopiero po pozytywnym teście włączyć własny czujnik.
Nie znam się na ESPHome ale na pierwszy rzut oka już mi się coś nie zgadza w Twoim kodzie?
Próbujesz wysłać analogową wartość za pomocą “nadajnika dwustanowego”?

Na czas prób zrób z tego z jakiegoś, przykładu zwykły switch i sprawdź czy to w ogóle po radiu gada.
Później dopiero kombinuj z czujnikiem odległości.
W tej chwili jest zbyt dużo nieznanych zmiennych i sam nie wiesz czego się przyczepić.
… taka rada na początek aby w ogóle ruszyć :slight_smile:
Osobiście budując czujnik DIY po radiu skorzystałbym z MySensors - łatwiej nad tym zapanować.

Gdy stosujesz gotowe czujniki największą gwarancję sukcesu daje bramka RFLink.

W ostateczności, jeśli to w ogóle możliwe zbuduj na ESP tani Wifi repeater i z rób po jednak po wifi.

1 Like

Jakim protokołem? Na razie tylko masz medium - radio 433 MHz. Daleka droga przed Tobą… poczytaj:

https://ai-speaker.discourse.group/t/openmqttgateway/2310

Może nie do końca rozumiem, ale skoro ESPHome łaczy się do sieci WiFi i Home Assistanta (masz to zdefiniowane w kodzie). Sonoff Bridge RF też jest podłączony do sieci, to po co chcesz między nimi tworzyć “radiolinię” na 433MHz ?

Połączenie wifi jest na potrzeby fazy testowej - czujnik będzie zamontowany w miejscu z bardzo słabym zasięgiem Wi-Fi i dodatkowo będzie zasilany bateriami - transmisja radiowa jest mniej energochłonna, dlatego na pewnym etapie pomyślałem o dołożeniu transmisji na 433 MHz.

Pod warunkiem, że wyłączysz w ogóle wifi i obsłużysz DeepSleep dla ESP

taki jest plan - i to już mi się udało zrobić, bo bez problemu można znaleźć informacje na ten temat.

Dzięki za wcześniejszą odpowiedź - udało mi się na razie ustalić, że bramka Sonoffa raczej działa bo zczytuje jakieś dane ze środowiska - niestety nie mam żadnego urządzenia działającego na 433 MHz, żeby dokładnie to sprawdzić. Będę walczył wieczorem!

To akurat da się zrobić - nawet mi z moimi umiejętnościami udało się takie cudo uruchomić i działa stabilnie od tygodnia. Zostawię, bo może komuś się przyda

Zastanów się czy dla jednego czujnika warto “rozkminiać” temat w ten sposób.
Dla tego zastosowania łatwiej i szybciej zrobić coś autorskiego i wprowadzić własny “standard”.
Transmisja RF nie właściwie taka skomplikowana, gdy nie ma potrzeby dostosowania się do jakiegoś produktu.
Tworzysz jednokierunkowy most radiowy, gdzie czujnik jest nadajnikiem a bramka odbiornikiem.

Myślę, że masz wystarczające umiejętności :wink:

Chyba właśnie mój błąd polegał na tym, że za bardzo to chciałem osiągnąć w ESPHome, a nie szukałem rozwiązań w Arduino - kiedy ten standard był w miarę popularny jeszcze. Co prawda z programowaniem nie mam styczności, ale może coś mi się uda poskładać. Dzięki za linki, szczególnie ten pierwszy będzie chyba najbardziej pomocny.

Najgorsze w tym wszystkim jest to, że miałem już prawie gotowy czujnik odległości w ESPHome, który w docelowym miejscu może by działał, bo jest na skraju zasięgu Wi-Fi i przypadkowo trafiłem, szukając możliwości oszczędzenie prądu baterii, na transmisję 433 MHz.
A teraz szukając rozwiązania problemu transmisji radiowej powoli dochodzę do wniosku, że płytki z rodziny ESP tak ogólnie to zbyt potężne narzędzie do wysyłania danych z jednego czujnika poprzez fale radiowe - da się to zrobić na prostszych układach, które dodatkowo będą bardziej energooszczędne. Ale to może kiedyś na przyszłość - na razie chce dokończyć ten projekt.

Na tą chwilę temat mnie tak wciągnął, że planuję w przyszłości “usmartowić” swój ogród różnymi czujnikami na 433 MHz zasilanymi mini panelami solarnym co ułatwi wprowadzenie “inteligentnego” podlewania.

Umiejętności zdecydowanie nie, ale może nadrobię uporem :wink:
Bardzo dziękuję za wskazówki, linki i Twój poświęcony czas!

To go dokończ, tylko prościej - nie musisz zmieniać sprzętu, tylko zaprogramuj je po “swojemu”.
Ten pierwszy przykład równie dobrze można osadzić na ESP i Sonoff RF. Odebrane dane możesz przesłać do MQTT - to tylko kilka dodatkowych linii kodu.