Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Einen Sensor überwachen, ob dieser noch Erreichbar ist

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Einen Sensor überwachen, ob dieser noch Erreichbar ist

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

      Hallo,

      ich mache mir gerade Gedanken, wie ich es überwachen kann, ob ein Sensor noch erreichbar ist.
      Dazu habe ich mir mal einen Heiman Rauchmelder genommen, ich bin mir ziemlich sicher, dass dies auch für andere Geräte mit Batterie gilt. Die Sinnhaftigkeit eines Zigbee Rauchmelders lassen wir mal außen vor, als Testobjekt ist der gut geeignet, weil ich die Batterie einfach ziehen kann.

      Erst wollte ich den Datenpunkt "reachable" überwachen, dieser wird jedoch nicht geändert, wenn ich die Batterie ziehe. Vielleicht irgendwann einmal, ich habe dann irgendwann die Geduld verloren.
      Dann habe ich gedacht, der Datenpunkt "lastupdatet" wäre geeignet, der hat sich jeoch in den letzten zwei Stunden auch nicht geändert. Ich sehe teilweise das es andere Zeitstempel bei den Datenpunkten gibt, aber die führen nicht zu einer Änderung bei "lastupdatet" wie ich vermutet hatte.
      Wie kann man denn sonst prüfen, ob Sensoren zumindest noch verbunden sind? Das frage ich mich jetzt auch für meine Fensterkontakte, Floodsensoren etc... Es könnte ja mal einer kaputt gehen, die Batterie leer sein (der Batteriestatus wird ja auch nicht immer korrekt ausgelesen) oder ähnliches
      Kann man die Zeitstempel abfragen der Datenpunkte? Oder habt ihr sonst noch einen Trick?

      Vielen Dank
      Christian

      A mickym 2 Replies Last reply Reply Quote 0
      • A
        Ahnungsbefreit @BigChris last edited by

        @bigchris Hi, das geht bei Sensoren, die mit Batterie betrieben werden, nur über den Zeitstempel der letzten Änderung, denn solche Sensoren melden sich nur, wenn sich ein Wert geändert hat.

        B 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @BigChris last edited by

          @bigchris Mit Zeitstempel überwachen ist umständlich. Ich mache das in meinen Flows immer so, dass ich weiß in welchen Zeiträumen sich die Geräte gemeldet haben müssen, um als verfügbar zu gelten. Dabei hat sich eigentlich bei mir in einem Zeitraum auch unter Zigbee innerhalb von 2 Stunden jedes Gerät gemeldet.

          1 Reply Last reply Reply Quote 0
          • B
            BigChris last edited by

            @mickym

            Das verstehe ich nicht, wie du das gemacht hast?
            Sorry, ich bin noch nicht so drin in der Thematik, kannst du es mir etwas ausführlicher erklären?

            mickym 1 Reply Last reply Reply Quote 0
            • B
              BigChris @Ahnungsbefreit last edited by

              @ahnungsbefreit

              Wie vergleiche ich einen alten mit dem aktuellen Zeitstempel?
              Muss ich einen irgendwohin wegschreiben und dann schauen ob die gleich sind?

              C 1 Reply Last reply Reply Quote 0
              • C
                Chrunchy @BigChris last edited by

                @bigchris Vergleich: aktuellen Zeit-Zeitstempel=Differenz
                Wenn Differenz größer X dann Gerät offline.

                Wie groß du die zulässige Differenz definierst, ist dir überlassen. Wirst du mit unterschiedlichen Geräten auch unterschiedlich setzten müssen.

                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @BigChris last edited by mickym

                  @bigchris sagte in Einen Sensor überwachen, ob dieser noch Erreichbar ist:

                  @mickym

                  Das verstehe ich nicht, wie du das gemacht hast?
                  Sorry, ich bin noch nicht so drin in der Thematik, kannst du es mir etwas ausführlicher erklären?

                  Ich mach das halt mit Node Red - aber für die Logik spielt das keine Rolle:

                  bdf6b648-1caf-4bb7-b27a-386d06fd1f6c-image.png

                  Zentral sind die Trigger Nodes -
                  Dein Rauchmelder meldet sich - die Triggernode wird aktiviert aber leitet nichts oder in meinem Fall true weiter. Wenn innerhalb von 2 Stunden eine Nachricht kommt, dann wird wieder 2 Stungen gewartet usw.. - Das heißt solange innerhalb des definierten Zeitraums keine Meldung kommt, passiert nichts. Erst wenn mal keine Nachricht innerhalb von 2 Stunden kommt, dann wird Alarm gegeben - kann man natürlich auf 3 Std. etc. anpassen.

                  beebb2da-d997-4bf0-b06e-e51cff3be914-image.png

                  Im Blockly musst Du dass dann halt mit Timern machen - da hat @paul53 schon Beispiele gepostet. Wenn der Timer verlängert werden soll, alten Timer löschen und neu starten.

                  Im Prinzip musst Du halt alle Aktualisierungen triggern lassen - sprich bei einem Rauchmelder wird wahrscheinlich immer false drin stehen.

                  1 Reply Last reply Reply Quote 0
                  • B
                    BigChris last edited by

                    Ok, vielen Dank für Eure Hilfe. Ich versuche das mal umzusetzen. Einen Test mit dem Vergleich von Zeitstempeln hat schon mal funktioniert 🙂

                    Andre 0 1 Reply Last reply Reply Quote 0
                    • Andre 0
                      Andre 0 @BigChris last edited by

                      @bigchris
                      Ich mach das so in Blockly.

                      30-12-_2021_23-13-51.jpg


                      <xml xmlns="https://developers.google.com/blockly/xml">
                      <variables>
                      <variable id="vK5H@#I*^M/lcgeE@PRB">gartentor_kontakt</variable>
                      </variables>
                      <block type="controls_if" id="t3;@zJrP8;CshBO=leo" x="84" y="719"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="rU:Gudg8L?)6YAOZY5,i"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="2oCy$Pv4O}CUtN}3R^g">
                      <field name="VAR" id="vK5H@#I*^M/lcgeE@PRB">gartentor_kontakt</field>
                      </block>
                      </value>
                      <value name="B">
                      <block type="get_value" id="xC=k;KAoSu;JNEteJxEJ">
                      <field name="ATTR">ts</field>
                      <field name="OID">zigbee.0.00158d0003122049.contact</field>
                      </block>
                      </value>
                      </block>
                      </value>
                      <statement name="DO0">
                      <block type="controls_if" id="c2pi$JJp5_@[rqX13Er#">
                      <value name="IF0">
                      <block type="logic_compare" id="y=E?U!qZvcnTQGsWeCBr">
                      <field name="OP">EQ</field>
                      <value name="A">
                      <block type="get_value" id="!GY;5QaQ6bN$9qd1g0E8">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.alive_check.kontakt.gartentor</field>
                      </block>
                      </value>
                      <value name="B">
                      <block type="logic_boolean" id="y5wg5=D=d1sAvo)sK2f"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="7CF?dqO4L~;4.:T|c%">
                      <field name="INSTANCE"></field>
                      <field name="LOG"></field>
                      <field name="SILENT">FALSE</field>
                      <field name="PARSEMODE">default</field>
                      <value name="MESSAGE">
                      <shadow type="text">
                      <field name="TEXT">Temperatur</field>
                      </shadow>
                      <block type="text_join" id="6mr=w-tS^/=cKv,E]?i1">
                      <mutation items="5"></mutation>
                      <value name="ADD0">
                      <block type="text" id="Nqcwf:lWk1e{z;!XDsW"> <field name="TEXT">Der Kontaktsensor</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="TYmsFcSPv9its@eR9XfP"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="*Lka:pXH$5R{x%RHGer">
                      <field name="TEXT">Gartentor</field>
                      </block>
                      </value>
                      <value name="ADD3">
                      <block type="text_newline" id="b]@FQC)^446MEN2L~wd"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="F1.mII:L*|_lnF+CTbRD"> <field name="TEXT">hat keine Verbindung!</field> </block> </value> </block> </value> <next> <block type="control" id="s{s7$)2lE}HTx~R8T$KE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.alive_check.kontakt.gartentor</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":jrO(.y4q?mh)a)Cn(U">
                      <field name="BOOL">FALSE</field>
                      </block>
                      </value>
                      </block>
                      </next>
                      </block>
                      </statement>
                      </block>
                      </statement>
                      <statement name="ELSE">
                      <block type="variables_set" id="$1A3@m9)fZo-+8Y8Ss.8">
                      <field name="VAR" id="vK5H@#I
                      ^M/lcgeE@PRB">gartentor_kontakt</field>
                      <value name="VALUE">
                      <block type="get_value" id="EI{?gF/btN4y{T^H7-+x">
                      <field name="ATTR">ts</field>
                      <field name="OID">zigbee.0.00158d0003122049.contact</field>
                      </block>
                      </value>
                      <next>
                      <block type="control" id="wJhCK|P.!}Gt|m6Xv^^@">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">0_userdata.0.alive_check.kontakt.gartentor</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                      <block type="logic_boolean" id="yRm2P{,~`kuT|D:ngP=0">
                      <field name="BOOL">TRUE</field>
                      </block>
                      </value>
                      </block>
                      </next>
                      </block>
                      </statement>
                      </block>
                      </xml>

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      929
                      Online

                      31.9k
                      Users

                      80.1k
                      Topics

                      1.3m
                      Posts

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