NEWS
Fortführende Alexa Fragen zu Gruppierungen und Lautstärkenregelung mit Sonos/Harmony Adapter
-
Hallo,
ich such jetzt schon seit Tagen und komme einfach nicht weiter…. Habe seit Wochen den Cloud Adapter mit einfachen Dingen an/aus am Laufen. Jetzt wollte ich Ihn mal besser strukturieren und z. B. Lautstärke mit aufnehmen bei Sonos und Harmony. Und jetzt haut gar nichts mehr hin.
Ich stelle einfach mal die Fragen :oops:
1. Wie Gruppiere ich denn die Datenpunkte zusammen, wenn sich der Adapter die Datenpunkte nicht automatisch zusammen fügt? Angeblich soll die dann automatisch zusammengefügt werden, funktioniert bei mir aber nicht. Gleiche Smartnamen hätten die Punkte? Finde als Lösungsansatz nur immer was mit Homematic Adaptern neu starten oder löschen, ich habe aber kein Homematic. Habe schon Smartnamen vergeben die wirklich nur diese eine Funktion beinhaltet, z. B. für schalte Sonos Antenne Bayern ein das Gewerk "echo_sonos_antenne". Da hätte ich dann gerne "Play" und "Volume" in einem Alexa Punkt und bekomme es nicht auf die Reihe. Doppelte Vergabe von Gewerken habe ich im Forum gelesen sollte auch funktionieren. Das bräuchte ich ja damit ich "Volume" mit den einzelenen Sonos Favoriten einbinden kann bzw. ein Sprachbefehl nur mit Sonos lauter/leiser anlege. Haut auch nicht hin.
2. Wie benennt Ihr denn die Räume und Gewerke? Bei mir kollidieren die stellenweise mit dem mobile Adapter, sprich manche Punkte will/brauche ich nur im mobile und andere wieder nur für die Echos? Oder verwendet ihr bei der Mobile Ansicht nur die 3. Gruppierung (glaub Favoriten werden sie im Erklärvideo genannt).
Würde mich freuen, wenn mir einer auf die Sprünge hilft
-
Das interessiert mich auch.
Momentan nutze ich weder iobroker.Cloud noch den iobroker skill.
Ich habe erste Tests mit habridge (https://github.com/bwssytems/ha-bridge/releases/) gemacht.
Diese Bridge stellt in Richtung Alexa alles als Phillips Hue Lampen dar und kann daher auch ohne Skill "An"/"Aus"/"Dimmen".
Also könnte man mit "Alexa dimme Fernseher auf 1%" den Fernseher über die Harmony auf ARD stellen.
Auf der Seite der Steuerung kann man viel mit Harmony oder MQTT oder Sonstigem arbeiten. Eigentlich cool, aber eine integrierte Lösung in ioBroker wäre schöner.
Ludger
-
Naja geht ja bei den meisten, denke wir machen nur was falsch. Nur was :oops:
-
Servus!
Ich hänge gerade bei einem Teilproblem von dir. Sonos Grundbefehle, Radio etc. funktioniert. Nur die Erhöhung bzw. Verringerung der Lautstärke will nicht.
Das ist mein aktueller Stand:
on({id: 'hm-rpc.1.000B5569A27DB7.3.PRESS_SHORT', val: true}, function () { log('Lautstärke erhöhen'); var volume_kueche = getState('sonos.0.root.192_168_178_70.volume'); // Lautstärke setzen setState("sonos.0.root.192_168_178_70.volume", 'volume_kueche += 5'); return volume_kueche; });
Was mache ich falsch?
-
ich glaube deine logik stimm nicht ganz ?
Due willst:
-
jetzige lautstarte in eine variabele schreiben
-
die variable um 5 erhoehen
-
die variable benutzen un de sonos state zu setzen
das saehe dan eher so aus (aus dem kopf geschrieben:
on({id: 'hm-rpc.1.000B5569A27DB7.3.PRESS_SHORT', val: true}, function () { log('Lautstärke erhöhen'); var volume_kueche = getState('sonos.0.root.192_168_178_70.volume'); // Variable erhoehen volume_kueche = volume_kueche + 5 // Lautstärke setzen setState("sonos.0.root.192_168_178_70.volume", 'volume_kueche'); return volume_kueche; });
ergo, du setzt erst den richtigen wert der variable und dan den set anstatt set + variable erhoehen in einem mal
btw: wofuer der return ?
-
-
Servus!
Das Script wurde von einem Programmierer auf Anweisung geschrieben. Ich bin bei diesem Thema (JavaScript) gerade noch in Einarbeitung…
Allerdings entsteht der gleiche Effekt, wie bei dem Ursprungsskript. Die Lautstärke wird auf 0 gesetzt (sehe es ja in der Sonos-App).
Wir sind bei der Erstellung des Script davon ausgegangen, dass das Programm erst den Wert abrufen und in eine Variable schreiben muss. Ist das korrekt, oder könnte die Lautstärke auch direkt erhöht werden?
-
Wir sind bei der Erstellung des Script davon ausgegangen, dass das Programm erst den Wert abrufen und in eine Variable schreiben muss. Ist das korrekt, oder könnte die Lautstärke auch direkt erhöht werden? `
habe selber kein SONOS, aber die lautstaerke wird da doch als wert eingefuegt ? Dan musst due halt erst den wert ermitteln und erhoehen ich sehe keine andere weg als per variable.
Die frage ist warum der set nicht funtioniert, irgendwas im log ?
was kommt im log wen du:
log(volume_kueche); volume_kueche = volume_kueche + 5; log(volume_kueche);
ich moechte wissen op die werte richting ermittelt werden eventueel sitzt da der fehler
~Dutch
-
Ich bekomme diesen Output:
> javascript.0 script.js.common.HTTP: ReferenceError: volume_kueche is not defined at script.js.common.HTTP:15:5 at ContextifyScript.Script.runInContext (vm.js:35:29)
Wie es mir erklärt wurde, definiere ich mit diesem Befehl aber doch die Variable?
var volume_kueche = getState('sonos.0.root.192_168_178_70.volume');
-
Stimmt eigentlich dein Code aber Fehlermeldung ist deutlich und darum wird der Wert auch 0 ( Variable ist Lehr)
Setze Mal
var = volume_kueche über dein Script
Und dann nur den Wert in die Variable füllen mit
volume_kueche = get state…. {Hier was du bereits hattest}
Send from mobile device
-
nur zur verstaendlichkeit mal den kompletten code wie ich meinte:
// Variable declarieren var volume_kueche //Trigger fuer volume up on({id: 'hm-rpc.1.000B5569A27DB7.3.PRESS_SHORT', val: true}, function () { //Log ausgabe 1 log('Lautstärke erhöhen'); // Variable fuellen volume_kueche = getState('sonos.0.root.192_168_178_70.volume'); //wert der variable in log schreiben log(volume_kueche); // Variable erhoehen volume_kueche = volume_kueche + 5 // Ueberpruefen das die variable richtig erhoet wurde log(volume_kueche); // Lautstärke setzen setState("sonos.0.root.192_168_178_70.volume", 'volume_kueche'); return volume_kueche; });
-
Danke dir. Habe das Script probiert, aber leider noch immer das gleiche Bild. Radio läuft, Lautstärke wird auf 0 gesetzt.
Log:
` > javascript.0 2017-06-30 13:58:12.232 warn Wrong type of sonos.0.root.192_168_178_70.volume: "string". Please fix, while deprecated and will not work in next versions.javascript.0 2017-06-30 13:58:12.232 info script.js.Schalter.EG_-Küche-6-fach(Mitte): [object Object]5
javascript.0 2017-06-30 13:58:12.231 info script.js.Schalter.EG_-Küche-6-fach(Mitte): [object Object]
sonos.0 2017-06-30 13:58:12.241 info try to control id sonos.0.root.192_168_178_70.volume with {"val":"volume_kueche","ack":false,"ts":1498831092235,"q":0,"from":"system.adapter.javascript.0","lc":1498831092235}
javascript.0 2017-06-30 13:58:12.229 info script.js.Schalter.EG_-Küche-6-fach(Mitte): Lautstärke erhöhen `
Ich habe aber keine andere Variable für "Volume".
-
Ah object object jetzt leuchtet es Mir!
Bitte
getState('sonos.0.root.192_168_178_70.volume');
Ändern nach
getState('sonos.0.root.192_168_178_70.volume').val
Wir vergessen den wert auszulesen zu dum das ich das nicht vorher gesehen habe logs helfen….
~Dutch
Send from mobile device
-
Geht leider noch immer nicht… :shock:
Aber das Log gibt neue Infos.
` > sonos.0 2017-06-30 17:55:35.687 info try to control id sonos.0.root.192_168_178_70.volume with {"val":"volume_kueche","ack":false,"ts":1498845335684,"q":0,"from":"system.adapter.javascript.0","lc":1498845335684}
javascript.0 2017-06-30 17:55:35.673 warn Wrong type of sonos.0.root.192_168_178_70.volume: "string". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-06-30 17:55:35.672 info script.js.Schalter.EG_-Küche-6-fach(Mitte): 18
javascript.0 2017-06-30 17:55:35.672 info script.js.Schalter.EG_-Küche-6-fach(Mitte): 13
javascript.0 2017-06-30 17:55:35.671 info script.js.Schalter.EG_-Küche-6-fach(Mitte): Lautstärke erhöhen `
-
Jipie!!! Hab es! Habe mir gerade nochmal die anderen Skripte angesehen und die Variable abgeändert…
setState("sonos.0.root.192_168_178_70.volume", volume_kueche);
Vielen Dank für deine Unterstützung!
-
Na super! Sorry hätte schneller gehen können aber hatte auch was übersehen.
Der goldene tip ist mit Log arbeiten Dan sieht man was passiert und wo es schief geht.
Btw: bitte topic noch auf gelöst setzen, danke und viel Spass damit !
–-----------------------
Send from mobile device
-
Kann ich das topic auf "gelöst" setzen? Das Thema wurde damals von "Stormbringer" eröffnet.
-
Kann ich das topic auf "gelöst" setzen? Das Thema wurde damals von "Stormbringer" eröffnet. `
ehm nope das muesste Stormbringer dan machen
-
Ähm ne das war eigentlich nicht mein Problem. Beim Skripten bin ich noch gar nicht. Ich hätte gerne die Datenpunkte von on/off und Lautstärke zusammengefügt in einem Alexa Befehl. Laut Anleitung soll gleicher Smartname das regeln. Tut es aber nicht… Kann man die Datenpunkte manuell zusammen fügen?
PS: Freut mich aber, dass dein Problem gelöst wurde Seehofweg
-
Noch einmal nachgefragt: Du möchtest über Alexa einen SONOS Lautsprecher einschalten, ausschalten und die Lautstärke anpassen?
Das ist eigentlich kein großer Akt.
1.) im cloud-Adapter ein neues Smart Gerät anlegen (+ Taste)
2.) vom entsprechenden SONOS Gerät das Objekt "volume" auswählen
3.) einen aussagekräftigen Namen wählen - sagen wir zum Beispiel "Sonos Wohnzimmer"
4.) als Grundlautstärke einen angenehmen Wert einstellen (z.B. 25%)
5.) in der Alexa App "Smart Geräte suchen" lassen und prüfen ob "Sonos Wohnzimmer" angekommen ist
-
mit "Alexa, schalte Sonos Wohnzimmer ein" wird mit der "Lautstärke 25" die letzte Musikquelle abgespielt
-
mit "Alexa, stelle Sonos Wohnzimmer auf 30%" wird die Lautstärke entsprechend gesetzt
-
mit "Alexa, schalte Sonos Wohnzimmer aus" wird die Lautstärke auf "0" gesetzt
Ich habe das ganze noch um Scripte ergänzt:
Wenn Lautstärke von Sonos Wohnzimmer > 5 dann setze "play" auf "true", "stop" auf "false", "state" auf "play"
Wenn Lautstärke von Sonos Wohnzimmer < 5 dann setze "play" auf "false", "stop" auf "true", "state" auf "stop"
1917_sonos-smart_ger_t.jpg -
-
Hallo Heiko,
tolle Anleitung.
Statt eines Skriptes könnte man nun auch eine Szene verwenden, aber das ist ja nur Feintuning. Super Arbeit.
Gruß
Pix