Ich glaube, ich habe jetzt kapiert. Das mit dem LOCKState brauche ich nicht, weil ich die Garage nur auf und zu mache und nicht noch abschließe.
Der Knopf wird jetzt auch eingeblendet oder ich die Garagenöffnung jetzt per Sprache starten kann, habe ich noch nicht getestet.
Was ich noch nicht so richtig habe, ist ein Fehlerhandling, z.B. wenn der Homematic Schalter mal nicht erreichbar ist oder das Garagentor an einem Hindernis hängengeblieben ist.
Vielleicht baue ich mir noch einen zweiten Garagensensor ein, der "100 % geöffnet" detektiert.
Dann könnte man einen Fehlerzustand delektieren, wenn nach einer bestimmten Zeit der gewünschte State nicht erreicht wurde.
Code
var garagen_schaltdauer = 17; //sec
const siri_open = false;
const siri_closed = true;
var block_garage = false
createState("Garage_CurrentDoorState",false);
createState("Garage_TargetDoorState",false);
on({ id: 'Garage_TargetDoorState' }, function (obj) {
if (!block_garage){
if (getState('Garage_TargetDoorState').val != getState('Garage_CurrentDoorState').val) {
setState('alias.0.AS_Garage_Schalter',true);
}
}
});
// Sensor für Garage "zu" setzt Yahka states
on({ id: 'alias.0.AS_Garage_Sensor', change: "lt" }, function (obj) {
setState('Garage_CurrentDoorState',siri_closed);
block_garage = false;
});
// Sensor für Garage "100 % auf" ist nicht vorhanden, 100 % wird mit 17 sec Timer "simuliert"
on({ id: 'alias.0.AS_Garage_Sensor', change: "gt" }, function (obj) {
block_garage = false;
setStateDelayed('Garage_CurrentDoorState',siri_open,1000 * garagen_schaltdauer,
function(){
block_garage = false;
}
);
});
Alles anzeigen