Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Datetime für VIS auswerten

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Datetime für VIS auswerten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 5 Kommentatoren 582 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • I Offline
    I Offline
    init5
    schrieb am zuletzt editiert von
    #1

    Servus,
    ich benötige mal wieder eure Hilfe. Ich habe für meine Zigbee Geräte ein Skript laufen, welches den Zeitpunkt der letzten Änderung in einem Datenpunkt speichert. Nun würde ich gern in meinem VIS farblich darstellen, wenn der letzte Änderungszeitpunkt der Temperaturfühler länger als bspw. 8h zurück liegt.
    Wie würdet ihr da ran gehen? Ich habe versucht im Alias Adapter über die Konvertierungsfunktion einen Datenpunkt "Valid" zu erzeugen, der "true" ist, wenn der Zeitpunkt passt. Leider ohne Erfolg.
    Ich stehe auf dem Schlauch. Es gibt bestimmt unzählige Lösungen, aber die die mir einfallen gelingen mir nicht. Entweder als weiteren Datenpunkt, oder direkt in VIS.

    mickymM paul53P 2 Antworten Letzte Antwort
    0
    • I init5

      Servus,
      ich benötige mal wieder eure Hilfe. Ich habe für meine Zigbee Geräte ein Skript laufen, welches den Zeitpunkt der letzten Änderung in einem Datenpunkt speichert. Nun würde ich gern in meinem VIS farblich darstellen, wenn der letzte Änderungszeitpunkt der Temperaturfühler länger als bspw. 8h zurück liegt.
      Wie würdet ihr da ran gehen? Ich habe versucht im Alias Adapter über die Konvertierungsfunktion einen Datenpunkt "Valid" zu erzeugen, der "true" ist, wenn der Zeitpunkt passt. Leider ohne Erfolg.
      Ich stehe auf dem Schlauch. Es gibt bestimmt unzählige Lösungen, aber die die mir einfallen gelingen mir nicht. Entweder als weiteren Datenpunkt, oder direkt in VIS.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #2

      @init5 Ich halte nichts davon über Zeitstempel zu rechnen. Ich würde lieber in Deiner Logikmaschine einen Trigger starten, wenn eine Änderung vorkommt und Alarm zu schlagen, wenn keine Änderung/Aktualisierung vorkommt. In Node-Red machst Du das mit dem Trigger - gibt aber auch Blocklies mit Timern.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Antwort Letzte Antwort
      1
      • I init5

        Servus,
        ich benötige mal wieder eure Hilfe. Ich habe für meine Zigbee Geräte ein Skript laufen, welches den Zeitpunkt der letzten Änderung in einem Datenpunkt speichert. Nun würde ich gern in meinem VIS farblich darstellen, wenn der letzte Änderungszeitpunkt der Temperaturfühler länger als bspw. 8h zurück liegt.
        Wie würdet ihr da ran gehen? Ich habe versucht im Alias Adapter über die Konvertierungsfunktion einen Datenpunkt "Valid" zu erzeugen, der "true" ist, wenn der Zeitpunkt passt. Leider ohne Erfolg.
        Ich stehe auf dem Schlauch. Es gibt bestimmt unzählige Lösungen, aber die die mir einfallen gelingen mir nicht. Entweder als weiteren Datenpunkt, oder direkt in VIS.

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        @init5 sagte: wenn der letzte Änderungszeitpunkt der Temperaturfühler länger als bspw. 8h zurück liegt.

        Vorschlag:

        Bild_2021-12-29_223833.png

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        I 1 Antwort Letzte Antwort
        1
        • paul53P paul53

          @init5 sagte: wenn der letzte Änderungszeitpunkt der Temperaturfühler länger als bspw. 8h zurück liegt.

          Vorschlag:

          Bild_2021-12-29_223833.png

          I Offline
          I Offline
          init5
          schrieb am zuletzt editiert von
          #4

          @paul53 Sorry für die späte Antwort. Ich habe immer ein Problem mit diesen Skripten. Ich weiß nicht wie ioBroker damit umgeht, aber für meine Verständnis laufen dann die Skripte über die gesamte Dauer. Das erscheint mit nicht sehr effizient. Macht das dem System nichts aus, wenn mehrere dieser Skripte laufen? Ich habe bisher immer versucht meine Skripte kurz zu halten. Also Start --> prüfen --> Ende.

          Thomas BraunT P 2 Antworten Letzte Antwort
          0
          • I init5

            @paul53 Sorry für die späte Antwort. Ich habe immer ein Problem mit diesen Skripten. Ich weiß nicht wie ioBroker damit umgeht, aber für meine Verständnis laufen dann die Skripte über die gesamte Dauer. Das erscheint mit nicht sehr effizient. Macht das dem System nichts aus, wenn mehrere dieser Skripte laufen? Ich habe bisher immer versucht meine Skripte kurz zu halten. Also Start --> prüfen --> Ende.

            Thomas BraunT Online
            Thomas BraunT Online
            Thomas Braun
            Most Active
            schrieb am zuletzt editiert von
            #5

            @init5 sagte in Datetime für VIS auswerten:

            Also Start --> prüfen --> Ende.

            skripte lauern immer im Hintergrund auf die Trigger.

            Linux-Werkzeugkasten:
            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
            NodeJS Fixer Skript:
            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

            I 1 Antwort Letzte Antwort
            1
            • Thomas BraunT Thomas Braun

              @init5 sagte in Datetime für VIS auswerten:

              Also Start --> prüfen --> Ende.

              skripte lauern immer im Hintergrund auf die Trigger.

              I Offline
              I Offline
              init5
              schrieb am zuletzt editiert von
              #6

              @thomas-braun Wie verhält sich das Skript bei einem Neustart? Wird das Timeout dann unterbrochen, oder läuft es beim nächsten Triggerzeitpunkt weiter, wenn das System dann gestartet ist?

              Thomas BraunT paul53P 2 Antworten Letzte Antwort
              0
              • I init5

                @thomas-braun Wie verhält sich das Skript bei einem Neustart? Wird das Timeout dann unterbrochen, oder läuft es beim nächsten Triggerzeitpunkt weiter, wenn das System dann gestartet ist?

                Thomas BraunT Online
                Thomas BraunT Online
                Thomas Braun
                Most Active
                schrieb am zuletzt editiert von
                #7

                @init5 sagte in Datetime für VIS auswerten:

                Wie verhält sich das Skript bei einem Neustart?

                Neustart von was?

                Linux-Werkzeugkasten:
                https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                NodeJS Fixer Skript:
                https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                1 Antwort Letzte Antwort
                0
                • I init5

                  @thomas-braun Wie verhält sich das Skript bei einem Neustart? Wird das Timeout dann unterbrochen, oder läuft es beim nächsten Triggerzeitpunkt weiter, wenn das System dann gestartet ist?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @init5 sagte: Wie verhält sich das Skript bei einem Neustart?

                  Das Timeout wird gelöscht und beim nächsten Trigger neu gestartet.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • I init5

                    @paul53 Sorry für die späte Antwort. Ich habe immer ein Problem mit diesen Skripten. Ich weiß nicht wie ioBroker damit umgeht, aber für meine Verständnis laufen dann die Skripte über die gesamte Dauer. Das erscheint mit nicht sehr effizient. Macht das dem System nichts aus, wenn mehrere dieser Skripte laufen? Ich habe bisher immer versucht meine Skripte kurz zu halten. Also Start --> prüfen --> Ende.

                    P Offline
                    P Offline
                    PorterRicks
                    schrieb am zuletzt editiert von PorterRicks
                    #9

                    @init5 said in Datetime für VIS auswerten:

                    @paul53 Sorry für die späte Antwort. Ich habe immer ein Problem mit diesen Skripten. Ich weiß nicht wie ioBroker damit umgeht, aber für meine Verständnis laufen dann die Skripte über die gesamte Dauer.

                    Normale Skripte laufen nur 1 Mal...nämlich beim Starten des Brokers. z.B. zum Initialisieren von irgendwelchen Werten o.ä.
                    Wenn Du jedoch einen "Trigger" einbaust, dann meldet sich Dein Skript am System bei einem Eventhandler an und sagt diesem: "Starte meine angegebene Callback-Funktion und übergieb dieser bestimmte Daten , wenn ein bestimmtes Ereignis eingetreten ist. (z.B. eine Wertänderung bei einem Knoten oder Ablauf eines Timers). Das eigentliche Skript läuft also nicht weiter sondern wartet im Hintergrund darauf, dass es vom Eventhandler erneut aufgerufen wird (nicht das komplette Skript sondern nur die jeweis übergebene Callback-Funktion).

                    Nur als kleines Beispiel:

                    on({id: "mqtt.0.esp32.temperature", change: "ne"}, async function (obj) {
                      var value = obj.state.val;
                    // hier können weitere Anweisungen innerhalb der Callback-Funktion stehen
                    }
                    );
                    

                    bedeutet
                    on {(Ereignis}, rufe meine asynchrone Funktion "function(obj)" auf und übergieb ihr als Parameter das Objekt, in dem das Ereignis stattfand.})
                    Auf dieses Objekt kann man dann innerhalb der Funktion problemlos zugreifen
                    var value = obj.state.value;

                    Jetzt zu Deinem eigentlichen Problem mit der Überprüfung des Temperatursensors:
                    Wie oben gerade gesagt, reagieren die Trigger nur bei "Veränderungen" (welcher Art auch immer) und rufen entsprechende Routinen (callback-Funktionen) auf. Aber genau das hast Du ja eben nicht! Es verändert sich ja nichts...
                    Du bräuchtest also quasi so eine Art "timeout" Funktion, die aufgerufen wird, wenn sich ein Meßwert z.B. über 8 Std nicht verändert (bzw aktualisiert) hat.

                    Ich selber beschäftige mich jetzt erst ein paar Wochen mit dem Broker und weiß nicht, ob das Developer Team sowas evtl bereits umgesetzt (programmiert) hat

                    Daher würde ich für so eine Überwachung auf einen Timer zurückgreifen, der alle paar Minuten überprüft, ob meine Meßdaten aktualisiert wurden oder ob z.B. ein Meßfühler ausgefallen ist.

                    Je nach Wichtigkeit könnte dann sogar eine Alarmmeldung rausgeschickt werden (z.B. e-mail oder Telegram o.a.)
                    Damit das aber auch im VIS angezeigt wird, würde ich mir einen User-definierten Alarm-Knoten einrichten, der nur true oder false enthält.

                    Bsp:

                    Neues Objekt hinzufügen: 0_userdata.0.Temperaturalarm
                    parent: 0_userdata.0
                    Typ: Datenpunkt
                    Zustandstyp: boolean
                    Name: Temperaturalarm

                    Wenn man diesen neuen Knoten anlegt, bekommt er vom System sofort den default-Wert: false...

                    In diesem Knoten wird dann vom Timer regelmäßig abgelegt, ob der Messfühler noch aktiv ist (Alarm=false) ...wenn nicht, wird der Wert "true" gesetzt, was einem Alarm gleichkommt.

                    Der Timer:
                    interval = setInterval(async function () {}, 60000); //alle 60000 ms = 1 Min starten

                    Jetzt nur noch die Funktion "füllen":
                    Das Script sieht dann später so aus:

                    var interval;
                    
                    // Describe this function...
                    async function getTimeDiffMin() {
                        var aktDateTime= new Date();
                        
                        return (aktDateTime.getTime() - getState("mqtt.0.esp32.temperature").ts)/1000/60;
                    
                    }
                    
                    
                    interval = setInterval(async function () {
                      if (await getTimeDiffMin() >= 1) {
                        setState("0_userdata.0.Temperaturalarm"/*Temperaturalarm*/, true, true);
                      } else {
                        setState("0_userdata.0.Temperaturalarm"/*Temperaturalarm*/, false, true);
                      }
                    }, 60000);
                    
                    

                    oder das Blockly:

                    Unbenannt-2.jpg

                    Somit kann man im Blocly einstellen, in welchem Intervall geprüft wird und wie groß die 'Zeitspanne maximal sein darf... (jeweils in Minuten)

                    1 Antwort Letzte Antwort
                    0
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    843

                    Online

                    32.4k

                    Benutzer

                    81.5k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe