RF-HUBs MQTT-API eksponerer al funktionalitet via to topic-trægrene og følger Home Assistant Discovery-formatet. Det betyder, at RF-HUB integreres plug-and-play i Home Assistant og fungerer med praktisk talt enhver MQTT-klient.
Til enkle kald og scripts direkte mod hubben findes der også et REST API — se API for RF-HUB.
Forudsætninger
- En MQTT-broker (typisk Mosquitto, ofte sammen med Home Assistant).
- RF-HUB konfigureret mod samme broker — se Forbind RF-Hub til Home Assistant.
- Din enheds UID — den finder du i RF-HUBs webgrænseflade under fanen Info.
Topic-struktur
RF-HUB bruger to topic-trægrene:
styrahem/rfhub/<UID>/...— egen status og kommandoerhomeassistant/...— Home Assistant Discovery-konfigurationer (retained)
Status (hvad RF-HUB publicerer)
styrahem/rfhub/<UID>/rfhub/info # online-status + firmware-version styrahem/rfhub/<UID>/<device-id>-<nr>/<type> # aktuel status per enhed/endpoint
Kommandoer (hvad RF-HUB lytter på)
styrahem/rfhub/<UID>/<device>/<endpoint>/set/... # send kommandoer hertil
Discovery-konfiguration (retained, automatisk integration i HA)
homeassistant/<entity_type>/<unique_id>/<name>/config
Discovery-beskederne indeholder bl.a. state_topic, command_topic og availability, så HA (eller en anden klient, der taler HA Discovery) automatisk opsætter entiteterne.
Eksempel — tænd en kontakt via mosquitto_pub
mosquitto_pub -h homeassistant.local -t homeassistant/switch/rfhub_kok_taklampa/set -m ON
Eksempel — lyt efter events i Python
import paho.mqtt.client as mqtt
UID = "ABCD1234" # fra Info-fanen i RF-HUBs webgrænseflade
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
Webgrænsefladen bruger WebSocket til realtidsopdateringer, men det er en intern protokol, der kan ændres mellem firmware-versioner. Til integrationer anbefaler vi REST eller MQTT.
Spørgsmål
Har du brug for detaljer om et bestemt topic eller payload — kontakt os.