ESPHome może teraz udawać pilota Somfy RTS. Zmiana #16502 autorstwa RobertH1993, scalona z gałęzią rozwojową 12 października 2026, dodaje akcję remote_transmitter.transmit_somfy_rts. Wystarczy nadajnik 433,42 MHz podłączony do ESP32 albo ESP8266, a automatyzacja lub przycisk w Home Assistancie wyślą do rolet, żaluzji i markiz Somfy RTS polecenia podniesienia, opuszczenia, zatrzymania („My”) i programowania. Zmiana czekała na scalenie od maja i jest pierwszym wkładem autora w ESPHome.

Nie ma jej w wersjach beta ESPHome 2026.10 (2026.10.0b4 ukazała się 13 października), więc najwcześniej pojawi się w wydaniu 2026.11.

ESPHome jako dodatkowy pilot

RTS to protokół jednokierunkowy. Każdy pilot ma 24-bitowy adres i 16-bitowy kod kroczący („rolling code”), a każde polecenie musi mieć wyższy kod niż poprzednie, inaczej silnik je zignoruje. ESPHome nie kopiuje istniejącego pilota, tylko dołącza jako kolejny. Wybierasz dowolny adres i trzymasz się go, przytrzymujesz przycisk programowania na sparowanym już pilocie, aż silnik lekko drgnie, a potem wysyłasz z ESPHome polecenie programowania (control: 0x8).

Najwięcej uwagi wymaga kod kroczący. Dokumentacja zaleca trzymać go w zmiennej globals z ustawieniem restore_value: true i zwiększać w wyrażeniu !lambda przy każdym poleceniu. Jeśli po ponownym uruchomieniu kod wróci do wartości początkowej, będzie niższy od ostatniego, który silnik przyjął, i kolejne polecenia przepadną.

Oryginalne piloty wysyłają każdą ramkę kilka razy i dlatego dokumentacja zaleca opcję repeat. Przykład z opisu zmiany:

remote_transmitter:
  id: rf_transmitter
  pin: GPIO4
  carrier_duty_percent: 100%

globals:
  - id: rolling_code
    type: uint16_t
    restore_value: true
    initial_value: "1"

button:
  - platform: template
    name: Blind Up
    on_press:
      - remote_transmitter.transmit_somfy_rts:
          transmitter_id: rf_transmitter
          address: 0x123456
          control: 0x2
          key: 0xA0
          rolling_code: !lambda return id(rolling_code)++;
          repeat:
            times: 3
            wait_time: 30ms

W polu control wartość 0x1 oznacza „My” (zatrzymanie), 0x2 podniesienie, 0x4 opuszczenie, a 0x8 programowanie. Kombinacje, na przykład 0x3, ESPHome wysyła bez zmian. Według dokumentacji key o wartości 0xA0 działa z większością odbiorników. Niektóre piloty umieszczają polecenie w bajcie klucza i dla nich jest opcja control_in_key.

Tylko nadawanie

Dekodera na razie nie ma. ESPHome nie odczyta położenia rolety ani nie usłyszy oryginalnego pilota, a zmiana nie dodaje dla tego protokołu czujnika binarnego, wyzwalacza ani zrzutu odebranych kodów. Jeśli zbudujesz na tych poleceniach encję rolety w Home Assistancie, będzie ona znała tylko ostatnie wysłane polecenie. Gdy ktoś użyje oryginalnego pilota, Home Assistant się o tym nie dowie.

Autor przetestował kod na ESP32 (zarówno z Arduino, jak i z ESP-IDF) oraz na ESP8266. Kto do tej pory sterował silnikami Somfy RTS przez osobną bramkę radiową albo centralę w chmurze, ma teraz lokalną alternatywę: płytkę ESP z nadajnikiem 433,42 MHz.