NEWS
Script Syntax KNX-Sonos
-
Hallo liebe Leute,
ich habe gestern zufällig ioBroker gefunden und finde die Möglichkeiten super. Ich habe dann sofort ein Rapspi ausgekramt und das fertige Image installiert. Ich habe den KNX und den Sonos Adapter eingerichtet. Nun will ich ein Script schreiben um mit einer KNX Gruppenadresse einen Sonos Player zu stoppen. Es funktioniert die Kommunikation zum KNX und mit dem SONOS-Adapter kann ich den Player mit````
setState("sonos.0.root.192_168_10_162.state","stop")zusammengebaut. Da muss irgendwie ein Fehler drin sein. Kann mir da jemand mit der Syntax weiterhelfen?
on({id: '"knx.0.Werkstatt.Neue_Mittelgruppe.Homeoffice_rechts_Status"/Homeoffice rechts Status/,1'}, function (obj) {
setState("sonos.0.root.192_168_10_162.state","stop");
});Ich habe heute schon einige Stunden gelesen aber nichts passendes gefunden. Es gibt ja eine KNX-Lizenz. Wird die für die Funktion benötigt? Wenn ja wo kann ich die eintragen? Vielen Dank toschi
-
on({id: '"knx.0.Werkstatt.Neue_Mittelgruppe.Homeoffice_rechts_Status"/Homeoffice rechts Status/,1'}, function (obj) {
setState("sonos.0.root.192_168_10_162.state","stop");
}); `
Gehe doch mal in iobroker auf den Reiter Objekte.Da gebe einfach mal oben links die einen der beiden Werte "sonos.0.root.192_168_10_162.state" oder "knx.0.Werkstatt.Neue_Mittelgruppe.Homeoffice_rechts_Status" ein. Siehe Bild.
Da, wo der rote Pfeil ist, sollte ja dann auch das Objekt zu sehen sein. Bei mir natürlich nicht, da ich diese Geräte nicht habe.Du solltest also für beide Objekte auch die Objekte sehen können. Jeder Wert eines Objektes hat einen Typen. Klicke hinten rechts mal auf den Bleistift.
Dann siehst du den typen dieses Wertes deines Objektes.
Ist der vor allem bei sonos eine zeichenkette? Mir kommt das "Stop" verdächtig vor. Wenn es boolean z. B. ist, ist ein String(Zeichenkette) "stop" nämlich falsch. Wie hast Du es den getestet?
ansonsten füge mal noch einen change Parameter hinzu, damit der trigger wirklich weiß, wann er lostriggern soll.
on({id: '"knx.0.Werkstatt.Neue_Mittelgruppe.Homeoffice_rechts_Status"/*Homeoffice rechts Status*/, change: 'any' }, function (obj) { setState("sonos.0.root.192_168_10_162.state","stop"); });
Wann soll er denn triggern?
mit "any" startet er bei jeder Änderung. Man könnte dann in der function mit if betimmte Dinge abfragen.
Auch hier stelle ich mir die Frage, welche Status (ja - plural von Status ist Status!) denn möglich sind?
Ist zb. boolean und nur 0/1 (false/true) möglich und er soll nur bei einer 1 triggern, dann könnte man einfach change: 'gt' schreiben. Somit muss der neue Wert größer als der vorhergehende sein. Was ja bei einem Wechsel von 0 auf 1 der fall wäre.
-
Hallo
ich habe beim Sonos-Objekt nachgeschaut der Typ ist State und die möglichen Werte sind: stop,play,pause,next,previous,mute,unmute.
Mit
on({id: "knx.0.Werkstatt.Neue_Mittelgruppe.Homeoffice_rechts_Status"/Homeoffice rechts Status/, val: 1}, function (obj) {
setState("sonos.0.root.192_168_10_162.state","stop");
});
funktioniert das nun. Ist ja nur eine Testfunktion. Licht an Musik aus.
Danke für die Hinweise. Ich werde weiter probieren.
Als nächstes werde ich mir mal die Visualisierung anschauen.
-
Hallo an alle,
Als einfache Alternative für den Anschluss eines KNX Smart Home an Sonos würde ich die 1Home Software vorschlagen, die es Ihnen ermöglicht, KNX- und Sonos-Systeme ohne Programmierung oder Hardware-Gerät anzuschließen. Im Gegensatz zur DIY-Lösung mit openHAB gibt es keine Einschränkung der Zonen.
Hier ist eine kurze Anleitung um Sonos und KNX zu verbinden:
https://www.1home.io/single-post/2019/03/01/Sonos-lautsprecher-und-KNX-Leuchter-verbinden