Aktuelle Test Version
1.0.6
Veröffentlichungsdatum
20.08.2026
Github Link
https://github.com/AlanSRU/ioBroker.sky-remote
Adapter: sky-remote
Version: 1.0.6
Stand / Date: 20.08.2026
Repository: https://github.com/AlanSRU/ioBroker.sky-remote
npm: https://www.npmjs.com/package/iobroker.sky-remote
Issues: https://github.com/AlanSRU/ioBroker.sky-remote/issues
Lizenz / License: MIT
Status: latest Repository
Hallo zusammen, ich möchte euch meinen Adapter sky-remote zum Testen vorstellen.
Der Adapter steuert Sky Q Receiver von Sky über das Netzwerk — also genau die Tasten, die sonst auf der Fernbedienung liegen. Die Kommunikation läuft direkt per TCP über Port 49160 im LAN, ohne Cloud, ohne Konto und ohne Anmeldung.
Voraussetzungen
js-controller >= 6.0.11
Admin >= 7.6.20
Node.js >= 22
Sky Q Receiver im gleichen Netzwerk, IP-Adresse bekannt (am besten per DHCP-Reservierung fest)
Funktionen
38 Tastenobjekte unter buttons.* — Power, Navigation (up/down/left/right/select), Zifferntasten 0–9, Farbtasten, TV Guide, Box Office, Sky, Wiedergabe-Tasten (play/pause/stop/record/rewind/fastforward) und weitere
Tastenfolgen über den State sendSequence: eine kommagetrennte Liste, z. B. 1,0,1 für Kanal 101 oder tvguide,down,select. Zwischen den einzelnen Befehlen liegen 500 ms, damit die Box jeden Tastendruck sicher annimmt
Verbindungsüberwachung in info.connection. Die Prüfung ist ein reiner TCP-Verbindungstest — sie sendet keinen Befehl und löst deshalb keine Bildschirmanzeige auf dem Fernseher aus
Intervall konfigurierbar von 5 bis 300 Sekunden (Standard 60 s)
Nutzbar aus Blockly, JavaScript und VIS — Beispiele stehen in der README
Keine Laufzeit-Abhängigkeiten außer @iobroker/adapter-core; das Sky-Protokoll ist im Adapter selbst implementiert
Installation
Über den ioBroker-Admin: Adapter → sky-remote → Installieren (Repository latest).
Danach in der Instanz-Konfiguration eintragen:
IP-Adresse oder Hostname der Sky Q Box
Port — normalerweise 49160
Intervall der Verbindungsprüfung in Millisekunden (Standard 60000)
Konfiguration — bitte beachten
Die Tastenobjekte sind schreibgeschützte Auslöser (role: button, read: false). Sie haben also bewusst keinen lesbaren Wert:
Ein Tastendruck wird durch Schreiben von true ausgelöst (mit ack: false, das ist bei setState aus Skripten und VIS der Normalfall).
Der State wird nicht automatisch auf false zurückgesetzt — das ist so gewollt und entspricht der ioBroker-Vorgabe für die Rolle button.
Erneutes Schreiben von true löst den Befehl erneut aus, auch wenn dort schon true steht. Für Kanalnummern wie 1-0-1 ist also nichts weiter zu beachten.
Für sendSequence gilt dasselbe: ioBroker veröffentlicht jeden Schreibvorgang, auch einen wertgleichen, deshalb löst dieselbe Folge auch beim zweiten Mal wieder aus. Nur wenn eine Oberfläche einen unveränderten Wert von sich aus gar nicht erst abschickt (manche Eingabefelder und Widgets tun das), passiert nichts — das liegt dann an der Oberfläche, nicht am Adapter.
Zusätzlich versteht sendSequence drei Aliase, für die es absichtlich keine eigenen Tastenobjekte gibt: dismiss (= backup), sidebar (= interactive) und search (= services).
Worüber ich mich beim Feedback besonders freue
Welche Receiver funktionieren? Entwickelt und getestet habe ich gegen Sky Q. Ob Sky+HD, Sky Q Mini oder ältere Modelle das gleiche Protokoll auf Port 49160 sprechen, weiß ich nicht — Rückmeldungen dazu sind sehr willkommen. Für Sky Glass / Sky Stream erwarte ich, dass es nicht funktioniert, bestätigt ist das aber nicht.
Muss an der Box etwas freigeschaltet werden? Bei mir läuft es ohne besondere Einstellung. Falls bei euch erst eine Option aktiviert werden musste, schreibt gerne, welche.
Standby: Reagiert eure Box im Standby noch auf power, oder muss sie dafür wach sein?
Timing bei langen Folgen: Reichen die 500 ms zwischen den Befehlen, oder verschluckt eure Box bei längeren Folgen einzelne Tastendrücke?
info.connection: Bleibt der Status im Alltag stabil, oder flattert er bei euch?
Und natürlich alles, was im Log auffällt — bei Fehlern bitte den Log-Auszug auf Stufe debug mit dazu.
Rückmeldungen gerne hier im Thread oder als Issue auf GitHub. Vielen Dank fürs Testen!
English
Adapter: sky-remote
Version: 1.0.6
Stand / Date: 20.08.2026
Repository: https://github.com/AlanSRU/ioBroker.sky-remote
npm: https://www.npmjs.com/package/iobroker.sky-remote
Issues: https://github.com/AlanSRU/ioBroker.sky-remote/issues
Lizenz / License: MIT
Status: latest Repository
Hello everyone, I would like to present my sky-remote adapter for testing.
The adapter controls Sky Q set-top boxes from Sky over the network — the same buttons you would otherwise press on the remote. Communication is plain TCP to port 49160 on the LAN: no cloud, no account, no login.
Requirements
js-controller >= 6.0.11
Admin >= 7.6.20
Node.js >= 22
A Sky Q box on the same network, with a known IP address (ideally a fixed DHCP reservation)
Features
38 button states under buttons.* — power, navigation (up/down/left/right/select), digits 0–9, colour buttons, TV Guide, Box Office, Sky, transport controls (play/pause/stop/record/rewind/fastforward) and more
Command sequences through the sendSequence state: a comma-separated list, e.g. 1,0,1 for channel 101, or tvguide,down,select. Commands are spaced 500 ms apart so the box registers each key press
Connection monitoring in info.connection. The check is a plain TCP connection test — it sends no command, so it does not trigger an on-screen display on the TV
Configurable interval from 5 to 300 seconds (default 60 s)
Usable from Blockly, JavaScript and VIS — examples are in the README
No runtime dependencies beyond @iobroker/adapter-core; the Sky protocol is implemented in the adapter itself
Installation
Via ioBroker Admin: Adapters → sky-remote → Install (repository latest).
Then configure the instance:
IP address or hostname of the Sky Q box
Port — normally 49160
Connection check frequency in milliseconds (default 60000)
Configuration — please note
The button states are write-only triggers (role: button, read: false), so they deliberately carry no readable value:
A press is triggered by writing true (with ack: false, which is what setState from scripts and VIS does by default).
The state is not reset to false afterwards — that is intentional and follows the ioBroker specification for the button role.
Writing true again re-triggers the command even if the state already holds true, so channel numbers like 1-0-1 need no special handling.
The same applies to sendSequence: ioBroker publishes every write, including one with an unchanged value, so sending the identical sequence a second time triggers it again. The only case where nothing happens is a front end that declines to send an unchanged value at all (some input fields and widgets do this) — that is the UI, not the adapter.
sendSequence also accepts three aliases that intentionally have no button state of their own: dismiss (= backup), sidebar (= interactive) and search (= services).
Feedback I would particularly appreciate
Which boxes work? I developed and tested against Sky Q. Whether Sky+HD, Sky Q Mini or older models speak the same protocol on port 49160 I genuinely do not know — reports are very welcome. For Sky Glass / Sky Stream I expect it does not work, but that is unconfirmed.
Does anything need enabling on the box? Mine works with no special setting. If you had to turn something on first, please say which option.
Standby: does your box still respond to power from standby, or does it need to be awake?
Timing on long sequences: are 500 ms between commands enough, or does your box drop key presses in longer sequences?
info.connection: does the status stay stable in day-to-day use, or does it flap for you?
And of course anything odd in the log — for errors please include a debug-level log extract.
Feedback here in the thread or as a GitHub issue is equally welcome. Thanks for testing!