Hast du einen Hisense-TV mit Vidaa-Betriebssystem? Und hast du dir auch schon mal gedacht: „Warum zur Hölle kann ich das Ding nicht einfach per MQTT steuern wie ein anständiges Smart-Home-Gerät?!“ Willkommen im Club. Doch nach Wochen voller Sackgassen, verschlüsselten Geheimnissen und mysteriösen Ports habe ich es geschafft – und du kannst es jetzt auch. Mit „Hisense MQTT“ steuerst du deinen Fernseher wie ein echter Nerd. Lokal. Sicher. Und komplett ohne Cloud.
⚠️ Spoiler: Es ist ein Ritt durch verschlüsselte MQTT-Server, zertifikatsgeschützte Verbindungen und Bash-Magie. Aber hey – das ist Prokrastinerd.de, nicht Mama’s Plug & Play Blog.
Schritt 1: Teste alles mit dem MQTT Explorer
Dein Fernseher muss für die Einrichtung an sein, eine feste IP-Adresse haben und Wake on LAN (WoL) muss aktiviert sein
Bevor du dir die Finger im Terminal wund tippst, teste, ob dein Fernseher überhaupt auf MQTT hört. Verwende dafür MQTT Explorer.
Einstellungen:
- Broker: IP deines Hisense-TVs
- Port:
36669 - Encryption (TLS): Aktivieren ✅
- Validate certificate: Deaktivieren ❌
- Client Certificate & Key (unter Advanced):
- Zertifikat:
rcm_certchain_pem.cer - Schlüssel:
rcm_pem_privkey.pkcs8
- Zertifikat:
Die nötigen Dateien findest du hier: GitHub
Wenn der Explorer sich verbindet, dann sende das folgende Topic (HomeAssistant kannst du austauschen, das ist deine zukünftige Client-ID für den Fernseher):/remoteapp/tv/ui_service/HomeAssistant/actions/gettvstate
Wenn das klappt, sollte dein Fernseher eine Pin anzeigen. Dann direkt folgendes Topic senden:/remoteapp/tv/ui_service/HomeAssistant/actions/authenticationcode
Payload:{"authNum": 1234}
Hat das geklappt? Glückwunsch. Dein TV kann MQTT.
Schritt 2: Debian LXC vorbereiten (alternativ einen Linux-Server oder Raspberry Pi)
Richte dir einen LXC-Container mit Debian 12 ein, z. B. in Proxmox. Gib ihm eine feste IP (Wir verwenden hier 192.168.0.84).
Dann brauchen wir Zugriff um die Zertifikate hochladen zu können.
Also:
nano /etc/ssh/sshd_config
Ergänze oder ändere:
PermitRootLogin yes
(Du kannst das nach dem Hochladen der Zertifikat-Dateien wieder auf „no“ setzen.)
mkdir /etc/mqtt_certs/
Zertifikate per SFTP hochladen, z. B. mit WinSCP.

Schritt 3: Python-Umgebung einrichten
mkdir -p /opt/hisense-mqtt
cd /opt/hisense-mqtt
apt update
apt install python3.10-venv -y
🧠 Was ist
venv?venvsteht für „virtual environment“. Es erstellt ein isoliertes Python-Umfeld, sodass deine installierten Pakete (wiepaho-mqtt) nicht mit dem System-Python oder anderen Projekten kollidieren. Nerds nennen es „sauberes Python“.
python3 -m venv venv
source venv/bin/activate
pip install paho-mqtt
Jetzt erstellen wir eine Python Datei:
nano hisense.py
Inhalt:
import ssl
import argparse
import paho.mqtt.client as mqtt
from paho.mqtt.client import CallbackAPIVersion
import time
# Argumente aus der Kommandozeile parsen
parser = argparse.ArgumentParser(description="Sende MQTT-Befehl an Hisense-TV")
parser.add_argument("--topic", required=True, help="MQTT Topic")
parser.add_argument("--payload", required=True, help="MQTT Payload")
args = parser.parse_args()
# Verbindungskonfiguration
BROKER = "192.168.0.180"
PORT = 36669
USERNAME = "hisenseservice"
PASSWORD = "multimqttservice"
CLIENT_ID = "HomeAssistant"
# Callback bei erfolgreicher Verbindung
def on_connect(client, userdata, flags, reasonCode, properties):
print(f"[INFO] Verbindungscode: {reasonCode}")
if reasonCode == mqtt.MQTT_ERR_SUCCESS:
print(f"[INFO] Verbunden – sende an Topic '{args.topic}': {args.payload}")
client.publish(args.topic, args.payload)
else:
print("[ERROR] Verbindung fehlgeschlagen")
# Callback nach erfolgreicher Veröffentlichung
def on_publish(client, userdata, mid, reasonCode, properties):
print("[INFO] Nachricht veröffentlicht – beende...")
client.disconnect()
# MQTT-Client erstellen mit TLS-Optionen
client = mqtt.Client(
client_id=CLIENT_ID,
protocol=mqtt.MQTTv311,
transport="tcp",
userdata=None,
clean_session=True,
reconnect_on_failure=True,
callback_api_version=CallbackAPIVersion.VERSION2
)
# Login setzen
client.username_pw_set(USERNAME, PASSWORD)
# TLS konfigurieren (Zertifikate nutzen, aber keine Validierung)
client.tls_set(
ca_certs=None,
certfile="/etc/mqtt_certs/rcm_certchain_pem.cer",
keyfile="/etc/mqtt_certs/rcm_pem_privkey.pkcs8",
tls_version=ssl.PROTOCOL_TLSv1_2,
cert_reqs=ssl.CERT_NONE
)
client.tls_insecure_set(True)
# Callbacks zuweisen
client.on_connect = on_connect
client.on_publish = on_publish
# Verbindung herstellen und starten
print("[INFO] Stelle Verbindung her...")
client.connect(BROKER, PORT, keepalive=60)
client.loop_start()
# Warten, bis Nachricht gesendet und Verbindung beendet wurde
while client.is_connected():
time.sleep(0.1)
client.loop_stop()
Test:
python hisense.py --topic "/remoteapp/tv/remote_service/HomeAssistant/actions/sendkey" --payload "KEY_MUTE"
Ist dein Fernseher jetzt lautlos? Super, dann hat alles geklappt!
Schritt 4: Komfortabler Zugriff per Bash
Bevor du dich fragst, warum dein Fernseher auf alle MQTT-Kommandos brav reagiert – aber nicht von allein angeht: Das liegt daran, dass Power On per MQTT nicht vorgesehen ist. Der Fernseher schläft im Deep Sleep – MQTT? Hört er nicht mehr.
Lösung: Du musst ihn via Wake-on-LAN (WoL) aus dem Dornröschenschlaf wecken.
apt install wakeonlan
wakeonlan 00:11:22:33:44:55 # Deine MAC-Adresse anpassen
Damit wir nicht immer erst in die virtuelle Umgebung wechseln müssen, basteln wir uns ein Script, welches das für uns übernimmt.
nano /usr/local/bin/hisense-send
Inhalt:
#!/bin/bash
cd /opt/hisense-mqtt || exit 1
source venv/bin/activate
python hisense.py "$@"
Dann ausführbar machen:
chmod +x /usr/local/bin/hisense-send
Test:
/usr/local/bin/hisense-send --topic "/remoteapp/tv/remote_service/HomeAssistant/actions/sendkey" --payload "KEY_MUTE"
Erneut sollte dein Fernseher lautlos bzw. wieder laut sein.
Optional: PATH erweitern, damit du einfach hisense-send ... tippen kannst:
export PATH="$PATH:/usr/local/bin"
Bonus: Integration mit ioBroker, HomeAssistant, Node-RED, usw.
Damit du von anderen Systemen aus deinen Hisense per MQTT steuern kannst, richte SSH-Zugriff ohne Passwort ein.
Auf dem System welches die Befehle senden soll, führe folgendes aus:
systemctl start ssh
ssh-keygen -t rsa -b 4096
ssh-copy-id root@192.168.0.84
Dann kannst du z. B. in Node-RED einen exec-Node verwenden:
ssh root@192.168.0.84 /usr/local/bin/hisense-send --topic "/remoteapp/tv/remote_service/HomeAssistant/actions/sendkey" --payload "KEY_MUTE"
Alternativ: sudo -u iobroker ssh-keygen & ssh-copy-id für User „iobroker“.
Dies war in meinem Fall nötig, damit die Node-RED, Blockly usw. den Befehl senden konnten.
Alternativen & Empfehlungen
Falls dir das Ganze zu nerdig ist – oder du einfach ein Backup willst, wenn der MQTT-Weg mal wieder zickt – hier zwei Optionen mit Sternchen:
- 🛒 Hisense Fernseher mit Vidaa gibt’s z. B. hier bei Amazon (bezahlter Link)
- 🛒 Zigbee-Infrarot-Bridge – die kann klassische IR-Fernbedienungen ersetzen und lässt sich mit ioBroker oder Zigbee2MQTT kombinieren. hier bei Amazon (bezahlter Link)
MQTT-Tastenbefehle für den Hisense TV
Wenn dein Fernseher erfolgreich gekoppelt wurde, kannst du über das folgende Topic Tasteneingaben senden:
Topic: /remoteapp/tv/remote_service/HomeAssistant/actions/sendkey
Steuerung & Navigation:
KEY_POWER # Gerät ein-/ausschalten (nur wenn aktiv)
KEY_OK # Bestätigen
KEY_UP # Pfeil hoch
KEY_DOWN # Pfeil runter
KEY_LEFT # Pfeil links
KEY_RIGHT # Pfeil rechts
KEY_HOME # Startbildschirm
KEY_MENU # Menü öffnen
KEY_RETURNS # Zurück
KEY_EXIT # Beenden / Zurück ins Hauptmenü
Lautstärke & Ton:
KEY_VOLUMEUP # Lauter
KEY_VOLUMEDOWN # Leiser
KEY_MUTE # Stumm
Mediensteuerung:
KEY_PLAY # Wiedergabe
KEY_PAUSE # Pause
KEY_STOP # Stopp
KEY_FORWARDS # Vorspulen
KEY_BACK # Zurückspulen
Zahlenfeld & Untertitel:
KEY_0 bis KEY_9 # Zahlentasten 0–9
KEY_SUBTITLE # Untertitel ein-/ausblenden
Weitere Befehle findest du hier: GitHub
Fazit
Es ist kein Plug & Play – aber dafür ist es nerdy, offline, lokal und genial. Mit ein bisschen Zertifikatsakrobatik und Bash-Bastelei kannst du deinem Fernseher endlich Manieren beibringen – ganz ohne Cloud, App oder offizielle API. Hisense per MQTT steuern ist nicht nur ein Befehl, sondern eine Lebenseinstellung. 😎
📎 Noch Fragen, Feedback oder eigene Hacks? Schreib mir oder poste auf nerdculture.de/@GrayTheZebra – oder natürlich in den Kommentaren!

