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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Zeitdifferenz berechnen

NEWS

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

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

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

Zeitdifferenz berechnen

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
106 Beiträge 20 Kommentatoren 22.1k Aufrufe 24 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.
  • M Matthias I

    @paul53 Vielen Dank, das habe ich hinbekommen :-)

    Die Fahrdauer wird jetzt richtig berechnet, jetzt müsste ich nur noch wissen, wie man Zeiten addieren kann.
    D.h. wie kann ich zwei Datenpunkte (Zeichenkette in der Form SS:MM:ss) miteinander addieren?

    Noch eleganter wäre es natürlich eine Liste "TagMähzeiten" anzulegen, die um Mitternacht geleert wird und in der die einzelnen Mähzeiten eingetragen und zum Schluss addiert werden. Ist so etwas auch umsetzbar? (Mit Listen habe ich noch nicht gearbeitet.)

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

    @matthias-i sagte: jetzt müsste ich nur noch wissen, wie man Zeiten addieren kann.

    "erhöhe einschaltdauer" kumuliert bereits. Man müsste also den Wert einmal pro Woche auf 0 zurück setzen.

    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

    M 2 Antworten Letzte Antwort
    0
    • paul53P paul53

      @matthias-i sagte: jetzt müsste ich nur noch wissen, wie man Zeiten addieren kann.

      "erhöhe einschaltdauer" kumuliert bereits. Man müsste also den Wert einmal pro Woche auf 0 zurück setzen.

      M Offline
      M Offline
      Matthias I
      schrieb am zuletzt editiert von
      #17

      @paul53 ich habe das auf folgendem Wege gelöst:
      Bild_2021-03-04_185032.png
      Im nächsten Schritt müsste jetzt "LaufzeitAktuell" nach jedem Mähen zu "LaufzeitTag" addiert werden.

      1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @matthias-i sagte: jetzt müsste ich nur noch wissen, wie man Zeiten addieren kann.

        "erhöhe einschaltdauer" kumuliert bereits. Man müsste also den Wert einmal pro Woche auf 0 zurück setzen.

        M Offline
        M Offline
        Matthias I
        schrieb am zuletzt editiert von
        #18

        @paul53 ich habe es wie folgt hinbekommen:
        Datum/Zeit nach String konvertiert.
        Den String "Ziffer" für Ziffer (also ZehnerStunde, EinerStunde, ZehnerMinute, EinerMinute, ZehnerSekunde, EinerSekunde) in Variablen überführt.
        Dann stellenweise addiert und ggf. Überträge verrechnet.
        Dann den String mit der korrekten Zeitdauer konvertiert nach Datum/Zeit.

        Das funktioniert, aaaber: Geht das nicht leichter/einfacher/schneller?
        Besteht keine Möglichkeit zwei Datenpunkte der Form SS:MM:ss zu addieren, sodass das Ergebnis ebenfalls das Format SS:MM:ss hat?

        paul53P 1 Antwort Letzte Antwort
        0
        • M Matthias I

          @paul53 ich habe es wie folgt hinbekommen:
          Datum/Zeit nach String konvertiert.
          Den String "Ziffer" für Ziffer (also ZehnerStunde, EinerStunde, ZehnerMinute, EinerMinute, ZehnerSekunde, EinerSekunde) in Variablen überführt.
          Dann stellenweise addiert und ggf. Überträge verrechnet.
          Dann den String mit der korrekten Zeitdauer konvertiert nach Datum/Zeit.

          Das funktioniert, aaaber: Geht das nicht leichter/einfacher/schneller?
          Besteht keine Möglichkeit zwei Datenpunkte der Form SS:MM:ss zu addieren, sodass das Ergebnis ebenfalls das Format SS:MM:ss hat?

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

          @matthias-i sagte: Geht das nicht leichter/einfacher/schneller?

          Ja.

          @matthias-i sagte in Zeitdifferenz berechnen:

          Besteht keine Möglichkeit zwei Datenpunkte der Form SS:MM:ss zu addieren, sodass das Ergebnis ebenfalls das Format SS:MM:ss hat?

          Man kann nur Zahlen addieren, keine Strings.

          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

          M 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @matthias-i sagte: Geht das nicht leichter/einfacher/schneller?

            Ja.

            @matthias-i sagte in Zeitdifferenz berechnen:

            Besteht keine Möglichkeit zwei Datenpunkte der Form SS:MM:ss zu addieren, sodass das Ergebnis ebenfalls das Format SS:MM:ss hat?

            Man kann nur Zahlen addieren, keine Strings.

            M Offline
            M Offline
            Matthias I
            schrieb am zuletzt editiert von
            #20

            @paul53 Wie kann man das realisieren?
            Wenn ich dich richtig verstehe müsste man ja dann SS:MM:ss je zu einer Zahl konvertieren, dann die Addition vornehmen und dann von Zahl wieder zu SS:MM:ss konvertieren? Könntest du mir sagen, wie das geht?

            1 Antwort Letzte Antwort
            0
            • M Matthias I

              Hallo,

              ich möchte gerne meinen Rasenmähroboter "smart" machen um folgendes Problem zu lösen:
              Der Robotor fährt derzeit nach eingestelltem Zeitplan, jedoch nicht, wenn es regnet oder die Terrassentür geöffnet ist (damit er dem Hund nicht über die Pfote fährt). Hierdurch wird die wöchentliche Mähzeit jedoch zum Teil so stark reduziert, dass der Rasen unzureichend gemäht wird. Das verlängern der Zeitintervalle führt umgekehrt dazu, dass bei anhaltend regenfreiem Wetter und geschlossener Terrassentüre der Rassenrobbi so lange fährt, dass an den Rändern, wo er sich dreht kein Gras mehr wechst.

              Ich weiß aus Erfahrung jedoch wie lange der Robbi wöchentlich in etwa mähen muss, damit das Gras "im Zaum gehalten wird" und keine kahlen Stellen entstehen.

              Mein Plan ist deshalb den Zeitplan des Mähroboters zu erweitern, ihn aber nur dann mähen zu lassen, wenn die wöchentliche max. Mähzeit nicht überschritten ist und ihn bei unterschreiten einer minimalen Mähzeit am Wochenende auch außerhalb des Zeitplans mähen zulassen, um "Mähzeit nachzuholen".

              Also möchte ich mir gerne vom ioBroker berechnen lassen, wie lange mein Rasenmähroboter gemäht hat.
              Dazu soll wenn der Datenpunkt Zustand auf "mähen" springt, die Startzeit erfasst werden und wenn sich der Zustand ändert soll die Endzeit erfasst werden.
              Aus Endzeit - Startzeit soll dann die Mähdauer in der Form SS:MM:ss berechnet werden.
              Das habe ich folgendermaßen umgesetzt:

              Bild_2021-03-04_170945.png

              Bei der Berechnung der Mähzeit stimmt aber leider der ausgegebene Wert nicht! Dieser ist immer um genau 1 Std. zu hoch!
              Könnt ihr mir sagen, was ich falsch mache?
              Kann es damit zusammen hängen, dass Systemzeit und Zeitstempel (WARUM AUCH IMMER) 1 Stunde auseinander liegen?

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

              @matthias-i sagte: Mein Plan ist deshalb den Zeitplan des Mähroboters zu erweitern, ihn aber nur dann mähen zu lassen, wenn die wöchentliche max. Mähzeit nicht überschritten ist und ihn bei unterschreiten einer minimalen Mähzeit am Wochenende auch außerhalb des Zeitplans mähen zulassen, um "Mähzeit nachzuholen".

              Der Aussage entnehme ich, dass es um die wöchentliche Mäh-Dauer geht? Das Prinzip der Kumulation der Mäh-Dauer habe ich schon hier gezeigt (es wird mit ms gerechnet). Einmal in der Woche muss dann per Zeitplan die Mäh-Dauer zurück gesetzt werden. Unter der Woche kann die schon erreichte Mäh-Dauer ausgewertet werden.

              Bild_2021-03-06_141139.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

              M E 2 Antworten Letzte Antwort
              0
              • paul53P paul53

                @matthias-i sagte: Mein Plan ist deshalb den Zeitplan des Mähroboters zu erweitern, ihn aber nur dann mähen zu lassen, wenn die wöchentliche max. Mähzeit nicht überschritten ist und ihn bei unterschreiten einer minimalen Mähzeit am Wochenende auch außerhalb des Zeitplans mähen zulassen, um "Mähzeit nachzuholen".

                Der Aussage entnehme ich, dass es um die wöchentliche Mäh-Dauer geht? Das Prinzip der Kumulation der Mäh-Dauer habe ich schon hier gezeigt (es wird mit ms gerechnet). Einmal in der Woche muss dann per Zeitplan die Mäh-Dauer zurück gesetzt werden. Unter der Woche kann die schon erreichte Mäh-Dauer ausgewertet werden.

                Bild_2021-03-06_141139.png

                M Offline
                M Offline
                Matthias I
                schrieb am zuletzt editiert von
                #22

                @paul53 Vielen Dank für die schnelle Antwort!
                Es geht mir auch darum, zu verstehen, wie man mit Datenpunkten des Formates SS:MM:ss rechnen kann.
                Auch bei der Ladezeit des E-Autos möchte ich gerne Zeiten auf diese Weise berechnen.
                Zusammenfassen kann man also sagen, dass SS:MM:ss in Millisekunden umgewandelt werden muss, dann kann man mit dem Wert (als Zahl) rechnen und wandelt das ganze anschließend wieder in das gewünschte Datum-/Zeitformat wie z.B. SS:MM:ss um, richtig?

                paul53P 1 Antwort Letzte Antwort
                0
                • M Matthias I

                  @paul53 Vielen Dank für die schnelle Antwort!
                  Es geht mir auch darum, zu verstehen, wie man mit Datenpunkten des Formates SS:MM:ss rechnen kann.
                  Auch bei der Ladezeit des E-Autos möchte ich gerne Zeiten auf diese Weise berechnen.
                  Zusammenfassen kann man also sagen, dass SS:MM:ss in Millisekunden umgewandelt werden muss, dann kann man mit dem Wert (als Zahl) rechnen und wandelt das ganze anschließend wieder in das gewünschte Datum-/Zeitformat wie z.B. SS:MM:ss um, richtig?

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

                  @matthias-i sagte: SS:MM:ss in Millisekunden umgewandelt werden muss

                  Eine Zeitdifferenz in "hh:mm:ss" muss so gewandelt werden, damit mit der Differenz in ms weiter gerechnet werden kann:

                  Bild_2021-03-06_141939.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

                  N 1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    Strobi
                    schrieb am zuletzt editiert von Strobi
                    #24

                    Ich möchte nicht unbedingt ein neues Thema eröffnen - ich hoffe, mein Anliegen passt hier rein.
                    Ich würde gerne die Zeitdifferenz (Minutengenau bzw Stundengenau (als Kommazahl) würde ausreichen) der aktuellen Tageszeit bis zum Sonnenuntergang und Sonnenaufgang berechnen.

                    Habt Ihr eine Idee, ob / wie das möglich ist?

                    Besten Dank im Voraus

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • S Strobi

                      Ich möchte nicht unbedingt ein neues Thema eröffnen - ich hoffe, mein Anliegen passt hier rein.
                      Ich würde gerne die Zeitdifferenz (Minutengenau bzw Stundengenau (als Kommazahl) würde ausreichen) der aktuellen Tageszeit bis zum Sonnenuntergang und Sonnenaufgang berechnen.

                      Habt Ihr eine Idee, ob / wie das möglich ist?

                      Besten Dank im Voraus

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

                      @strobi sagte: Stundengenau (als Kommazahl) würde ausreichen) der aktuellen Tageszeit bis zum Sonnenuntergang

                      Bild_2021-11-25_200531.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

                      S D 2 Antworten Letzte Antwort
                      1
                      • paul53P paul53

                        @matthias-i sagte: SS:MM:ss in Millisekunden umgewandelt werden muss

                        Eine Zeitdifferenz in "hh:mm:ss" muss so gewandelt werden, damit mit der Differenz in ms weiter gerechnet werden kann:

                        Bild_2021-03-06_141939.png

                        N Offline
                        N Offline
                        newbie2007
                        schrieb am zuletzt editiert von
                        #26

                        @paul53 Hallo,

                        ich möchte gerne die Laufzeit meines Roombas mit Hilfe der Start- und der Endzeit berechnen und habe folgendes Blockly gemacht. Allerdings wird die Differenz/Laufzeit nicht korrekt berechnet. Die berechnete Dauer ist im Bsp. 2St. 16min. Tatsächlich sind es aber 1 Std. und 16 min.
                        Wer kann mir helfen?
                        5FA0B048-D03C-4567-BEE6-2ECC6B858C0B.jpeg

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • N newbie2007

                          @paul53 Hallo,

                          ich möchte gerne die Laufzeit meines Roombas mit Hilfe der Start- und der Endzeit berechnen und habe folgendes Blockly gemacht. Allerdings wird die Differenz/Laufzeit nicht korrekt berechnet. Die berechnete Dauer ist im Bsp. 2St. 16min. Tatsächlich sind es aber 1 Std. und 16 min.
                          Wer kann mir helfen?
                          5FA0B048-D03C-4567-BEE6-2ECC6B858C0B.jpeg

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #27

                          @newbie2007 Die berechnette Zeit in Millisekunden ist noch richtig. Sie wird im folgenden jedoch als Timestamp vom 01.01.1970 berechnet und so weit ich mich erinnern kann in der falschen Zeitzone

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          N paul53P 2 Antworten Letzte Antwort
                          0
                          • HomoranH Homoran

                            @newbie2007 Die berechnette Zeit in Millisekunden ist noch richtig. Sie wird im folgenden jedoch als Timestamp vom 01.01.1970 berechnet und so weit ich mich erinnern kann in der falschen Zeitzone

                            N Offline
                            N Offline
                            newbie2007
                            schrieb am zuletzt editiert von
                            #28

                            @homoran was kann ich tun?

                            1 Antwort Letzte Antwort
                            0
                            • HomoranH Homoran

                              @newbie2007 Die berechnette Zeit in Millisekunden ist noch richtig. Sie wird im folgenden jedoch als Timestamp vom 01.01.1970 berechnet und so weit ich mich erinnern kann in der falschen Zeitzone

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

                              @homoran sagte: in der falschen Zeitzone

                              Ja, siehe hier.

                              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

                              N 1 Antwort Letzte Antwort
                              1
                              • paul53P paul53

                                @homoran sagte: in der falschen Zeitzone

                                Ja, siehe hier.

                                N Offline
                                N Offline
                                newbie2007
                                schrieb am zuletzt editiert von
                                #30

                                @paul53 Das war´s.

                                Danke euch beiden.

                                1 Antwort Letzte Antwort
                                0
                                • P Offline
                                  P Offline
                                  PatrickFro
                                  schrieb am zuletzt editiert von PatrickFro
                                  #31

                                  Ich schließe mich mit einem ähnlichen Thema mal an..

                                  Ich möchte nach Beginn einer Aktion, die per Bool festgehalten wird, nach 20 Sekunden feststellen, ob sie in den letzten 10 Sekunden weiter ausgeübt wurde

                                  c2ea5055-f8aa-4013-937a-5ed3af5669df-image.png

                                  <block xmlns="https://developers.google.com/blockly/xml" type="on" id="jK!Srf4|s?My,i]Z?.e_" x="38" y="37">
                                    <field name="OID">zigbee.1.00158d000799f9ae.opened</field>
                                    <field name="CONDITION">ne</field>
                                    <field name="ACK_CONDITION"></field>
                                    <statement name="STATEMENT">
                                      <block type="controls_if" id="FDm6(4_CSQM.|d^|cYG2">
                                        <value name="IF0">
                                          <block type="logic_compare" id="72v{*O0YKSIW;h)t.%wM">
                                            <field name="OP">EQ</field>
                                            <value name="A">
                                              <block type="on_source" id="(65c_U3)Y7RM59}@$|Kr">
                                                <field name="ATTR">state.val</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <block type="logic_boolean" id="?~ft#;0JMLPi^5_=iFmQ">
                                                <field name="BOOL">TRUE</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <statement name="DO0">
                                          <block type="controls_if" id="HMVL(8UgPCqNF2+seN/5">
                                            <value name="IF0">
                                              <block type="logic_compare" id="{p,x[K=9#5HqN6]e4/;8">
                                                <field name="OP">EQ</field>
                                                <value name="A">
                                                  <block type="get_value" id="~`RyQBMVd+],i;a3%/Ou">
                                                    <field name="ATTR">val</field>
                                                    <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="logic_boolean" id="At+vP+3x:dXo*226VG:1">
                                                    <field name="BOOL">FALSE</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO0">
                                              <block type="update" id="x]/[eU$U^~U?E~Yb%2Z)">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="logic_boolean" id="i.NxT_cZm:D3pDq|nfYY">
                                                    <field name="BOOL">TRUE</field>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="update" id="CqBYKGD%HdGVtp.D-`=}">
                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                    <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                    <field name="WITH_DELAY">TRUE</field>
                                                    <field name="DELAY_MS">2</field>
                                                    <field name="UNIT">min</field>
                                                    <field name="CLEAR_RUNNING">FALSE</field>
                                                    <value name="VALUE">
                                                      <block type="logic_boolean" id="U6f`+?oKBw0xTIG*|lsb">
                                                        <field name="BOOL">FALSE</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="variables_set" id="zqFe_u[sWLj;+]dMW##1">
                                                        <field name="VAR" id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</field>
                                                        <value name="VALUE">
                                                          <block type="math_arithmetic" id="MQ6nN[*zAT8GVfWg1;-O" inline="false">
                                                            <field name="OP">MINUS</field>
                                                            <value name="A">
                                                              <shadow type="math_number" id="uvD{f=e]!:O/B,9ALM*y">
                                                                <field name="NUM">1</field>
                                                              </shadow>
                                                              <block type="time_get" id="|wMCWeum)VGvX$e~)i4R">
                                                                <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                <field name="OPTION">object</field>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <shadow type="math_number" id="Bz#Vj4[#pNfW8n`Wr+[m">
                                                                <field name="NUM">1</field>
                                                              </shadow>
                                                              <block type="on_source" id="A~{K`b1A3*:7V2.%c:=4">
                                                                <field name="ATTR">state.ts</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <next>
                                                          <block type="timeouts_wait" id="ca*Hm,2ZbBK$qTmx;#)4">
                                                            <field name="DELAY">20</field>
                                                            <field name="UNIT">sec</field>
                                                            <next>
                                                              <block type="comment" id="6#xzLsShVx+oic{%WeO;">
                                                                <field name="COMMENT">Zeitberechnung: erste Zahl für Start bei 00:00</field>
                                                                <next>
                                                                  <block type="comment" id="PeRcRKspnBrM1f!.o6Zn">
                                                                    <field name="COMMENT">1000 für 1 Sekunde x 10</field>
                                                                    <next>
                                                                      <block type="comment" id="dKTi=DXeE:d~t:`oElVJ">
                                                                        <field name="COMMENT">Zeitdifferenz darf maximal &lt;10 Sekunden sein</field>
                                                                        <next>
                                                                          <block type="controls_if" id="~jT?0Z)3UnK1.zIu0LJS">
                                                                            <value name="IF0">
                                                                              <block type="logic_compare" id=":GPAg!:7I%ju?fd)KX0E" inline="false">
                                                                                <field name="OP">LT</field>
                                                                                <value name="A">
                                                                                  <block type="convert_from_date" id="czfF9^;@3a@u.-_-nu{G">
                                                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                    <field name="OPTION">hh:mm:ss</field>
                                                                                    <value name="VALUE">
                                                                                      <block type="variables_get" id="SROQT(0H9:`1U/|,B7Fc">
                                                                                        <field name="VAR" id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</field>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </value>
                                                                                <value name="B">
                                                                                  <block type="convert_from_date" id="cZos(T}ax%]7`},ACGmj">
                                                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                    <field name="OPTION">hh:mm:ss</field>
                                                                                    <value name="VALUE">
                                                                                      <block type="math_arithmetic" id="@C-m9AQ}$VRn$dkvAmrS">
                                                                                        <field name="OP">ADD</field>
                                                                                        <value name="A">
                                                                                          <shadow type="math_number" id=".H8tQuQ;VnV8w2ZW@|%h">
                                                                                            <field name="NUM">-3600000</field>
                                                                                          </shadow>
                                                                                        </value>
                                                                                        <value name="B">
                                                                                          <shadow type="math_number" id="/Jsy}]]3/khN%]%JMKI)">
                                                                                            <field name="NUM">1</field>
                                                                                          </shadow>
                                                                                          <block type="math_arithmetic" id="9ToNQ#]u8^EP]_?=nvtk">
                                                                                            <field name="OP">MULTIPLY</field>
                                                                                            <value name="A">
                                                                                              <shadow type="math_number" id="x*HYUV1ky~+[EDmXu@Tz">
                                                                                                <field name="NUM">1000</field>
                                                                                              </shadow>
                                                                                            </value>
                                                                                            <value name="B">
                                                                                              <shadow type="math_number" id="#~^=`kMd}9)_t|v;.N]9">
                                                                                                <field name="NUM">10</field>
                                                                                              </shadow>
                                                                                            </value>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </value>
                                                                            <statement name="DO0">
                                                                              <block type="telegram" id="pB:;!`u9TxYb{eB+GSJO">
                                                                                <field name="INSTANCE">.1</field>
                                                                                <field name="LOG"></field>
                                                                                <field name="SILENT">FALSE</field>
                                                                                <field name="PARSEMODE">default</field>
                                                                                <value name="MESSAGE">
                                                                                  <shadow type="text" id="`w]AkcjR$}Tus_1HsmPo">
                                                                                    <field name="TEXT">Testnachricht: Kurbeln längere Zeit gedreht</field>
                                                                                  </shadow>
                                                                                </value>
                                                                                <value name="USERNAME">
                                                                                  <block type="text" id="%?/-9(?N0.HXoD4gOL:l">
                                                                                    <field name="TEXT">Patrick</field>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </statement>
                                                                          </block>
                                                                        </next>
                                                                      </block>
                                                                    </next>
                                                                  </block>
                                                                </next>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </statement>
                                          </block>
                                        </statement>
                                      </block>
                                    </statement>
                                  </block>
                                  

                                  Leider komme ich einfach nicht drauf. Nach ca. 10 Stunden heutiger Beschäftigung mit IoBroker scheitere ich leider an der Berechnung, vielleicht auch an der Logik?

                                  Was mache ich falsch?

                                  paul53P 1 Antwort Letzte Antwort
                                  0
                                  • P PatrickFro

                                    Ich schließe mich mit einem ähnlichen Thema mal an..

                                    Ich möchte nach Beginn einer Aktion, die per Bool festgehalten wird, nach 20 Sekunden feststellen, ob sie in den letzten 10 Sekunden weiter ausgeübt wurde

                                    c2ea5055-f8aa-4013-937a-5ed3af5669df-image.png

                                    <block xmlns="https://developers.google.com/blockly/xml" type="on" id="jK!Srf4|s?My,i]Z?.e_" x="38" y="37">
                                      <field name="OID">zigbee.1.00158d000799f9ae.opened</field>
                                      <field name="CONDITION">ne</field>
                                      <field name="ACK_CONDITION"></field>
                                      <statement name="STATEMENT">
                                        <block type="controls_if" id="FDm6(4_CSQM.|d^|cYG2">
                                          <value name="IF0">
                                            <block type="logic_compare" id="72v{*O0YKSIW;h)t.%wM">
                                              <field name="OP">EQ</field>
                                              <value name="A">
                                                <block type="on_source" id="(65c_U3)Y7RM59}@$|Kr">
                                                  <field name="ATTR">state.val</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <block type="logic_boolean" id="?~ft#;0JMLPi^5_=iFmQ">
                                                  <field name="BOOL">TRUE</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <statement name="DO0">
                                            <block type="controls_if" id="HMVL(8UgPCqNF2+seN/5">
                                              <value name="IF0">
                                                <block type="logic_compare" id="{p,x[K=9#5HqN6]e4/;8">
                                                  <field name="OP">EQ</field>
                                                  <value name="A">
                                                    <block type="get_value" id="~`RyQBMVd+],i;a3%/Ou">
                                                      <field name="ATTR">val</field>
                                                      <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <block type="logic_boolean" id="At+vP+3x:dXo*226VG:1">
                                                      <field name="BOOL">FALSE</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <statement name="DO0">
                                                <block type="update" id="x]/[eU$U^~U?E~Yb%2Z)">
                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                  <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="logic_boolean" id="i.NxT_cZm:D3pDq|nfYY">
                                                      <field name="BOOL">TRUE</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="update" id="CqBYKGD%HdGVtp.D-`=}">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                      <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                      <field name="WITH_DELAY">TRUE</field>
                                                      <field name="DELAY_MS">2</field>
                                                      <field name="UNIT">min</field>
                                                      <field name="CLEAR_RUNNING">FALSE</field>
                                                      <value name="VALUE">
                                                        <block type="logic_boolean" id="U6f`+?oKBw0xTIG*|lsb">
                                                          <field name="BOOL">FALSE</field>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="variables_set" id="zqFe_u[sWLj;+]dMW##1">
                                                          <field name="VAR" id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</field>
                                                          <value name="VALUE">
                                                            <block type="math_arithmetic" id="MQ6nN[*zAT8GVfWg1;-O" inline="false">
                                                              <field name="OP">MINUS</field>
                                                              <value name="A">
                                                                <shadow type="math_number" id="uvD{f=e]!:O/B,9ALM*y">
                                                                  <field name="NUM">1</field>
                                                                </shadow>
                                                                <block type="time_get" id="|wMCWeum)VGvX$e~)i4R">
                                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                  <field name="OPTION">object</field>
                                                                </block>
                                                              </value>
                                                              <value name="B">
                                                                <shadow type="math_number" id="Bz#Vj4[#pNfW8n`Wr+[m">
                                                                  <field name="NUM">1</field>
                                                                </shadow>
                                                                <block type="on_source" id="A~{K`b1A3*:7V2.%c:=4">
                                                                  <field name="ATTR">state.ts</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="timeouts_wait" id="ca*Hm,2ZbBK$qTmx;#)4">
                                                              <field name="DELAY">20</field>
                                                              <field name="UNIT">sec</field>
                                                              <next>
                                                                <block type="comment" id="6#xzLsShVx+oic{%WeO;">
                                                                  <field name="COMMENT">Zeitberechnung: erste Zahl für Start bei 00:00</field>
                                                                  <next>
                                                                    <block type="comment" id="PeRcRKspnBrM1f!.o6Zn">
                                                                      <field name="COMMENT">1000 für 1 Sekunde x 10</field>
                                                                      <next>
                                                                        <block type="comment" id="dKTi=DXeE:d~t:`oElVJ">
                                                                          <field name="COMMENT">Zeitdifferenz darf maximal &lt;10 Sekunden sein</field>
                                                                          <next>
                                                                            <block type="controls_if" id="~jT?0Z)3UnK1.zIu0LJS">
                                                                              <value name="IF0">
                                                                                <block type="logic_compare" id=":GPAg!:7I%ju?fd)KX0E" inline="false">
                                                                                  <field name="OP">LT</field>
                                                                                  <value name="A">
                                                                                    <block type="convert_from_date" id="czfF9^;@3a@u.-_-nu{G">
                                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                      <field name="OPTION">hh:mm:ss</field>
                                                                                      <value name="VALUE">
                                                                                        <block type="variables_get" id="SROQT(0H9:`1U/|,B7Fc">
                                                                                          <field name="VAR" id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</field>
                                                                                        </block>
                                                                                      </value>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="B">
                                                                                    <block type="convert_from_date" id="cZos(T}ax%]7`},ACGmj">
                                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                      <field name="OPTION">hh:mm:ss</field>
                                                                                      <value name="VALUE">
                                                                                        <block type="math_arithmetic" id="@C-m9AQ}$VRn$dkvAmrS">
                                                                                          <field name="OP">ADD</field>
                                                                                          <value name="A">
                                                                                            <shadow type="math_number" id=".H8tQuQ;VnV8w2ZW@|%h">
                                                                                              <field name="NUM">-3600000</field>
                                                                                            </shadow>
                                                                                          </value>
                                                                                          <value name="B">
                                                                                            <shadow type="math_number" id="/Jsy}]]3/khN%]%JMKI)">
                                                                                              <field name="NUM">1</field>
                                                                                            </shadow>
                                                                                            <block type="math_arithmetic" id="9ToNQ#]u8^EP]_?=nvtk">
                                                                                              <field name="OP">MULTIPLY</field>
                                                                                              <value name="A">
                                                                                                <shadow type="math_number" id="x*HYUV1ky~+[EDmXu@Tz">
                                                                                                  <field name="NUM">1000</field>
                                                                                                </shadow>
                                                                                              </value>
                                                                                              <value name="B">
                                                                                                <shadow type="math_number" id="#~^=`kMd}9)_t|v;.N]9">
                                                                                                  <field name="NUM">10</field>
                                                                                                </shadow>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                        </block>
                                                                                      </value>
                                                                                    </block>
                                                                                  </value>
                                                                                </block>
                                                                              </value>
                                                                              <statement name="DO0">
                                                                                <block type="telegram" id="pB:;!`u9TxYb{eB+GSJO">
                                                                                  <field name="INSTANCE">.1</field>
                                                                                  <field name="LOG"></field>
                                                                                  <field name="SILENT">FALSE</field>
                                                                                  <field name="PARSEMODE">default</field>
                                                                                  <value name="MESSAGE">
                                                                                    <shadow type="text" id="`w]AkcjR$}Tus_1HsmPo">
                                                                                      <field name="TEXT">Testnachricht: Kurbeln längere Zeit gedreht</field>
                                                                                    </shadow>
                                                                                  </value>
                                                                                  <value name="USERNAME">
                                                                                    <block type="text" id="%?/-9(?N0.HXoD4gOL:l">
                                                                                      <field name="TEXT">Patrick</field>
                                                                                    </block>
                                                                                  </value>
                                                                                </block>
                                                                              </statement>
                                                                            </block>
                                                                          </next>
                                                                        </block>
                                                                      </next>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </statement>
                                            </block>
                                          </statement>
                                        </block>
                                      </statement>
                                    </block>
                                    

                                    Leider komme ich einfach nicht drauf. Nach ca. 10 Stunden heutiger Beschäftigung mit IoBroker scheitere ich leider an der Berechnung, vielleicht auch an der Logik?

                                    Was mache ich falsch?

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

                                    @patrickfro sagte: einer Aktion,

                                    Welche Aktion? Jede Wertänderung oder nur Änderung false --> true (öffnen)?

                                    @patrickfro sagte in Zeitdifferenz berechnen:

                                    nach 20 Sekunden feststellen, ob sie in den letzten 10 Sekunden weiter ausgeübt wurde

                                    Weshalb erst nach 20 s?

                                    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

                                    P 1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @patrickfro sagte: einer Aktion,

                                      Welche Aktion? Jede Wertänderung oder nur Änderung false --> true (öffnen)?

                                      @patrickfro sagte in Zeitdifferenz berechnen:

                                      nach 20 Sekunden feststellen, ob sie in den letzten 10 Sekunden weiter ausgeübt wurde

                                      Weshalb erst nach 20 s?

                                      P Offline
                                      P Offline
                                      PatrickFro
                                      schrieb am zuletzt editiert von
                                      #33

                                      @paul53 Jede Wertänderung, die bei aktiver Nutzung etwa 1-2 Mal pro Sekunde realistisch ist.

                                      Nach 20 Sekunden möchte ich beim Start der Aktion testen, ob es nur eine Wertänderung aufgrund Verschieben des Gegenstandes ist oder ob wirklich Sport gemacht wird. Die 20 Sekunden sind willkürlich, könnten auch 30 Sekunden oder eine Minute sein.

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • P PatrickFro

                                        @paul53 Jede Wertänderung, die bei aktiver Nutzung etwa 1-2 Mal pro Sekunde realistisch ist.

                                        Nach 20 Sekunden möchte ich beim Start der Aktion testen, ob es nur eine Wertänderung aufgrund Verschieben des Gegenstandes ist oder ob wirklich Sport gemacht wird. Die 20 Sekunden sind willkürlich, könnten auch 30 Sekunden oder eine Minute sein.

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

                                        @patrickfro sagte: Jede Wertänderung

                                        Vorschlag:

                                        Bild_2021-12-08_001752.png

                                        <xml xmlns="https://developers.google.com/blockly/xml">
                                         <variables>
                                           <variable id="P4J/pC!qmBM/1Z__aRWg">cnt</variable>
                                           <variable id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</variable>
                                           <variable type="timeout" id="timeout">timeout</variable>
                                         </variables>
                                         <block type="variables_set" id="d/jNs%DT4J/1*l?SN03^" x="63" y="13">
                                           <field name="VAR" id="P4J/pC!qmBM/1Z__aRWg">cnt</field>
                                           <value name="VALUE">
                                             <block type="math_number" id="brpfPFO4,hfnn0rb%N^C">
                                               <field name="NUM">0</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="on" id="jK!Srf4|s?My,i]Z?.e_">
                                               <field name="OID">zigbee.1.00158d000799f9ae.opened</field>
                                               <field name="CONDITION">ne</field>
                                               <field name="ACK_CONDITION"></field>
                                               <statement name="STATEMENT">
                                                 <block type="variables_set" id="zqFe_u[sWLj;+]dMW##1">
                                                   <field name="VAR" id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</field>
                                                   <value name="VALUE">
                                                     <block type="math_arithmetic" id="MQ6nN[*zAT8GVfWg1;-O" inline="false">
                                                       <field name="OP">MINUS</field>
                                                       <value name="A">
                                                         <shadow type="math_number" id="uvD{f=e]!:O/B,9ALM*y">
                                                           <field name="NUM">1</field>
                                                         </shadow>
                                                         <block type="on_source" id="93mqKHm(M`hLmElkJQ5S">
                                                           <field name="ATTR">state.lc</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <shadow type="math_number" id="Bz#Vj4[#pNfW8n`Wr+[m">
                                                           <field name="NUM">1</field>
                                                         </shadow>
                                                         <block type="on_source" id="^rsOSwuTg[J@hdSSu2~l">
                                                           <field name="ATTR">oldState.lc</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="controls_if" id="Y%_)H%AK@R)fvL,aB4D$">
                                                       <value name="IF0">
                                                         <block type="logic_negate" id=":?FlLsbYm{.zN-[bZ)g^">
                                                           <value name="BOOL">
                                                             <block type="variables_get" id="]0?!t;E9Hq~?)pwd+#WM">
                                                               <field name="VAR" id="timeout" variabletype="timeout">timeout</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <statement name="DO0">
                                                         <block type="timeouts_settimeout" id="-@~Mtif+cgDPP[L:r-Nh">
                                                           <field name="NAME">timeout</field>
                                                           <field name="DELAY">20</field>
                                                           <field name="UNIT">sec</field>
                                                           <statement name="STATEMENT">
                                                             <block type="variables_set" id="/ZG17;!yVU9?#U@ow`cc">
                                                               <field name="VAR" id="P4J/pC!qmBM/1Z__aRWg">cnt</field>
                                                               <value name="VALUE">
                                                                 <block type="math_number" id="P|Z3akKr[K_Tu:s~krie">
                                                                   <field name="NUM">0</field>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="variables_set" id="}re]Vg2D?(?fU^.|grmh">
                                                                   <field name="VAR" id="timeout" variabletype="timeout">timeout</field>
                                                                   <value name="VALUE">
                                                                     <block type="logic_null" id="o}f]#}r:KRbuDc?O|jBb"></block>
                                                                   </value>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </statement>
                                                         </block>
                                                       </statement>
                                                       <next>
                                                         <block type="comment" id="dKTi=DXeE:d~t:`oElVJ">
                                                           <field name="COMMENT">Zeitdifferenz darf maximal &lt;10 Sekunden sein</field>
                                                           <next>
                                                             <block type="controls_if" id="HMVL(8UgPCqNF2+seN/5">
                                                               <value name="IF0">
                                                                 <block type="logic_compare" id=":GPAg!:7I%ju?fd)KX0E">
                                                                   <field name="OP">LT</field>
                                                                   <value name="A">
                                                                     <block type="variables_get" id="SROQT(0H9:`1U/|,B7Fc">
                                                                       <field name="VAR" id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</field>
                                                                     </block>
                                                                   </value>
                                                                   <value name="B">
                                                                     <block type="math_number" id="0unIA@)v2Q~w@0CT[C%F">
                                                                       <field name="NUM">10000</field>
                                                                     </block>
                                                                   </value>
                                                                 </block>
                                                               </value>
                                                               <statement name="DO0">
                                                                 <block type="math_change" id="FiiU:QQ/R^C;+(/wf]vt">
                                                                   <field name="VAR" id="P4J/pC!qmBM/1Z__aRWg">cnt</field>
                                                                   <value name="DELTA">
                                                                     <shadow type="math_number" id="+Anx@MLF)~l?PXLWmm;(">
                                                                       <field name="NUM">1</field>
                                                                     </shadow>
                                                                   </value>
                                                                   <next>
                                                                     <block type="controls_if" id=":rgk1rFp!Sf@d6G86`4P">
                                                                       <value name="IF0">
                                                                         <block type="logic_operation" id="6XTSj{c@b[/og!~-lyx=" inline="false">
                                                                           <field name="OP">AND</field>
                                                                           <value name="A">
                                                                             <block type="logic_compare" id="-M|#UyHG+Q)0o$L$Vafr">
                                                                               <field name="OP">GT</field>
                                                                               <value name="A">
                                                                                 <block type="variables_get" id="brKuBe9M`3K..voGI.nf">
                                                                                   <field name="VAR" id="P4J/pC!qmBM/1Z__aRWg">cnt</field>
                                                                                 </block>
                                                                               </value>
                                                                               <value name="B">
                                                                                 <block type="math_number" id="GVx0yXUe6}Rad10Qz#/~">
                                                                                   <field name="NUM">2</field>
                                                                                 </block>
                                                                               </value>
                                                                             </block>
                                                                           </value>
                                                                           <value name="B">
                                                                             <block type="logic_compare" id="{p,x[K=9#5HqN6]e4/;8">
                                                                               <field name="OP">EQ</field>
                                                                               <value name="A">
                                                                                 <block type="get_value" id="~`RyQBMVd+],i;a3%/Ou">
                                                                                   <field name="ATTR">val</field>
                                                                                   <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                                                 </block>
                                                                               </value>
                                                                               <value name="B">
                                                                                 <block type="logic_boolean" id="At+vP+3x:dXo*226VG:1">
                                                                                   <field name="BOOL">FALSE</field>
                                                                                 </block>
                                                                               </value>
                                                                             </block>
                                                                           </value>
                                                                         </block>
                                                                       </value>
                                                                       <statement name="DO0">
                                                                         <block type="update" id="x]/[eU$U^~U?E~Yb%2Z)">
                                                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                           <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                                           <field name="WITH_DELAY">FALSE</field>
                                                                           <value name="VALUE">
                                                                             <block type="logic_boolean" id="i.NxT_cZm:D3pDq|nfYY">
                                                                               <field name="BOOL">TRUE</field>
                                                                             </block>
                                                                           </value>
                                                                           <next>
                                                                             <block type="update" id="CqBYKGD%HdGVtp.D-`=}">
                                                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                                               <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                                               <field name="WITH_DELAY">TRUE</field>
                                                                               <field name="DELAY_MS">2</field>
                                                                               <field name="UNIT">min</field>
                                                                               <field name="CLEAR_RUNNING">FALSE</field>
                                                                               <value name="VALUE">
                                                                                 <block type="logic_boolean" id="U6f`+?oKBw0xTIG*|lsb">
                                                                                   <field name="BOOL">FALSE</field>
                                                                                 </block>
                                                                               </value>
                                                                               <next>
                                                                                 <block type="telegram" id="pB:;!`u9TxYb{eB+GSJO">
                                                                                   <field name="INSTANCE"></field>
                                                                                   <field name="LOG"></field>
                                                                                   <field name="SILENT">FALSE</field>
                                                                                   <field name="PARSEMODE">default</field>
                                                                                   <value name="MESSAGE">
                                                                                     <shadow type="text" id="`w]AkcjR$}Tus_1HsmPo">
                                                                                       <field name="TEXT">Testnachricht: Kurbeln längere Zeit gedreht</field>
                                                                                     </shadow>
                                                                                   </value>
                                                                                   <value name="USERNAME">
                                                                                     <block type="text" id="%?/-9(?N0.HXoD4gOL:l">
                                                                                       <field name="TEXT">Patrick</field>
                                                                                     </block>
                                                                                   </value>
                                                                                 </block>
                                                                               </next>
                                                                             </block>
                                                                           </next>
                                                                         </block>
                                                                       </statement>
                                                                     </block>
                                                                   </next>
                                                                 </block>
                                                               </statement>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </statement>
                                             </block>
                                           </next>
                                         </block>
                                        </xml>
                                        

                                        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

                                        P 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @patrickfro sagte: Jede Wertänderung

                                          Vorschlag:

                                          Bild_2021-12-08_001752.png

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                           <variables>
                                             <variable id="P4J/pC!qmBM/1Z__aRWg">cnt</variable>
                                             <variable id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</variable>
                                             <variable type="timeout" id="timeout">timeout</variable>
                                           </variables>
                                           <block type="variables_set" id="d/jNs%DT4J/1*l?SN03^" x="63" y="13">
                                             <field name="VAR" id="P4J/pC!qmBM/1Z__aRWg">cnt</field>
                                             <value name="VALUE">
                                               <block type="math_number" id="brpfPFO4,hfnn0rb%N^C">
                                                 <field name="NUM">0</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="on" id="jK!Srf4|s?My,i]Z?.e_">
                                                 <field name="OID">zigbee.1.00158d000799f9ae.opened</field>
                                                 <field name="CONDITION">ne</field>
                                                 <field name="ACK_CONDITION"></field>
                                                 <statement name="STATEMENT">
                                                   <block type="variables_set" id="zqFe_u[sWLj;+]dMW##1">
                                                     <field name="VAR" id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</field>
                                                     <value name="VALUE">
                                                       <block type="math_arithmetic" id="MQ6nN[*zAT8GVfWg1;-O" inline="false">
                                                         <field name="OP">MINUS</field>
                                                         <value name="A">
                                                           <shadow type="math_number" id="uvD{f=e]!:O/B,9ALM*y">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="on_source" id="93mqKHm(M`hLmElkJQ5S">
                                                             <field name="ATTR">state.lc</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <shadow type="math_number" id="Bz#Vj4[#pNfW8n`Wr+[m">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="on_source" id="^rsOSwuTg[J@hdSSu2~l">
                                                             <field name="ATTR">oldState.lc</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="controls_if" id="Y%_)H%AK@R)fvL,aB4D$">
                                                         <value name="IF0">
                                                           <block type="logic_negate" id=":?FlLsbYm{.zN-[bZ)g^">
                                                             <value name="BOOL">
                                                               <block type="variables_get" id="]0?!t;E9Hq~?)pwd+#WM">
                                                                 <field name="VAR" id="timeout" variabletype="timeout">timeout</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <statement name="DO0">
                                                           <block type="timeouts_settimeout" id="-@~Mtif+cgDPP[L:r-Nh">
                                                             <field name="NAME">timeout</field>
                                                             <field name="DELAY">20</field>
                                                             <field name="UNIT">sec</field>
                                                             <statement name="STATEMENT">
                                                               <block type="variables_set" id="/ZG17;!yVU9?#U@ow`cc">
                                                                 <field name="VAR" id="P4J/pC!qmBM/1Z__aRWg">cnt</field>
                                                                 <value name="VALUE">
                                                                   <block type="math_number" id="P|Z3akKr[K_Tu:s~krie">
                                                                     <field name="NUM">0</field>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="variables_set" id="}re]Vg2D?(?fU^.|grmh">
                                                                     <field name="VAR" id="timeout" variabletype="timeout">timeout</field>
                                                                     <value name="VALUE">
                                                                       <block type="logic_null" id="o}f]#}r:KRbuDc?O|jBb"></block>
                                                                     </value>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </statement>
                                                           </block>
                                                         </statement>
                                                         <next>
                                                           <block type="comment" id="dKTi=DXeE:d~t:`oElVJ">
                                                             <field name="COMMENT">Zeitdifferenz darf maximal &lt;10 Sekunden sein</field>
                                                             <next>
                                                               <block type="controls_if" id="HMVL(8UgPCqNF2+seN/5">
                                                                 <value name="IF0">
                                                                   <block type="logic_compare" id=":GPAg!:7I%ju?fd)KX0E">
                                                                     <field name="OP">LT</field>
                                                                     <value name="A">
                                                                       <block type="variables_get" id="SROQT(0H9:`1U/|,B7Fc">
                                                                         <field name="VAR" id="xE-PO6fl5.;X+JU}_9rQ">Zeitdifferenz in ms</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="B">
                                                                       <block type="math_number" id="0unIA@)v2Q~w@0CT[C%F">
                                                                         <field name="NUM">10000</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <statement name="DO0">
                                                                   <block type="math_change" id="FiiU:QQ/R^C;+(/wf]vt">
                                                                     <field name="VAR" id="P4J/pC!qmBM/1Z__aRWg">cnt</field>
                                                                     <value name="DELTA">
                                                                       <shadow type="math_number" id="+Anx@MLF)~l?PXLWmm;(">
                                                                         <field name="NUM">1</field>
                                                                       </shadow>
                                                                     </value>
                                                                     <next>
                                                                       <block type="controls_if" id=":rgk1rFp!Sf@d6G86`4P">
                                                                         <value name="IF0">
                                                                           <block type="logic_operation" id="6XTSj{c@b[/og!~-lyx=" inline="false">
                                                                             <field name="OP">AND</field>
                                                                             <value name="A">
                                                                               <block type="logic_compare" id="-M|#UyHG+Q)0o$L$Vafr">
                                                                                 <field name="OP">GT</field>
                                                                                 <value name="A">
                                                                                   <block type="variables_get" id="brKuBe9M`3K..voGI.nf">
                                                                                     <field name="VAR" id="P4J/pC!qmBM/1Z__aRWg">cnt</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="B">
                                                                                   <block type="math_number" id="GVx0yXUe6}Rad10Qz#/~">
                                                                                     <field name="NUM">2</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <value name="B">
                                                                               <block type="logic_compare" id="{p,x[K=9#5HqN6]e4/;8">
                                                                                 <field name="OP">EQ</field>
                                                                                 <value name="A">
                                                                                   <block type="get_value" id="~`RyQBMVd+],i;a3%/Ou">
                                                                                     <field name="ATTR">val</field>
                                                                                     <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="B">
                                                                                   <block type="logic_boolean" id="At+vP+3x:dXo*226VG:1">
                                                                                     <field name="BOOL">FALSE</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <statement name="DO0">
                                                                           <block type="update" id="x]/[eU$U^~U?E~Yb%2Z)">
                                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                             <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                                             <field name="WITH_DELAY">FALSE</field>
                                                                             <value name="VALUE">
                                                                               <block type="logic_boolean" id="i.NxT_cZm:D3pDq|nfYY">
                                                                                 <field name="BOOL">TRUE</field>
                                                                               </block>
                                                                             </value>
                                                                             <next>
                                                                               <block type="update" id="CqBYKGD%HdGVtp.D-`=}">
                                                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                                                 <field name="OID">0_userdata.0.Hometrainer_Skripte.Aussetzung_Benachrichtigungen</field>
                                                                                 <field name="WITH_DELAY">TRUE</field>
                                                                                 <field name="DELAY_MS">2</field>
                                                                                 <field name="UNIT">min</field>
                                                                                 <field name="CLEAR_RUNNING">FALSE</field>
                                                                                 <value name="VALUE">
                                                                                   <block type="logic_boolean" id="U6f`+?oKBw0xTIG*|lsb">
                                                                                     <field name="BOOL">FALSE</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <next>
                                                                                   <block type="telegram" id="pB:;!`u9TxYb{eB+GSJO">
                                                                                     <field name="INSTANCE"></field>
                                                                                     <field name="LOG"></field>
                                                                                     <field name="SILENT">FALSE</field>
                                                                                     <field name="PARSEMODE">default</field>
                                                                                     <value name="MESSAGE">
                                                                                       <shadow type="text" id="`w]AkcjR$}Tus_1HsmPo">
                                                                                         <field name="TEXT">Testnachricht: Kurbeln längere Zeit gedreht</field>
                                                                                       </shadow>
                                                                                     </value>
                                                                                     <value name="USERNAME">
                                                                                       <block type="text" id="%?/-9(?N0.HXoD4gOL:l">
                                                                                         <field name="TEXT">Patrick</field>
                                                                                       </block>
                                                                                     </value>
                                                                                   </block>
                                                                                 </next>
                                                                               </block>
                                                                             </next>
                                                                           </block>
                                                                         </statement>
                                                                       </block>
                                                                     </next>
                                                                   </block>
                                                                 </statement>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </next>
                                           </block>
                                          </xml>
                                          

                                          P Offline
                                          P Offline
                                          PatrickFro
                                          schrieb am zuletzt editiert von
                                          #35

                                          @paul53 Super, vielen Dank.

                                          Ich glaube, ich habe mich unglücklich ausgedrückt.

                                          Bei Start des möglichen Trainings, also der auf/zu-Schaltung, soll nicht sofort eine Benachrichtigung per Telegram kommen. Nach den ersten 20 Sekunden soll geschaut werden, ob innerhalb der letzten 10 Sekunden eine Bewegung, also eine auf/zu-Schaltung passierte. Ob danach weitere Schaltungen registriert werden, ist egal. Eine Benachrichtigung per Telegram erfolgt nur einmalig, wenn nach erster Schaltung weitere folgen. Nach der ersten Benachrichtigung ist eine Sperre von 60 Minuten (ich habe aus Testgründen 2 Minuten eingetragen). Würde die Aktion länger als eine Stunde durchgeführt werden, so erhielte ich eben eine weitere Nachricht.

                                          Ich hoffe, das ist verständlicher. Es soll also geprüft werden, ob die fortlaufenden Schaltungen nur sehr kurz (<10 Sekunden) oder länger (> 10 Sekunden) durchgeführt werden.

                                          paul53P 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

                                          599

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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