Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Frage] enum.functions Zeitstempel Abfrage möglich?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Frage] enum.functions Zeitstempel Abfrage möglich?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Peoples
      Peoples last edited by

      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

      1 Reply Last reply Reply Quote 0
      • BuZZy
        BuZZy last edited by

        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ß
        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        797
        Online

        31.7k
        Users

        79.8k
        Topics

        1.3m
        Posts

        2
        2
        366
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo