homematic-community / hm-sonos

A HomeMatic CCU Addon to control Sonos type Players (www.sonos.com)...
16 stars 6 forks source link

CCU3 zu schnell für Befehlsserie #20

Open grobiballon opened 3 years ago

grobiballon commented 3 years ago

Wenn ich das Haus verlasse, soll mein Sonos-System über ein Script auf "Standard" zurückgesetzt werden damit ich nach meiner Rückkehr fix Unterhaltung in der ganzen Bude habe. Dazu führe ich das folgende Skript aus. Auf einer CCU2 hat das immer funktioniert. Auf der CCU3 verhaspelt er sich manchmal und irgendwo spielt danach manchmal Musik, oder es wurden nicht alle Befehle umgesetzt. Ich vermute die CCU3 ist zu schnell für das Sonos System. Kann man dafür eine Lösung finden? Delays in der CCU einzubauen wäre glaube ich recht mühsam. Gruß Andreas

dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi buero stop");
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi bad stop");
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi kueche stop");
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi schlafzimmer stop");
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi flexibel stop");

dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi buero partymodus");

dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi buero volume 10");
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi bad volume 20");
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi kueche volume 20");
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi schlafzimmer volume 20");
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi flexibel volume 20");

!Das hier habe ich schon weggelassen, weil das mal garnicht geht. Dadurch wäre der Radiosender voreingestellt und ich müsste nur auf Play drücken wenn ich wieder da bin.
!dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi buero radio s25260");

!dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/etc/config/addons/www/sonos2/sonos2.cgi buero stop");
fiveyears commented 3 years ago

Vielleicht ist das Sonos-System einfach überlastet. Mache mal einen script und nicht 10 und probiere es aus:

`

!/bin/sh

for i in $(seq 1 100)

do

echo "Volume set $I"

/usr/local/etc/config/addons/www/sonos2/sonos2.cgi Kitchen volume $I

/usr/local/etc/config/addons/www/sonos2/sonos2.cgi Kitchen info volume

sleep 0.3

done `

Also ich brauch keinen Delay, würde aber als Programmierer immer eine Aktion machen und dann abfragen, ob das Ergebnis Deinen Wünschen entspricht. Dann kommt die nächste Aktion, ev. mit Delay, kann Dir ja egal sein, Du gehst ja raus. Das alles packst Du in einen Shell-Script oder tcl oder was Deine Wahl ist, dann brauchst Du nur einen CUXD-Aufruf: dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("pfad_zum_script.sh"); und Ruhe ist. Ich selbst nutze meinen eigenen Script hier kaum noch, nur auf der Homematic-Fernbedienung habe ich meine Lieblingssender gespeichert. (Z. B. Taste 1 kurz - RS2, Taste 1 lang - Energy etc.

Gruß fiveyears

fiveyears commented 3 years ago

irgendwie rendert GitHub meinen code falsch

grobiballon commented 3 years ago

Leider sind meine Programmiererfahrungen marginal. Habm damals mal in Visual Basic rumgefummelt. Das ist aber jahrzehnte her. FHEM war später auch einfach für mich. Nen Arduino mit einer Tasterauswertung und RS232 Ausgabe habe ich auch mal hin bekommen. Aber die verschiedenen Programmiermethoden mit der ich in der HM mittlerweile konfrontiert werde, machen es nicht einfacher, wenn man nicht regelmäßig dran rum fummelt. Ich habe mich mal versucht ins HM-Skripting einzulesen. Nach einer Stunde habe ich aufgegeben da Aufwand und nutzen nicht im Verhältnis steht. Ich hätte am liebsten eine Lösung, die mich nicht aus der Homematic-Programmierung heraus bringt. Ich wüsste schon nicht wo ich das Skript ablegen müsste, wie die Pfadstruktur wieder bei Linux aussieht und wie ich über haupt nochmal per SCP oder wie das heißt auf die CCU komme. Vielleicht muss ich mir dann doch langsam eine andere Zentrale suchen die für den "Normalo" einfachere Möglichkeiten liefert. Aber danke für deine Mühen. In der Vergangenheit habe ich das Sonos-Skript auch extensiv genutzt...