NEWS
[Frage] enum.functions Zeitstempel Abfrage möglich?
-
Moin,
die Frage ist ganz einfach die Antwort dafür (für mich) nicht, ist es möglich aus den enum.functions den Zeitstempel der letzen Änderung eines zugehörigen Aktors direkt auszulesen oder muss man das bspw. über eine Schleife machen?
Hintergrund ist folgender:
Ich wollte gerne die Telegram - Meldung meiner Alarmanlage erweitern um die Info welcher Schließkontakt der "Einbruchmeldende" ist, da bei mir nicht alle TF-Kontakte bei jedem Zustand Alarmmeldend sind, bräuchte ich eben hier denjenigen der als letztes den Wert geändert hat.
Danke Steffen
-
Moin,
nicht direkt.. Aber so wird es gehen:
function ausloeser(gruppe) { var zeit = null; var sensor = null; $('channel(functions=' + gruppe + ')[state.id=*.STATE]').each(function(id) { if (getState(id).lc > zeit) { sensor = getObject(id).common.name; zeit = getState(id).lc; } }); if (zeit !== null) { return sensor.substr(0, sensor.indexOf(':')); } else { return 'Es wurde kein Zeitstempel in der Gruppe ' + gruppe + ' gefunden.'; } }
Wenn du diese Funktion in dein Telegram Script einfügst, kannst du mit````
ausloeser('Fensterkontakte')Hier ein ganzes Script welches dir den letzten Auslöser aus der enum.functions 'Fensterkontakte' beim starten von dem Script schickt.
function ausloeser(gruppe) {
var zeit = null;
var sensor = null;
$('channel(functions=' + gruppe + ')[state.id=*.STATE]').each(function(id) {
if (getState(id).lc > zeit) {
sensor = getObject(id).common.name;
zeit = getState(id).lc;
}
});
if (zeit !== null) {
return sensor.substr(0, sensor.indexOf(':'));
} else {
return 'Es wurde kein Zeitstempel in der Gruppe ' + gruppe + ' gefunden.';
}
}sendTo('telegram', 'Der Sensor ' + ausloeser('Fensterkontakte') + ' hat als letzter ausgelöst.');
Gruß