Verbindung zu HomeAssistant mit MQTT_GENERIC_BRIDGE

Begonnen von edy_80, 25 Oktober 2020, 19:06:36

Vorheriges Thema - Nächstes Thema

passibe

#240
Zitat von: Knallfrosch am 24 August 2024, 12:12:31Wie kann ich Daten die nur in HA verfügbar sind an FEHM übertragen?
Es geht mir also nicht nur um die Schalterstellung eines Switch, sondern um Readings die sich tatsächlich nur mit HA von einer API abrufen lassen.

Das geht über MQTT Statestream. Siehe dazu hier: https://www.home-assistant.io/integrations/mqtt_statestream/

Bei mir sieht das in der configuration.yaml so aus:
mqtt_statestream:
  base_topic: hass
  publish_attributes: true
  publish_timestamps: true
  include:
    entities:
       - media_player.webos_tv
       - vacuum.deebot
       - [... weitere Devices ...]

EDIT: Zusätzlich muss man noch eine MQTT-Integration hinzufügen, um Home Assistant mit dem von FHEM bereitgestellten MQTT2_SERVER (also dem Broker) zu verbinden. Da dann evtl. über den "Configure"-Knopf "Enable newly added entities" ausschalten, damit Home Assistant nicht alle anderen MQTT-Geräte automatisch anlegt (keine Ahnung mehr, ob es das tatsächlich machen würde, habs jedenfalls grade nur gesehen, dass ich das damals ausgeschaltet habe).
Siehe dazu hier: https://www.home-assistant.io/integrations/mqtt/#broker-configuration

Dann einfach mit Programmen wie MQTT Explorer o.ä. dem MQTT Traffic lauschen und schauen, was da gesendet wird. Daraus dann in FHEM ein MQTT2_DEVICE bauen.


Und das ist jetzt vielleicht offtopic, weil nicht MQTT_GENERIC_BRIDGE, aber vielleicht hilfts ja jemandem:
Ich benutze Home Assistant nicht als Frontend und habe nur sehr wenige Geräte, die ich darüber anbinde. Deshalb war mir das mit MQTT_GENERIC_BRIDGE zu aufwändig und ich nutze nur eine Kombination aus MQTT Statestream und einer Automation pro Device, die die Befehle, die ich von FHEM aus über MQTT sende, in Home Assistant umsetzt.

z.B. für den oben erwähnten Saugroboter die Automation in Home Assistant:
alias: Deebot command via FHEM
description: ""
trigger:
  - platform: mqtt
    topic: hass/deebot/cmd
condition: []
action:
  - if:
      - condition: template
        value_template: "{{ trigger.payload == 'auto' }}"
    then:
      - data: {}
        target:
          entity_id: vacuum.deebot
        action: vacuum.start
  - if:
      - condition: template
        value_template: "{{ trigger.payload == 'pause' }}"
    then:
      - data: {}
        target:
          entity_id: vacuum.deebot
        action: vacuum.pause
  - if:
      - condition: template
        value_template: "{{ trigger.payload == 'stop' }}"
    then:
      - data: {}
        target:
          entity_id: vacuum.deebot
        action: vacuum.stop
  - if:
      - condition: template
        value_template: "{{ trigger.payload == 'stop_return' }}"
    then:
      - data: {}
        target:
          entity_id: vacuum.deebot
        action: vacuum.return_to_base
  - if:
      - condition: not
        conditions:
          - condition: template
            value_template: "{{ trigger.payload is search (\"auto|pause|stop\") }}"
    then:
      - target:
          entity_id: vacuum.deebot
        data:
          command: spot_area
          params:
            rooms: "{{trigger.payload}}"
        action: vacuum.send_command
mode: single

Das zugehörige Device in FHEM sieht so aus:
defmod deebot MQTT2_DEVICE deebot
attr deebot alias Deebot T9
attr deebot devicetopic hass/vacuum/deebot
attr deebot icon vacuum_top
attr deebot readingList $DEVICETOPIC/state:.* state\
$DEVICETOPIC/battery_level:.* battery\
$DEVICETOPIC/last_error:.* error\
$DEVICETOPIC/rooms:.* rooms
attr deebot setList auto:noArg hass/deebot/cmd auto\
only_k:noArg hass/deebot/cmd 3\
only_f:noArg hass/deebot/cmd 2\
only_kf:noArg hass/deebot/cmd 3,2\
pause:noArg hass/deebot/cmd pause\
resume:noArg hass/deebot/cmd auto\
stop_return:noArg hass/deebot/cmd stop_return
attr deebot webCmd auto:pause:resume:stop_return

Knallfrosch

Hallo,

sorry für die späte Rückmeldung.
Ich habe keine Benachrichtigung über neue Beiträge erhalten.

Danke für die Beiträge

Ich schaue mir das mal in den nächsten Tagen in Ruhe nochmal an und melde mich dann wieder.


Grüße

Knallfrosch

Hallo,

vielen Dank, die Erklärung und Schnipsel haben mir sehr weitergeholfen und ich konnte das ganze nun umsetzen.
Ich musste zwar kämpfen, da ich HA nur aus der Not heraus nutze und in FHEM auch kein Crack bin, aber ich habe es geschafft.

Ich bekomme jetzt die benötigten Werte von HA in FHEM angezeigt und kann dort damit weiterarbeiten.

Vielen Dank nochmal.


Grüße