NEWS
[Projekt] Entwicklung iobroker.mcp und iobroker.blink
-
Hallo zusammen,
Pfingsten habe ich an zwei Adapter-Projekten herumgeschraubt, die ich Euch hier vorstellen möchte â beide sind noch nicht so weit, daĂ ich sie als richtige ioBroker-Adapter anmelden könnte, aber sie tun jeweils schon das, wofĂŒr ich sie konkret gebaut habe. Und ich hĂ€tte gerne Mitstreiter, Mit-Meckerer und Mit-Tester.
TL;DR â die beiden Projekte
- iobroker.mcp â eine BrĂŒcke zwischen ioBroker und LLM-Clients ĂŒber das Model Context Protocol. Zur Zeit als externer Python-Server (stdio, neben dem LLM-Client installiert), spricht via
simple-apimit dem ioBroker. Ziel-Architektur: nativ als ioBroker-Adapter laufend, ĂŒber HTTP(S) Streamable Transport direkt an LLM-Clients angebunden, keine simple-api-AbhĂ€ngigkeit mehr. Repo: https://github.com/McCavity/iobroker-mcp - iobroker.blink â ein echter Blink-Adapter auf Basis von
blinkpy(Python). Zur Zeit nur ein Hotfix-CLI, das aus einem JS-Adapter-Skript viaexec()aufgerufen wird (Arm/Disarm via Sunset/Sunrise-Trigger). Ziel-Architektur: vollstĂ€ndiger Adapter mit Long-Running-Bridge, allen Datenpunkten der Networks/Cameras (Arm-Status, Motion, Battery, Snapshot etc.). Auslöser fĂŒr das Projekt: das alte Setup via HAM-Adapter war seit Wochen kaputt, weil Amazon Blink im Oktober/November 2025 die Auth-Architektur auf OAuth umgestellt hat â das HAM-genutzte Plugin ist seit April 2025 archiviert.
Beide Projekte sind heute ĂŒber denselben Diagnose-Faden verbunden, deshalb stelle ich sie zusammen vor.
Hinweis zur KI-Beteiligung (gemÀà dem angepinnten Forum-Hinweis): Beide Projekte sind in enger Zusammenarbeit mit einem LLM-basierten Coding-Agent (Claude Code) entstanden â sowohl Architektur-Entscheidungen als auch Code-Anteil. Mein Anteil sind Anforderungen, Domain-Wissen, Live-Tests im eigenen Setup und Review. In den Repos ist die KI-Beteiligung durch
Co-Authored-By-Marker in den Commits sowie Hinweise in den READMEs dokumentiert. Auch diesen Forum-Beitrag haben wir gemeinsam in mehreren Iterationen geschrieben.Wie es dazu kam â die Blink-Saga in Kurz
Mein Skript fĂŒr die AuĂen-Kameras (Arm 30 Min vor Sonnenuntergang, Disarm 30 Min nach Sonnenaufgang, klassisch ĂŒber
astro-Trigger) ist irgendwann gestorben â Schreibversuche auf den HAM-Datapoint kamen mitack=falsezurĂŒck, im HAM-Log stand nurHAPStatus -70402 SERVICE_COMMUNICATION_FAILURE. Ich hatte Debug-Logs im JS-Adapter aktiviert, mit -70402 etwas anzufangen versucht, dann gemerkt, daĂ auch das HAM-Plugin selbst noch ein eigenes Debug-Level hat, das ich nicht aktiviert hatte â und an dem Punkt ist mir die Lust ausgegangen. Plan-B waren feste ZeitplĂ€ne in der Blink-App, suboptimal aber tat irgendwas. Mit Repo-Versionen, Plugin-Source und dem eigentlichen Fehler habe ich mich gar nicht mehr beschĂ€ftigt.Pfingst-Sonntag habe ich den Fall an einen LLM-Helfer weitergereicht (Claude Code), den ich vorher mit einem MCP-Server fĂŒr ioBroker bewaffnet hatte â und das war der Wendepunkt. Damit war der Diagnose-Loop in zwanzig Minuten am Killer-Finding. Nichts davon hĂ€tte ich nicht prinzipiell auch selbst tun können. Aber zwischen "kann ich prinzipiell" und "mache ich tatsĂ€chlich" liegt halt manchmal das Leben.
iobroker.mcp â Werkzeug und Stand
Damit der Rest nachvollziehbar ist, ein kurzer Schwenk zum Begriff:
Model Context Protocol (MCP) ist eine 2024 von Anthropic vorgestellte Spezifikation, mit der LLM-Clients (Claude Code, Codex, OpenCode etc.) strukturiert auf externe Datenquellen und Werkzeuge zugreifen können. Ein MCP-Server ist ein kleines Programm, das eine Sammlung von Tools bereitstellt â Funktionen mit Name, Beschreibung, Parameter-Schema und RĂŒckgabe. Das LLM sieht diese Tools, kann sie strukturiert aufrufen, bekommt das Ergebnis und arbeitet damit weiter.
Konkret an einem ioBroker-Beispiel: ich sage in einem normalen Chat zu Claude "schalte die Blink-AuĂen-Kameras scharf". Claude kennt
iobroker.mcpund sieht darin das Toolwrite_state(id, value). Sie ruft auf:write_state("ham.0.Blink-Blink-AuĂen.Blink-AuĂen-Arm.On", true)Der MCP-Server ĂŒbersetzt das aktuell in einen HTTP-Call gegen den
simple-api-Adapter (GET /set/<id>?value=true). Die simple-api sitzt im ioBroker, setzt den Datenpunkt im Objektbaum auftruemitack=false, der jeweilige Adapter reagiert wie sonst auch â fertig.Aktueller Stand:
- FastMCP, Python (~400 Zeilen), MIT-Lizenz, public Repo
- Transport: stdio, d.h. zur Zeit als Co-Installation neben dem LLM-Client (Mac, Linux-Workstation o.Ă€.)
- Kommunikation mit ioBroker: ĂŒber
simple-api(Voraussetzung: simple-api-Adapter installiert und Instanz aktiv, im LAN ohne Auth) - Acht Tools:
Tool Was es macht health_checkErreichbarkeit + Adapter-Version prĂŒfen read_state(id)Einzelnen Datenpunkt lesen read_states_bulk(ids[])Mehrere Datenpunkte gleichzeitig (sparsam) write_state(id, value)Schreibend setzen mit ack=false toggle_state(id)Bool-Wert umkippen (read+write in einem) list_objects(pattern)Objekte per Wildcard listen search_objects(query)Volltextsuche in Object-Namen query_history(id, options)Historische Werte aus dem History-Adapter ziehen Ziel-Architektur:
- Nativ als ioBroker-Adapter laufend (also in der Adapter-Sprache des Ăkosystems, also TypeScript/JavaScript â hier fehlt mir noch einiges an Erfahrung, deshalb Bitte um Mit-Hilfe weiter unten).
- HTTP(S) Streamable Transport statt stdio, damit der LLM-Client direkt mit dem Adapter sprechen kann (von ĂŒberall, nicht nur lokal auf dem MCP-Server-Host).
- Keine
simple-api-AbhĂ€ngigkeit mehr â Adapter spricht direkt mit dem ioBroker-Objektbaum und der States-Datenbank. - Authentifizierung optional (Token, spĂ€ter ggf. Pro-User), damit das Ding auch auĂerhalb LAN nutzbar bleibt.
iobroker.blink â AnlaĂ, Workaround und Stand
AnlaĂ: HAM-Adapter mit
homebridge-blink-for-homeals BrĂŒcke zu Blink â funktionierte ĂŒber Jahre, fiel im Herbst 2025 aus. Mit MCP-Server-UnterstĂŒtzung dann diagnostiziert: das Plugin schweigt sich ĂŒber sein eigenes Scheitern aus (inlog.jssindlog.info/log.debugals No-Op definiert), und sobald manlogging: "debug"aktiviert, kommt der eigentliche Fehler ans Tageslicht:HTTP 426 An app update is required. Amazon hat eine Mindest-App-Version eingefĂŒhrt; das Plugin meldet sich noch mitappVersion: 6.18.0 (2210101952)aus Oktober 2022. Plus: das Original-Repo ist seit 24. April 2025 archiviert, der aktive Fork hat das Problem ebenfalls (Issue #2 imFlomentum-Solutions/homebridge-blink-for-home-new), Home Assistant trifft die gleiche Wand (Issue #154477 im HA-Core).Der Grund ist nicht "Version-String veraltet". Amazon hat den Blink-Login komplett auf OAuth umgestellt (Access-Token + Refresh-Token statt klassischer Session-Cookies). Ein Plugin-Update mit gepatchtem Version-String wĂŒrde nichts retten â die ganze Auth-Architektur muĂ umgeschrieben werden. Im Python-Ăkosystem gibt's allerdings schon eine Lösung: blinkpy von fronzbot hat den OAuth-Flow im PR #1115 bereits implementiert und wird aktiv gepflegt.
Aktueller Stand (Workaround):
- HAM-Adapter raus (
iobroker del hamâ 541 npm-Pakete entfernt) blinkpy 0.25.5in einem venv unter/home/iobuser/blink-venv/- Mini-CLI
blink_control.pymitarm/disarm/status(gut 100 Zeilen) - JS-Skript ruft via
exec()mit den astro-Triggern auf - Live verifiziert: Pfingst-Sonntagabend Arm-Trigger gefeuert, gestern frĂŒh 06:02 Disarm-Trigger ebenfalls
Heute morgen habe ich allerdings festgestellt, daĂ mein Batterie-Check noch ĂŒber den alten HAM-Adapter ging und dort jetzt natĂŒrlich ins Leere zeigt â diese FunktionalitĂ€t ist verloren, bis ein richtiger Adapter da ist. Damit ist klar: das Hotfix-CLI deckt nur die Arm/Disarm-Schedule ab, alles andere fĂ€llt aktuell aus.
Ziel-Architektur:
- VollstÀndiger ioBroker-Adapter mit Long-Running-Bridge (vermeidet die 30-60s Cold-Start-Latenz, die das Python-CLI pro Aufruf hat)
- Vermutlich Python-SubprozeĂ fĂŒr die blinkpy-Anbindung, JSON-RPC oder MQTT als IPC, JS/TS-Adapter-Wrapper drumherum â Architektur noch offen, VorschlĂ€ge willkommen
- Datenpunkte fĂŒr alle Networks und Cameras: Arm-Status (lesend + schreibend), Motion-Detection, Battery-Level, Wifi-Strength, Snapshot-Fetch, ggf. Live-View-URL
- 2FA-Erst-Auth einmalig per Konfig-UI, Token-Refresh dann transparent
Die Bitte
Was ich gebaut habe sind zwei Prototypen â der eine lĂ€uft schon im Alltag (das MCP-Werkzeug), der andere ist erstmal nur ein Pflaster (das Blink-Hotfix-CLI). FĂŒr beide brauche ich Mitstreiter, weil ich an einigen Stellen noch Bedarf habe:
- JS/TS-Adapter-Entwicklung im Allgemeinen â ich habe einiges an Python-Code geschrieben, aber das ioBroker-eigene Adapter-Ăkosystem ist auf Node-basiert. Wer Lust hat, mir hier auf die SprĂŒnge zu helfen, ist herzlich willkommen.
- HTTP(S) Streamable MCP Transport in einem ioBroker-Adapter â falls jemand das schon mal gemacht oder gesehen hat, Hinweise gerne.
- Architektur-Diskussion fĂŒr iobroker.blink â Long-Running-Python-Bridge vs. native Node-Implementierung der Blink-API? IPC via MQTT/JSON-RPC/Unix-Socket? Ich habe Meinungen, aber keine endgĂŒltigen Antworten.
- Test-Setups fĂŒr iobroker.blink â wer Blink-Hardware hat und im Adapter-Beta testen wĂŒrde, gerne melden.
- Wunschverhalten fĂŒr beide Adapter â was wĂŒrde Euch sinnvoll erscheinen? Auch "ich wĂŒrde das so nie nutzen, weil..." ist wertvolles Feedback.
Sobald die Repos ein biĂchen Substanz haben, werde ich fĂŒr
iobroker.blinkeinen eigenen "Test/Entwicklung"-Thread aufmachen â Hinweis kommt hier dann nochmal.iobroker.mcplĂ€uft erstmal weiter im jetzigen Repo (https://github.com/McCavity/iobroker-mcp), Issues / Feature-Requests / PRs nehme ich gerne an.LG
McCavity
- iobroker.mcp â eine BrĂŒcke zwischen ioBroker und LLM-Clients ĂŒber das Model Context Protocol. Zur Zeit als externer Python-Server (stdio, neben dem LLM-Client installiert), spricht via
-
Das soll deine Arbeit nicht schlecht machen, hast du diesen Adapter gesehen?:
https://forum.iobroker.net/topic/84386/test-adapter-fĂŒr-blink-kameras-entwickelt-mit-kiVielleicht auch zusammen tun um an diesem Projekt zu arbeiten?
-
lol nein, nicht gesehen... ich hab nur im Repo geschaut, ob es was gibt, aber nicht im Forum đ€Ł
Belege letzte Durchsage, ich werde keinen Blink Adapter entwickeln.
Wenn jetzt auch noch einer einen MCP Server in der Mache hat, werfe ich das Handtuch ;-)
-
lol nein, nicht gesehen... ich hab nur im Repo geschaut, ob es was gibt, aber nicht im Forum đ€Ł
Belege letzte Durchsage, ich werde keinen Blink Adapter entwickeln.
Wenn jetzt auch noch einer einen MCP Server in der Mache hat, werfe ich das Handtuch ;-)
-
lol nein, nicht gesehen... ich hab nur im Repo geschaut, ob es was gibt, aber nicht im Forum đ€Ł
Belege letzte Durchsage, ich werde keinen Blink Adapter entwickeln.
Wenn jetzt auch noch einer einen MCP Server in der Mache hat, werfe ich das Handtuch ;-)
Da gibt es schon 2 AnsÀtze
https://github.com/ioBroker/ioBroker.mcp
https://github.com/Holger-Will/ioBroker.mcp-serverDer erste ist von Bluefox, den will er nun als NĂ€chstes weiterentwickeln.
Meiner Meinung nach mĂŒsste er den folgenden befehlsumfang abdeckenSocketCommand und socketCommandsAdmin
https://github.com/ioBroker/ioBroker.socket-classes/tree/main/src/lib
-
lol nein, nicht gesehen... ich hab nur im Repo geschaut, ob es was gibt, aber nicht im Forum đ€Ł
Belege letzte Durchsage, ich werde keinen Blink Adapter entwickeln.
Wenn jetzt auch noch einer einen MCP Server in der Mache hat, werfe ich das Handtuch ;-)
@McCavity das Thema MCP war auch ein Diskussionspunkt im letzten Dev Meeting https://forum.iobroker.net/topic/84355/meeting-fĂŒr-iobroker-core-dev-admin-20.05.26-20-30
Wenn die Aufzeichnung bereitgestellt wurde kannst du es dir dort auch noch einmal anhören was dort besprochen wurde
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden