NEWS
[gelöst] Ort für Scripte / Script einbindung
-
Hallo @ all,
ich möchte gerne meine aktuellen Workflows (mit cmd_exec) auf der CCU2 in ioBroker nachbauen und verbessern. Momentan habe ich relativ viele quick n dirty Programme nach dem Schema unten. Diese machen nix anderes als auf meinem Chumby One die Musik Streams umschalten. Leider ist cmd_exec nicht sehr stabil.
string url = "http://192.168.200.24/cgi-bin/zmote_play.sh?http://159.8.16.48:18428/stream"; dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
Ersetzen würde ich dies durch (im Forum gefunden) folgenden Aufruf. Leider weiss ich aber nicht wo ich diesen platzieren muss um mit einem "Drücker" in VIS die Musik zu starten.
var request = require ('request'); var url = "http://192.168.200.24/cgi-bin/zmote_play.sh?http://159.8.16.48:18428/stream" request(url)
LG
-
Ganz kurz: Erstell ein objekt, ein widget dem du das objekt zuweist und im skript machst du eine subscrition.
Mit diesen einfachen informationen sollte die suche genug ergebnisse liefern.
http://forum.iobroker.net/viewtopic.php?t=2380
https://github.com/ioBroker/ioBroker.ja ... some-state
Gesendet von meinem Jolla mit Tapatalk
-
Hallo Jey Cee,
leider bin ich nicht sehr weit gekommen. Liegt wohl auch daran das ich von JavaScript keine Ahnung habe. Das Register "Skripte" unter Admin musste ich mir erst einblenden. Vorher war es nicht zu sehen. Nun habe ich meine 3 Zeilen auch in ein Script gepackt, diesem einen Namen gegeben aber weiter komme ich nicht. Wenn ich ein Widget erstelle kann ich diesem zwar das Script zuweisen aber mehr auch nicht. Es passiert beim Drücken nichts. Ich denke hier ist irgendwo noch ein Fehler. Vielleicht hat noch jemand einen Tip.
LG
-
Du benötigst einen Datenpunkt, den Du per VIS betätigst und im Script auswertest:
// Stream auf Knopfdruck starten var request = require ('request'); createState("Button.Stream1, false, { // Neuer Datenpunkt zum Betätigen in VIS read: true, write: true, desc: "Stream 1 starten", type: "boolean", def: false }); on({id: "javascript.0.Button.Stream1", val: true}, function(dp) { var url = "http://192.168.200.24/cgi-bin/zmote_play.sh?http://159.8.16.48:18428/stream"; request(url); setState(dp.id, false); });
-
Hallo paul53 / @ all
danke für die Anregung. Ich hatte leider einen Bug bei mir. Der Server war nicht erreichbar. Wahrscheinlich wäre es schon nach dem ersten Beitrag gegangen.
Ich habe mich jetzt für folgende Lösung entscheiden. ich hoffe dies ist nicht zu crappy
Es wird hierbei anschließend auch das Script wieder angehalten und der Status zurückgesetzt.
Da ich ja auch von meinem Musikplayer keinerlei Rückantwort bekomme nachdem ich die URL aufgerufen habe.
// Stream auf Knopfdruck starten var request = require ('request'); var url = "http://192.168.200.24/cgi-bin/zmote_play.sh?http://dubstep-light.info:8000/dubsteplight.mp3" request(url) setState("javascript.0.scriptEnabled.MusikStreams.DubstepLight"/*scriptEnabled.MusikStreams.DubstepLight*/, false);