NEWS
WebSocket Client in einem Skript verwenden?
-
Hallo,
ich habe im Forum gesucht, habe aber irgendwie keinen Startpunkt gefunden. Ich möchte ganz konkret eine WebSocket Verbindung zu OBS aufbauen, um hier verschiedene Dinge von iobroker aus schalten zu können. Mir schwebt da einfach ein kleines Skript vor wo ich meine 2-3 Anwendungsfälle implementiere. Oder lässt sich so etwas nur als Adapter umsetzen? Hat vielleicht jemand ein kleines Beispiel?
-
-
@djmarc75 Eine Software für das streamen auf Twitch, Youtube, Facebook, etc.
-
@worlik Wenn du IoBroker pro gebucht hast, würde ich eventuell dafür iot/SimpleAPI benutzen, so das du per Script auf Server direkt oder übers Internet Datenpunkte schreiben/lesen kannst.
-
@picky Mein iobroker läuft lokal auf einem Raspberry PI. Ich bräuchte schon ein Skript, denn es geht darum auf geänderte Objekte zu reagieren, und dann via Websocket in OBS Filter, Quellen und Szenen zu schalten. Die Seite von OBS ist dokumentiert. In iobroker weiß ich aber nicht, wie ich einen Websocket Client umsetze.
Die SimpleAPI eignet sich dazu meines wissens ja nicht, weil hier nur von außen Objekte gelesen und geändert werden können. Das ist mehr ein Server, als ein Client und er spricht auch die "falsche" Sprache für mein Vorhaben.
-
@worlik
Iobroker arbeitet ja mit Node js
Im JavaScript Adapter kannst du eigene Skripte erstellen und auch zusätzliche Bibliotheken installieren und hinzufügen.Die folgende Bibliothek hilft dir einen websocket Client zu erstellen.
Ein Beispiel ist in der readme enthalten
https://www.npmjs.com/package/websocketDie Kommunikation mit dem Skript und die Steuerung was gesendet werden soll kannst du über datenpunkte umsetzen.
-
soweit ich das sehe ist das hier eine linux cli Anwendung die Befehle an OBS sendet. Sollte einfacher sein per (Scriptadapter exec) diese aufzurufen, als sich durch websocket zu arbeiten.
-
@oliverio In welchem Verzeichnis muss ich
npm install websocket
denn ausführen, damit es dann im Skript auch zur Verfügung steht? Bisher meckert der Admin da immer herum, dass er websocket nicht kennt.@ticaki Das sieht auf jeden Fall auch nach einer guten Lösung aus. In der readme sehe ich gerade noch nichts von Filtern, aber ich hoffe einfach mal, dass es trotzdem ein Kommando dafür gibt. Über die sichtbarmachung eines Filters lässt sich zum Beispiel die Kamera schwenken.
-
@worlik sagte in WebSocket Client in einem Skript verwenden?:
In welchem Verzeichnis muss ich npm install websocket denn ausführen
Das musst Du direkt in der Instanz vom JavaSkriptAdapter eingeben:
-
@djmarc75 click das hätte ich nie gefunden, vielen dank
-
@worlik sagte in WebSocket Client in einem Skript verwenden?:
@ticaki Das sieht auf jeden Fall auch nach einer guten Lösung aus. In der readme sehe ich gerade noch nichts von Filtern, aber ich hoffe einfach mal, dass es trotzdem ein Kommando dafür gibt. Über die sichtbarmachung eines Filters lässt sich zum Beispiel die Kamera schwenken.
Nimmste den da: https://pypi.org/project/obs-cli/
wenns der auch nicht ist benutze "obs cli" mit google
-
@ticaki Ja die Idee mit einem Kommandozeilentool ist auf jeden Fall gut. Ich kam gar nicht auf die Idee, sondern dachte es geht ja nur direkt mit Websocket. Ich werde auf jeden Fall beides ausprobieren.
-
Ich habe nun eine OBS Websocket Implementation gefunden, welche man in iobroker nutzen kann. Ich habe das Modul nun einfach wie im Screenshot von @DJMarc75 gezeigt hinzugefügt und man kann anfangen. Damit kann man sogar auf Events, wie zum Beispiel Szenenwechsel, reagieren. Vielen Dank euch.