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. [gelöst] Mittels Blockly mqtt Zeitstempel auf Alter prüfen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

[gelöst] Mittels Blockly mqtt Zeitstempel auf Alter prüfen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
13 Beiträge 7 Kommentatoren 3.0k 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.
  • R Offline
    R Offline
    rebe09
    schrieb am zuletzt editiert von
    #1

    Hallo.

    Folgendes: Ich habe einen Türsensor (Wemos D1 mini) mittels WLAN/mqtt an IOBroker angebunden.

    Da die WLan Verbindung nicht 100% stabil ist, möchte ich gerne mittels Blockly Script den Verbindungsstatus des

    Sensors überwachen.

    Sprich: Wenn die letzte Aktualisierung des Sensors Bsplw. länger als 2 min zurückliegt soll eine Nachricht erfolgen.

    Was mit nun dazu fehlt: Wie überprüfe ich im Blockly den Zeitstempel des mqtt Sensors auf das Alter?

    Kann mir jemand dazu Tipps geben?

    Vielen Dank!

    _JOHN__ 1 Antwort Letzte Antwort
    0
    • R Offline
      R Offline
      RappiRN
      Most Active
      schrieb am zuletzt editiert von
      #2

      Du hast doch einen Objekt-Trigger, der auf Aktualisierung triggern kann. Damit könntest du einen Timer starten, der bei jeder neuen Aktualisierung zurückgesetzt wird. Füf ein Beispiel fehlt mir jetzt leider die Zeit, aber da wird sich noch jemand finden, oder du probierst einfach mal.

      Enrico

      1 Antwort Letzte Antwort
      0
      • rantanplanR Offline
        rantanplanR Offline
        rantanplan
        schrieb am zuletzt editiert von
        #3

        @RappiRN:

        Du hast doch einen Objekt-Trigger, der auf Aktualisierung triggern kann. Damit könntest du einen Timer starten, …. `

        Timer sollte man immer mit Bedacht einsetzen. ;)

        Es würde auch so gehen.
        147_beispiel.png

        Export:

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="DxnyCA9/5w~C81:3N/C-" x="-162" y="163"><field name="COMMENT">Datenpunkt Türsensor</field>
        <next><block type="comment" id="^r~Th%l7mk[p[+C#Wlan"><field name="COMMENT">auf Aktualisierung</field>
        <next><block type="on" id="J7lDV:maP9jy@UK[HM;K"><field name="OID">Object ID</field>
        <field name="CONDITION">any</field>

                <statement name="STATEMENT"><block type="comment" id="70a2]lzK`_T7uLRuz;|X"><field name="COMMENT">Zeitpunkt speichern</field>
                    <next><block type="variables_set" id="Mp#5WRsYZfsX^1h~zTm,"><field name="VAR">SensorAktualisiert</field>
                        <value name="VALUE"><block type="time_get" id="in9OR|Bam5AyX[lD^U0X"><mutation format="false" language="false"></mutation>
                            <field name="OPTION">object</field></block></value> 
                        <next><block type="debug" id="H_*UxTF%PM0lzBrl.Zhu"><field name="Severity">log</field>
                            <value name="TEXT"><shadow type="text" id="|KRwa1wIjAHv@s@yBu1q"><field name="TEXT">***Zeit aktualisiert</field></shadow></value></block></next></block></next></block></statement></block></next></block></next></block> 
        

        <block type="schedule" id="HZ#{q)zUs+:?cHI)2iU+" x="-162" y="463"><field name="SCHEDULE">* * * * </field>
        <statement name="STATEMENT"><block type="comment" id=")R!]Z7S|Zzomk|PzzEH0"><field name="COMMENT">Differenz in Minuten</field>
        <next><block type="controls_if" id="Eud7ekew.JBNq(|@~f7l"><value name="IF0"><block type="logic_compare" id="+l!{?q#AeCfes(?Udb7d"><field name="OP">GT</field>
        <value name="A"><block type="math_arithmetic" id="/SbB_x=:%QY,7t/~2d6y"><field name="OP">DIVIDE</field>
        <value name="A"><shadow type="math_number" id="LzpA@k[xfln?7aL!x@@U"><field name="NUM">1</field></shadow>
        <block type="math_arithmetic" id="a5RH3IeYZ
        BJ,ZK#Eg.K"><field name="OP">MINUS</field>
        <value name="A"><shadow type="math_number" id="#h7-66dTG(Ut8wpJmyN"><field name="NUM">1</field></shadow>
        <block type="time_get" id="x2XvX4zy[.I0[sy8Bn^R"><mutation format="false" language="false"></mutation>
        <field name="OPTION">object</field></block></value>
        <value name="B"><shadow type="math_number" id="hG|+88==T~Tr?1iN:i[T"><field name="NUM">1</field></shadow>
        <block type="variables_get" id="A2bwkvPS`)v[II3At]_3"><field name="VAR">SensorAktualisiert</field></block></value></block></value>
        <value name="B"><shadow type="math_number" id="5-O?;4KL%5mCGnV9QZDQ"><field name="NUM">60000</field></shadow></value></block></value>
        <value name="B"><block type="math_number" id="`V4a5~OMU2Ri],4%CkW:"><field name="NUM">2</field></block></value></block></value>
        <statement name="DO0"><block type="debug" id="D=s7Lz~hkdq[6PXVo[ws"><field name="Severity">log</field>
        <value name="TEXT"><shadow type="text" id="e
        f.ejxF+s;^R)UVFl`d"><field name="TEXT">*** 2 Minuten überschritten</field></shadow></value></block></statement></block></next></block></statement></block></xml>

        ! ````

        Grüße

        Rantanplan

        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

        1 Antwort Letzte Antwort
        0
        • R Offline
          R Offline
          rebe09
          schrieb am zuletzt editiert von
          #4

          Hallo.

          Vielen Dank für die Tipps. :)

          Werde mal probieren sie umzusetzen und melde mich dann…..

          1 Antwort Letzte Antwort
          0
          • R Offline
            R Offline
            rebe09
            schrieb am zuletzt editiert von
            #5

            Hallo nochmals,

            das Script funktioniert nun tatsächlich (das ohne Timer) !

            Vielen Dank nochmals!

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @rebe09:

              das Script funktioniert nun tatsächlich (das ohne Timer) ! `
              Der Zeitplan ist auch eine Art Timer. Es geht aber tatsächlich ohne Timer:

              493_blockly_ts_diff.jpg

              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
              • rantanplanR Offline
                rantanplanR Offline
                rantanplan
                schrieb am zuletzt editiert von
                #7

                @paul53:

                Der Zeitplan ist auch eine Art Timer. Es geht aber tatsächlich ohne Timer: `
                Entspricht aber, glaub ich, nicht der Aufgabe.

                rebe09 möchte informiert werden, wenn der Aktor sich länger als 2 Min. nicht gemeldet hat.

                So wird er erst informiert wenn der Aktor wieder aktualisiert.

                Grüße

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @rantanplan:

                  So wird er erst informiert wenn der Aktor wieder aktualisiert. `
                  Das ist richtig.
                  @rantanplan:

                  rebe09 möchte informiert werden, wenn der Aktor sich länger als 2 Min. nicht gemeldet hat. `
                  Das geht nicht ohne Timer oder Scheduler, wobei mit Scheduler die Zeit zwischen 2 und 3 Minuten beträgt.

                  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
                  • smileS Offline
                    smileS Offline
                    smile
                    schrieb am zuletzt editiert von smile
                    #9

                    Hallo zusammen,
                    ich möchte auf Basis dieser Werte ebenfalls eine Auswertung machen: Falls die letzte Aktualisierung eines Wertes > 30 Minuten --> Dann schicke eine Pushnachricht.
                    @rantanplan Dein Blockly Export lässt sich leider nicht mehr importieren
                    @paul53 sagte in [gelöst] Mittels Blockly mqtt Zeitstempel auf Alter prüfen:

                    493_blockly_ts_diff.jpg

                    Dafür ist dieses Blockly ja gut, ich würde es mit Timer machen. Aber: Wie bekomme ich die Werte aktueller Zeitstempel - vorheriger Zeitstempel hin?
                    Bzw. müsste es nicht heißen wenn die aktuelle Zeit um xx Minuten größer als der Letzte Zeitstempel ist, dann löse eine Aktion aus.
                    Die Blöcke hier sind sicher falsch, aber zur Verdeutlichung was ich meine:
                    javascript - ioBroker - Mozilla Firefox 2019-04-28 17.35.12.png


                    io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                    Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • smileS smile

                      Hallo zusammen,
                      ich möchte auf Basis dieser Werte ebenfalls eine Auswertung machen: Falls die letzte Aktualisierung eines Wertes > 30 Minuten --> Dann schicke eine Pushnachricht.
                      @rantanplan Dein Blockly Export lässt sich leider nicht mehr importieren
                      @paul53 sagte in [gelöst] Mittels Blockly mqtt Zeitstempel auf Alter prüfen:

                      493_blockly_ts_diff.jpg

                      Dafür ist dieses Blockly ja gut, ich würde es mit Timer machen. Aber: Wie bekomme ich die Werte aktueller Zeitstempel - vorheriger Zeitstempel hin?
                      Bzw. müsste es nicht heißen wenn die aktuelle Zeit um xx Minuten größer als der Letzte Zeitstempel ist, dann löse eine Aktion aus.
                      Die Blöcke hier sind sicher falsch, aber zur Verdeutlichung was ich meine:
                      javascript - ioBroker - Mozilla Firefox 2019-04-28 17.35.12.png

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

                      @smile sagte:

                      Die Blöcke hier sind sicher falsch

                      Die Blöcke passen schon, allerdings müssen die 30 Minuten in ms angegeben, also 1800000 addiert werden. Außerdem wird nach Überschreitung jede Minute eine Pushnachricht gesendet.

                      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
                      • smileS Offline
                        smileS Offline
                        smile
                        schrieb am zuletzt editiert von
                        #11

                        Cool, danke Paul. Ja klar das mit jeder Minute Pushnachricht muss noch angepasst werden, ich hatte das nur schnell prinziphalber geclickt.

                        Jetzt habe ich bevor du schriebst mir schon eine weitere Zwischenlösung überlegt, die denke ich auch funktioniert:

                        javascript - ioBroker - Mozilla Firefox 2019-04-28 19.58.11.png
                        javascript - ioBroker - Mozilla Firefox 2019-04-28 19.59.37.png


                        io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                        Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                        1 Antwort Letzte Antwort
                        0
                        • R rebe09

                          Hallo.

                          Folgendes: Ich habe einen Türsensor (Wemos D1 mini) mittels WLAN/mqtt an IOBroker angebunden.

                          Da die WLan Verbindung nicht 100% stabil ist, möchte ich gerne mittels Blockly Script den Verbindungsstatus des

                          Sensors überwachen.

                          Sprich: Wenn die letzte Aktualisierung des Sensors Bsplw. länger als 2 min zurückliegt soll eine Nachricht erfolgen.

                          Was mit nun dazu fehlt: Wie überprüfe ich im Blockly den Zeitstempel des mqtt Sensors auf das Alter?

                          Kann mir jemand dazu Tipps geben?

                          Vielen Dank!

                          _JOHN__ Offline
                          _JOHN__ Offline
                          _JOHN_
                          schrieb am zuletzt editiert von
                          #12

                          @rebe09

                          Hallo Zusammen,

                          mir ist klar, dass Thema ist schon etwas älter, aber ich will keinen extra Eintrag dafür eröffnen.
                          Zumal ich bei meinen Recherchen auch auf diesen hier gestoßen bin und im Sinne des "Wissensaustauschs" will ich mal schnell meinen Ansatz zur Überwachung eines Timestamps zeigen - in der Hoffnung, dass es vll. noch jemandem hilft.

                          a6ba50ec-75a6-4bce-b014-e8cf9d0cd32b-image.png

                          827b4f98-3e27-432d-9b52-5aee249d882c-image.png

                          Die Ausgaben dienen nur der Überprüfung und können später entfernt werden (debugging eben).

                          Das Objekt dessen Zeitstempel ich auslese, lasse ich mir von einem meiner MQTT Clients aktualisieren.
                          Meldet der sich innerhalb von, in meinem Fall zwei Minuten nicht, wird alarmiert.

                          Kirtik, Verbesserungsvorschläge, andere Ansätze...alles gerne gesehen. Für mich funktioniert es bis jetzt wie gewünscht.

                          Grüße, John :spock-hand:

                          htreckslerH 1 Antwort Letzte Antwort
                          1
                          • _JOHN__ _JOHN_

                            @rebe09

                            Hallo Zusammen,

                            mir ist klar, dass Thema ist schon etwas älter, aber ich will keinen extra Eintrag dafür eröffnen.
                            Zumal ich bei meinen Recherchen auch auf diesen hier gestoßen bin und im Sinne des "Wissensaustauschs" will ich mal schnell meinen Ansatz zur Überwachung eines Timestamps zeigen - in der Hoffnung, dass es vll. noch jemandem hilft.

                            a6ba50ec-75a6-4bce-b014-e8cf9d0cd32b-image.png

                            827b4f98-3e27-432d-9b52-5aee249d882c-image.png

                            Die Ausgaben dienen nur der Überprüfung und können später entfernt werden (debugging eben).

                            Das Objekt dessen Zeitstempel ich auslese, lasse ich mir von einem meiner MQTT Clients aktualisieren.
                            Meldet der sich innerhalb von, in meinem Fall zwei Minuten nicht, wird alarmiert.

                            Kirtik, Verbesserungsvorschläge, andere Ansätze...alles gerne gesehen. Für mich funktioniert es bis jetzt wie gewünscht.

                            Grüße, John :spock-hand:

                            htreckslerH Offline
                            htreckslerH Offline
                            htrecksler
                            Forum Testing
                            schrieb am zuletzt editiert von
                            #13

                            @leone-mortuo könntest du das Script vielleicht als Javascript-Export hier bereitstellen?
                            Mit Blockly hab ich es nicht so.

                            Gruss Hermann

                            ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                            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

                            305

                            Online

                            32.5k

                            Benutzer

                            81.7k

                            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