ESPHome i MQTT publikowanie wybranych sensorów

Cześć.
Czy z bezpośrednio z ESPhome można publikować przez mqtt wybrane sensory?
Dodając komponent mqtt publikuje wszystkie sensory.
To kawałek mojego YAMLa

  - platform: modbus_controller
    modbus_controller_id: Licznik_Jacek
    id: faza_l3_pf1
    name: "Faza L3 power factor PC"
    register_type: read
    state_class: measurement
    address: 0x16
    unit_of_measurement: ""
    value_type: S_WORD
    accuracy_decimals: 2
    skip_updates: 5
    filters:
      - multiply: 0.001
  - platform: modbus_controller
    modbus_controller_id: Licznik_Jacek
    id: czestotliwosc1
    name: "Częstotliwość Jacek"
    register_type: read
    address: 0x1A
    unit_of_measurement: "Hz"
    value_type: S_WORD
    accuracy_decimals: 2
    state_class: measurement
    device_class: frequency
    filters:
      - multiply: 0.01
mqtt:
  broker: 192.168.10.2

Załóżmy że chciałbym publiować tylko jeden z tych sensorów.

Nie używam MQTT, więc nie wiem czy to się sprawdzi (ale powinno) - jeśli nie chcę publikować jakichś encji ESPHome, to ustawiam im parametr

    internal: true

Ale, jak czytam, ten parametr ustawi sensor niewidoczny również dla HA a ja chciałbym mieć go w HA i jednocześnie wysyłać na brokera mqtt.

Osobiście pogubiłem się co chcesz osiągnąć? HA integruje się z ESPHome natywnie po API - tak jest u Ciebie? Dodatkowo chcesz z ESPHome publikować wybrane sensory do brokera MQTT, czy do tego brokera MQTT też jest podłączony do HA?
Domyślnie dodanie mqtt do konfiguracji ESPHome powoduje publikację stanu każdego sensora, dodatkowo domyślna konfiguracja zawiera mqtt.discovery - MQTT Client Component — ESPHome, możesz to wyłączyć ale wtedy będziesz musiał ręcznie konfigurować “odbieranie” wiadomości z brokera MQTT.

By default, ESPHome will prefix all messages with your node name or topic_prefix if you have specified it manually. The client id will automatically be generated by using your node name and adding the MAC address of your device to it. Next, discovery is enabled by default with Home Assistant’s default prefix homeassistant.

Tak. Chcę dodatkowo publikować sensory do bridga MQTT który spina mi dwa HA w w osobnych podsieciach. Samo spięcie mam już ogarnięte ,teraz chciałem bez zaprzęgania do tego Node-REDa bezpośrednio z ESPHome wysyłać dane.

Myślę, że takie obejście będzie działać?
Utwórz w HA automatyzację dla tych czujników aby wykonywały akcję mqtt.publish.
Nie będzie to jednak bezpośrednia akcja.

Wg mojej wiedzy jedynym wyjściem jest wyłączenie mqtt.discovery w ESPHome i konfiguracja encji MQTT Sensor - Home Assistant w “odległym” HA ręcznie.
Na przyszłość przekaż komplet informacji co chcesz osiągnąć, w jakim rozwiązaniu/konfiguracji, unikniemy wtedy zabawy w “100 pytań do” :grin:.

Nie trzeba tego robić w HA, ESPHome wyśle do MQTT ale żaden HA “nie odczyta” tego automatycznie, konfiguracja MQTT bridge zapewni wymianę wiadomości między brokerami, trzeba będzie dodać encje ręcznie w HA. U mnie: odczytuję stany liczników wody, publikuję do brokera MQTT, HA automatycznie nie dodaje encji, ręcznie dodaję encję tylko wybranych liczników wody w HA.

MQTT discovery is enabled by default. Discovery can be turned off. The prefix for the discovery topic (default homeassistant) can be changed .

ESPHome nie znam, ale czytam, że stanowi to jakiś problem :slight_smile:

Nie mam czasu na testy (w ESPHome nie korzystam z MQTT) ale @jaca14 może to zrobić za mnie :wink: , do konfiguracji ESPHome dodaje:

# Enable Home Assistant API
api:
  encryption:
    key: "C5dtMb"
#
mqtt:
  broker: 192.168.10.2
  discovery: False # disable entity discovery
  discover_ip: True # enable device discovery

Efekt końcowy: w HA będą encje poprzez natywną integrację, w brokerze MQTT bedą te same encje, może to sprawdzić w dodatku GitHub - GollumDom/addon-repository - MQTT Explorer.

Dodając komponent

z automatu wszystkie sensory wysyłane są do brokera a mi chodzi o to żeby opublikować tylko wybrane.
Narazie będe działać przez Node-REDa a w ESPHome będe testował.
Jak wyskrobię coś co zadziała to dam znać.

A w czym Ci to przeszkadza? To Twój prywatny broker MQTT, będziesz miał w nim trochę więcej informacji (nie bój się, nie zatkasz go, nie padnie z tych nadmiarowych informacji), wybrane “encje” dodasz sobie ręcznie do odległego HA. Już i tak masz “skomplikowane” środowisko a nadal je komplikujesz dodając kolejny element w postaci Node-REDa.

2 polubienia

Używam Node-REDa więc to nie problem ale tylko wtedy gdy „urządzenie” znajduję się w mojej podsieci(dom wielorodzinny więc stąd takie kombinacje). Chciałbym również ,mając dostęp do innych podsieci, instalować tam urządzenia komunikujące się przez bridga z moim HA.

Do bridga MQTT mają dostęp również inni użytkownicy więc chcialbym decydować co mają dostawać.
Mam nadzieję że dobrze to wytłumaczyłem?

Zgłoś propozycję/issue by dorobiono takie możliwości, bo moim zdaniem ich nie ma.