NEWS
Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)
-
@Qlink
Ich nutze ebenfalls die Sonos HTTP API.
Lege dir eigene Datenpunkte für die Steuerung an (Logikwert, Rolle = switch), als Beispiele:0_userdata.0.sonos.play 0_userdata.0.sonos.pause
Danach legst du dir ein Skript an und kopierst da folgendes hinein:
on({id:'0_userdata.0.sonos.play', change:'ne', val:true} , function (dp) { controlSonos('play'); setState(dp.id, false); }); on({id:'0_userdata.0.sonos.pause', change:'ne', val:true} , function (dp) { controlSonos('pause'); setState(dp.id, false); }); function controlSonos(control_value){ try { require("request")((['http://192.168.30.90:5005/EZKUGAWC/' + control_value].join(''))).on("error", function (e) {console.error(e);}); } catch (e) { log('Fehler bei Sonos HTTP API Steuerung: ' + e, 'warn'); } }
Die Funktion controlSonos kannst du dann mit beliebigen Befehlen aufrufen.
Im iQontrol packst du beim Mediaplayer deine selbst erstellten Datenpunkte rein und steuerst diese mit true.Probier mal
-
@dslraser said in Test Adapter iQontrol 1.5.x:
@da_woody sagte in Test Adapter iQontrol 1.5.x:
gibts da eine lösung um auch die instanz nummer mit anzuzeigen? so bringt mir das nicht wirklich was...
Ich habe es zum "testen" bei mir mal umgebaut...(kann ich später zur Verfügung stellen, wenn denn alles weiter funktioniert. Ich schaue es mir aber noch ein Weilchen an)
Edit: @da_Woody
ich habe die Testversion hier mit reingelegt
https://forum.iobroker.net/post/562307spinn ich, oder hab ich einen knick im hirn?
steht da. gut.
keine instanznummer. chrome, firefox, handy -
@da_woody
hattest Du mal alle Datenpunkte gelöscht, oder mal einen Adapter aus und wieder angeschaltet ?
Du könntest auch mal in der Funktion Datenpunkte_anlegen dieses false auf true setzen, dann werden alle schon bestehenden Datenpunkte überschrieben.Edit: angelegt in javascript.x oder unter 0_userdata.0 ?
-
@dslraser steht ja richtig drinnen in dem DP! siehe 1. pic von mir...
oder hier
edith:
-
@da_woody
welche html Liste hast Du eigentlich in iQontrol verlinkt ?PS:Starte mal JS-Adapter / iQontrol Adapter einmal neu
-
@da_woody
in deinem edit Foto ist 0_userdata.0 zu sehen und in Deinem iQontrol Screeshot hast Du javascript.0 verlinkt -
@dslraser oh, mann!
-
@da_woody
also geht es ? -
@dslraser jup. durchs neue blockly hat er die jetzt unter 0_userdata.0, waren aber noch unter javascript.0 drinnen. darum, plint, nicht aufgefallen...
-
Danke für die Info. Leider kann ich mit javascript wenig anfangen.
Verstehe ich es richtig, dass ich für alle meine Sonos Player (insgesamt 7), jeweils das von dir gepostet Script benötigen würde und auch jeweils die Steuerungsdatenpunkte ?
Also 7x das Script und 7x die Steuerungsdatenpunkte ?
-
Irgendwie bin ich zu dumm um die URL Parameter zu verstehen.
Ich würde gerne meine Ansicht "Arbeitszimmer" als Standardseite im Firefox hinterlegen:http://192.168.178.3:8082/iqontrol/index.html?renderView=iqontrol.1.Views.Arbeitszimmer
Was ist daran falsch?
Grüße
-
@hc-yami sagte in Test Adapter iQontrol 1.5.x:
Irgendwie bin ich zu dumm um die URL Parameter zu verstehen.
Ich würde gerne meine Ansicht "Arbeitszimmer" als Standardseite im Firefox hinterlegen:http://192.168.178.3:8082/iqontrol/index.html?renderView=iqontrol.1.Views.Arbeitszimmer
Was ist daran falsch?
Grüße
Sollte gehen. Stimmt die Instanz-Nummer (1)? Vielleicht müsste hier die 0 stehen?
-
@qlink
Frage 1: Würde dir ein Blockly Skript mehr weiterhelfen?
Frage 2: Meinst du mit Sonos Player, dass du 7 Sonos Lautsprecher hast und EZKUGAWC ist eine ID davon, die anderen haben eine andere? Oder hast du einen Lautsprecher und 7 verschiedene Mediaplayer Kacheln?Zu deinen Fragen (bezogen darauf, dass du 7 Sonos Lautsprecher mit verschiedenen IDs hast):
- die Datenpunkte bräuchtest du dann pro Instanz, korrekt. Als Beispiel (BBBBBBBB wäre hier der zweite Lautsprecher):
0_userdata.0.sonos.EZKUGAWC.play 0_userdata.0.sonos.EZKUGAWC.pause 0_userdata.0.sonos.BBBBBBBB.play 0_userdata.0.sonos.BBBBBBBB.pause
- Die Trigger bräuchtest du dann natürlich für alle Datenpunkte:
on({id:'0_userdata.0.sonos.EZKUGAWC.play', change:'ne', val:true} , function (dp) { controlSonos('EZKUGAWC', 'play'); setState(dp.id, false); }); on({id:'0_userdata.0.sonos.EZKUGAWC.pause', change:'ne', val:true} , function (dp) { controlSonos('EZKUGAWC', 'pause'); setState(dp.id, false); }); on({id:'0_userdata.0.sonos.BBBBBBBB.play', change:'ne', val:true} , function (dp) { controlSonos('BBBBBBBB', 'play'); setState(dp.id, false); }); on({id:'0_userdata.0.sonos.BBBBBBBB.pause', change:'ne', val:true} , function (dp) { controlSonos('BBBBBBBB', 'pause'); setState(dp.id, false); });
- Die Funktion reicht einmal, solange man ihr als zusätzlichen Parameter die ID mit übergibt:
function controlSonos(control_id, control_value){ try { require("request")((['http://192.168.30.90:5005/' + control_id + '/' + control_value].join(''))).on("error", function (e) {console.error(e);}); } catch (e) { log('Fehler bei Sonos HTTP API Steuerung: ' + e, 'warn'); } }
Bei den Triggern siehst du den Aufruf der Funktion controlSonos mit zwei Parametern:
controlSonos('BBBBBBBB', 'play');
Die ID wäre dann für jeden Lautsprecher beim Datenpunkt und beim Aufruf der Funktion anzupassen.Wie gesagt, alles unter der Annahme, dass du 7 Lautsprecher hast.
Wenn dir Blockly mehr zusagt, können wir auch gerne schauen, dass da zu realisieren. -
@qlink sagte in Test Adapter iQontrol 1.5.x:
Danke für die Info. Leider kann ich mit javascript wenig anfangen.
Verstehe ich es richtig, dass ich für alle meine Sonos Player (insgesamt 7), jeweils das von dir gepostet Script benötigen würde und auch jeweils die Steuerungsdatenpunkte ?
Also 7x das Script und 7x die Steuerungsdatenpunkte ?
Ja, stimmt. Man könnte das Script aber so abwandeln, dass es die Datenpunkte selbst erstellt - bleibt aber ein wenig Handarbeit.
-
@s-bormann das wars. Danke dir!
-
@s-bormann
vielen Dank für deine super Arbeit, bin begeistert. Ich nutze diesen Adapter seit ca. 5 Tagen. Kann sein, dass ich etwas nicht verstanden habe oder hier nichts gefunden habe, wie ich das lösen kann. Ich habe mir deine Tutorials angeschaut, wenn ich eine Internetadresse hinzufüge als widget klappt das irgendwie nicht (siehe Bilder) Meine Installation läuft über einen Raspi 3b und iobroker unter http
-
@mikweb schwer zu sagen wenn du die URL nicht zeigst. woher hast du die url? ist die richtig, musst du dich auf der seite anmelden damit du die seite siehst?
-
@da_woody
https://www.wetter.com/deutschland/berlin/DE0001020.htmlegal welche auch https://google.de geht bei mir nicht
-
@mikweb sagte in Test Adapter iQontrol 1.5.x:
@da_woody
https://www.wetter.com/deutschland/berlin/DE0001020.htmlegal welche auch https://google.de geht bei mir nicht
Es gibt Webseiten, die es ablehnen, in einem iFrame eingebettet zu werden. Da kann man dann leider nichts machen.
-
@mikweb sagte in Test Adapter iQontrol 1.5.x:
@da_woody
https://www.wetter.com/deutschland/berlin/DE0001020.htmlegal welche auch https://google.de geht bei mir nicht
Schau Dir mal das z.B. an