Die MQTT-API von RF-HUB stellt alle Funktionen über zwei Topic-Baumzweige bereit und folgt dem Home Assistant Discovery-Format. Das bedeutet, dass RF-HUB sich Plug-and-Play in Home Assistant integriert und mit praktisch jedem MQTT-Client funktioniert.
Für einfache Aufrufe und Skripte direkt gegen den Hub gibt es auch eine REST-API — siehe API für RF-HUB.
Voraussetzungen
- Ein MQTT-Broker (typischerweise Mosquitto, oft zusammen mit Home Assistant).
- RF-HUB konfiguriert auf denselben Broker — siehe RF-Hub mit Home Assistant verbinden.
- Die UID Ihres Geräts — diese finden Sie in der RF-HUB-Weboberfläche unter dem Reiter Info.
Topic-Struktur
RF-HUB verwendet zwei Topic-Baumzweige:
styrahem/rfhub/<UID>/...— eigener Status und Befehlehomeassistant/...— Home Assistant Discovery-Konfigurationen (retained)
Status (was RF-HUB veröffentlicht)
styrahem/rfhub/<UID>/rfhub/info # Online-Status + Firmware-Version styrahem/rfhub/<UID>/<device-id>-<nr>/<type> # aktueller Status pro Gerät/Endpunkt
Befehle (worauf RF-HUB hört)
styrahem/rfhub/<UID>/<device>/<endpoint>/set/... # Befehle hierher senden
Discovery-Konfiguration (retained, automatische Integration in HA)
homeassistant/<entity_type>/<unique_id>/<name>/config
Die Discovery-Nachrichten enthalten u.a. state_topic, command_topic und availability, sodass HA (oder ein anderer Client, der HA Discovery spricht) die Entitäten automatisch einrichtet.
Beispiel — Einen Schalter über mosquitto_pub einschalten
mosquitto_pub -h homeassistant.local -t homeassistant/switch/rfhub_kok_taklampa/set -m ON
Beispiel — Events in Python abhören
import paho.mqtt.client as mqtt
UID = "ABCD1234" # aus dem Info-Reiter in der RF-HUB-Weboberfläche
def on_message(client, userdata, msg):
print(f"{msg.topic} -> {msg.payload.decode()}")
c = mqtt.Client()
c.connect("homeassistant.local", 1883)
c.subscribe(f"styrahem/rfhub/{UID}/+/+")
c.on_message = on_message
c.loop_forever()
WebSocket-API
Die Weboberfläche verwendet WebSocket für Echtzeit-Updates, aber es ist ein internes Protokoll, das sich zwischen Firmware-Versionen ändern kann. Für Integrationen empfehlen wir REST oder MQTT.
Fragen
Benötigen Sie Details zu einem bestimmten Topic oder Payload — kontaktieren Sie uns.