RF-HUBs MQTT-API eksponerer all funksjonalitet via to topic-tregrener og følger Home Assistant Discovery-formatet. Det betyr at RF-HUB integreres plug-and-play i Home Assistant og fungerer med praktisk talt enhver MQTT-klient.
For enkle kall og skript direkte mot hubben finnes det også et REST API — se API for RF-HUB.
Forutsetninger
- En MQTT-broker (typisk Mosquitto, ofte sammen med Home Assistant).
- RF-HUB konfigurert mot samme broker — se Koble RF-Hub til Home Assistant.
- Enhetens UID — den finner du i RF-HUBs webgrensesnitt under fanen Info.
Topic-struktur
RF-HUB bruker to topic-tregrener:
styrahem/rfhub/<UID>/...— egen status og kommandoerhomeassistant/...— Home Assistant Discovery-konfigurasjoner (retained)
Status (hva RF-HUB publiserer)
styrahem/rfhub/<UID>/rfhub/info # online-status + firmware-versjon styrahem/rfhub/<UID>/<device-id>-<nr>/<type> # nåværende status per enhet/endepunkt
Kommandoer (hva RF-HUB lytter på)
styrahem/rfhub/<UID>/<device>/<endpoint>/set/... # send kommandoer hit
Discovery-konfigurasjon (retained, automatisk integrasjon i HA)
homeassistant/<entity_type>/<unique_id>/<name>/config
Discovery-meldingene inneholder bl.a. state_topic, command_topic og availability slik at HA (eller en annen klient som snakker HA Discovery) automatisk setter opp entitetene.
Eksempel — slå på en bryter via mosquitto_pub
mosquitto_pub -h homeassistant.local -t homeassistant/switch/rfhub_kok_taklampa/set -m ON
Eksempel — lytte på hendelser i Python
import paho.mqtt.client as mqtt
UID = "ABCD1234" # fra Info-fanen i RF-HUBs webgrensesnitt
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
Webgrensesnittet bruker WebSocket for sanntidsoppdateringer, men det er en intern protokoll som kan endres mellom firmware-versjoner. For integrasjoner anbefaler vi REST eller MQTT.
Spørsmål
Trenger du detaljer om et bestemt topic eller payload — ta kontakt.