Habe meinen Wecker nun auch komplett fertig. Paul53 hat mir freundlicherweise etwas unter die Arme gegriffen :mrgreen:
/**************************
* Wecker
* Wecker stellen über ccu
* _Wecker = 0 (Wecker aus)
* _Wecker = 1 (Wecker Mo-Fr)
* _Wecker = 2 (Wecker Mo-So)
* Weckzeit auch über ccu
* steht der Musikwecker im auf ja wird die Sonos Gruppe aufgelöst und er spielt meine Playlist
* Version 1.00 vom 20.01.18
*
**************************/
var _Wecker = getState("hm-rega.0.21759").val;
// _Wecker = 0 (Wecker aus)
// _Wecker = 1 (Wecker Mo-Fr)
// _Wecker = 2 (Wecker Mo-So)
var _Weckzeit = getState("hm-rega.0.21758").val;
var _Arbeitstag = getState("Systemvariable.0.Arbeitstag").val;
var _Schranklicht = getState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/).val;
var _Sonos_Schlafzimmer = getState("sonos.0.root.192_168_178_47.coordinator").val;
var _Musikwecker = getState("Systemvariable.0.Musikwecker").val;
var _Sonos_Play = getState("sonos.0.root.192_168_178_47.state").val;
function _Wecken() {
if(_Arbeitstag && _Wecker == 1){
if(!_Schranklicht){setState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/, true);}
if(_Musikwecker){
// Falls bei einem Gerät nicht der Wonhzimmer Sonos der Coordinator ist setze Wohnzimmer Sonos
if(_Sonos_Schlafzimmer != "192_168_178_47"){setState("sonos.0.root.192_168_178_47.coordinator", '192_168_178_47');}
setState("sonos.0.root.192_168_178_47.volume", 6); // Lautstärke Schlafzimmer
setState("sonos.0.root.192_168_178_47.favorites_set", 'Meine Lieder');
setState("sonos.0.root.192_168_178_47.state", 'play');
}
setTimeout(function() {
if(_Schranklicht){setState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/, false);}
if((_Sonos_Play == 'play') && (_Sonos_Schlafzimmer = "192_168_178_47")){setState("sonos.0.root.192_168_178_47.state", 'stop');}
}, 25 * 60000); // 25 Minuten Verzögerung
}
if(_Wecker == 2){
if(!_Schranklicht){setState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/, true);}
if(_Musikwecker){
// Falls bei einem Gerät nicht der Wonhzimmer Sonos der Coordinator ist setze Wohnzimmer Sonos
if(_Sonos_Schlafzimmer != "192_168_178_47"){setState("sonos.0.root.192_168_178_47.coordinator", '192_168_178_47');}
setState("sonos.0.root.192_168_178_47.volume", 6); // Lautstärke Schlafzimmer
setState("sonos.0.root.192_168_178_47.favorites_set", 'Meine Lieder');
setState("sonos.0.root.192_168_178_47.state", 'play');
}
setTimeout(function() {
if(_Schranklicht){setState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/, false);}
if((_Sonos_Play == 'play') && (_Sonos_Schlafzimmer = "192_168_178_47")){setState("sonos.0.root.192_168_178_47.state", 'stop');}
}, 25 * 60000); // 25 Minuten Verzögerung
}
}
// Skriptstart
var t = getState("hm-rega.0.21758").val.split(':');
var sched = schedule(t[1] + ' ' + t[0] + ' * * *', _Wecken);
on("hm-rega.0.21758", function(dp) { // Vorgabezeit ändert sich
clearSchedule(sched); // bestehendes Schedule löschen
t = dp.state.val.split(':');
sched = schedule(t[1] + ' ' + t[0] + ' * * *', _Wecken);
});
//console.log(_Wecker);
Der einzige Harken ist jetzt eigentlich nur noch der Sonos Adapter. Dieser kann leider keine Shuffle Funktion. Das heißt wenn man von seiner Playlist geweckt werden will und nicht per Radio hört man jeden Morgen die gleiche Musik…
Mit dieser Lösung fallen bei mir 3 ccu Programme weck.
jede Nacht den Wecker stellen
Wecker start
Wecker Ende