@smartboart:
@mumurik:
> Mache das auch ueber den tr64 Adapter… Löse das mit nem Javascript und nem timer der loslauft.. Wenn niemand da läuft Zeit... Wenn irgend ein handy wieder erreichbar wird der timer zurueckgesetzt... Wenn länger als 15 min der timer nicht zurueck gesetzt wird dann wird der state niemand zu hause erst gesetzt. Das verhindert fehlschaltungen zuverlässig. Wird irgend ein Handy erkannt wird der state wieder zurueck gesetzt.
@smartboart:
genau dieses Szenario versuche ich gerade abzubilden. Könntest du bitte eventuell dieses Script zur Verfügung stellen?
Danke! `
Sorry den Beitrag nicht weiter verfolgt…Aber besser spät als nie...
ich löse das so....funktioniert prima! ganz simpel.
createState('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', {def: 'true', type: 'boolean', name: 'Bewohner Anwesend - jemand Da'});
const id1 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Mustermann
const id2 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Musterfrau
const id3 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Mustergast
const id4 = 'javascript.0.Anwesenheitssteuerung.BewohnerAnwesend';
function Anwesend() {
var Mustermann = getState(id1).val;
var Musterfrau = getState(id2).val;
var Mustergast = getState(id3).val;
var BWA = getState(id4).val;
if(Mustermann===false&&Musterfrau===false&&Mustergast===false&&BWA===true) {
setStateDelayed('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', false, 180*1000);//3 min Zeit bis niemand zu Hause sicher erkannt
log('Es ist niemand zu Hause');
} else {
if(Musterfrau===true||Mustermann===true||Mustergast===true) {
clearStateDelayed('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend');//wenn innerhalb 3 min wieder aktiv wird timer zurück gesetzt
setState('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', true);
log('Es ist jemand zu Hause');
}
}
}
on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
//on(id1, function(dp) {
Anwesend();
});
on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
//on(id2, function(dp) {
Anwesend();
});
on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
//on(id3, function(dp) {
Anwesend();
});
Weitere scripte die den state weiter verarbeiten trigger ich mit change ne `
Danke!