Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Probleme mit Aqara Temperatur- und Feuchtigkeitssensor

    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

    Probleme mit Aqara Temperatur- und Feuchtigkeitssensor

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Guest last edited by

      @pete0815 sagte in Probleme mit Aqara Temperatur- und Feuchtigkeitssensor:

      Edit: Nachdem ich es jetzt studiert habe, Ich habe noch nicht ganz verstanden, was der Watchdog per skript bringt. Batteriebetriebene Aqara Sensoren wie die T&H senden keine zyklischen Daten d.h. wenn sich die Temperatur x Tage nicht ändert senden sie x-Tage keinen Wert. Somit bekomme ich ggf einen Watchdog Alarm obwohl alles in Ordnung ist. Ein Watchdog auf extrem hohe Zeit zu setzen ist für mein Verständnis wenig sinnvoll. Einen Verfügbarkeitsanfrage wie zB einen Ping lässt sich bei Zigbee ja nicht manuell ausführen oder erzeugen und auswerten oder irre ich da?

      Kann ich nicht bestätigen. Meine batteriebetriebenen Aquara Sensoren melden sich mindestens 1 mal in 2 Stunden (egal ob Bewegungsmelder mit Luxmeter oder Temperatur & Feuchtigkeit). Die Würfel überwache ich gerade nicht, aber auch hier sehe ich, selbst bei dem Würfel den ich mehrere Stunden nicht angefasst habe, dass voltage und oder link quality übertragen werden:

      23f17c13-2c36-485f-9a9d-1d415ab7e4ab-image.png

      1 Reply Last reply Reply Quote 0
      • C
        canetti2 last edited by canetti2

        Ich habe jetzt das Skript von @paul53 ein wenig überarbeitet bzw. erweitert:

        var sensorId = [
            'zigbee.0.00xxxxxx.temperature',
            'zigbee.0.00xxxxxx.temperature',
            'zigbee.0.00xxxxxx.click',
            'zigbee.0.04xxxxxxxx.load_power',
            ]; 
        
        for (var i = 0; i < sensorId.length; i++) {
           watchDog(sensorId[i]); 
        }
        
        function watchDog(sensorId){
            var timer = null; 
            on({id: sensorId}, function() {             // löst bei jeder Aktualisierung aus
                if(timer) clearTimeout(timer);          // laufender Timer wird gestoppt
                timer = setTimeout(function() {         // Neustart Timer
                    console.log('Sensorausfall ' + sensorId);          // Aktion, wenn Verzögerungszeit abgelaufen ist
                    sendTo("telegram", "send", {
                    text:('****** Achtung Sensorausfall ******\n' + 'Typ: ' + getObject(sensorId).common.name + '\nID: ' + sensorId)
                    });
                }, 120 * 60000);                          // 120 Minuten in ms = 120 * 60000   
            });
        }
        

        Wenn ich einen neuen Sensor bekomme, dessen Funktion ich überwachen möchte, trage ich die ID einfach in das Array senorId ein.

        Sobald sich einer der Sensoren in meinem Fall nach 120 Minuten nicht meldet, erhalte ich eine automatische Warnmeldung per Telegram mit allen nötigen Informationen. Alternativ kann man sich natürlich auch per Mail oder was auch immer benachrichtigen lassen.

        K 1 Reply Last reply Reply Quote 2
        • K
          klassisch Most Active @canetti2 last edited by

          @canetti2 vielen Dank! Interessant. Wenn ich das richtig verstehe, wird für jeden Sensor im Skript so eine Funktion angelegt. Jede Funktion generiert dann auch ihre eigene timer-Variable.

          Alle Sensoren müssen dann dieselbe timeout Zeit haben und andere Sonderbehandlungen sind dann auch nicht möglichl

          Was ich nicht verstanden habe: _id. Was macht das?

          1 Reply Last reply Reply Quote 0
          • C
            canetti2 last edited by

            @klassisch das ist korrekt: Jeder Sensor startet eine eigene Funktion mit eigener Timer-Variable. Und bei allen Sensoren wird erwartet, dass Sie sich (in meinem Beispiel) nach 120 Minuten melden. Tut ein Sensor das nicht, bekomme ich eine Nachricht per Telegram. Die Variable _id ist entsprechende ObjektId. Wenn man 200 Sensoren überwacht, kann man den Sensor so in der Objektübersicht (wahrscheinlich) leichter finden. Alle Sensoren werden gleich behandelt.

            Ich beschäftige mich ja auch erst seit knapp zwei Wochen mit dem Thema "iobroker" und bin daher noch absoluter Anfänger. Ich habe keine Ahnung, ob manche Sensoren eine "Sonderbehandlung" benötigen. Bei meinen drei Sensoren ist das noch nicht der Fall ;-). Sollte eine "Sonderbehandlung" nötig sein, müsste man die Funktion und evtl. auch das Array, bzw. den Funktionsaufruf entsprechend erweitern.

            K 1 Reply Last reply Reply Quote 0
            • C
              canetti2 last edited by canetti2

              @klassisch vergiss die getObject(sensorId)._id Geschichte. Das ist ja quatsch - die Id ist ja die Variable sensorId 😉

              K 1 Reply Last reply Reply Quote 0
              • K
                klassisch Most Active @canetti2 last edited by klassisch

                @canetti2 sagte in Probleme mit Aqara Temperatur- und Feuchtigkeitssensor:

                Ich beschäftige mich ja auch erst seit knapp zwei Wochen mit dem Thema "iobroker" und bin daher noch absoluter Anfänger.

                Respekt! Steile Lernkurve!

                Ich habe keine Ahnung, ob manche Sensoren eine "Sonderbehandlung" benötigen. Bei meinen drei Sensoren ist das noch nicht der Fall ;-).

                Hängt weniger von ioBroker als viel mehr vom Sensorsetup bzw. den Anwendungen ab.

                Aber man kann mit Deinem Ansatz sicher eine Menge Arbeit sparen. Man kann ja in Sensoren bzw. Anwendungen clustern. In diesem Fall nach timeout-Zeiten.
                Je nach timeout-Zeiten macht man also eigene Funktionen. Das spart ja auch schon mal sehr.
                Gefällt mir, vielen Dank!

                1 Reply Last reply Reply Quote 0
                • K
                  klassisch Most Active @canetti2 last edited by klassisch

                  @canetti2 sagte in Probleme mit Aqara Temperatur- und Feuchtigkeitssensor:

                  @klassisch vergiss die getObject(sensorId)._id Geschichte. Das ist ja quatsch - die Id ist ja die Variable sensorId 😉

                  Danke, das hätte ich so erwartet, weil ja jeweils eine solche Funktion angelegt wird, die dann kein Array mehr beherbergt, sondern das Element des Arrays.
                  Edit: Magst Du das noch in Deinen Post einarbeiten? Ich würde gerne von dem zitierten alten Post auf Dein Skript verweisen. Dann haben es andere user einfacher.

                  1 Reply Last reply Reply Quote 0
                  • C
                    canetti2 last edited by

                    @klassisch Ich habe die Funktion überarbeitet - siehe oben.

                    paul53 1 Reply Last reply Reply Quote 1
                    • paul53
                      paul53 @canetti2 last edited by

                      @canetti2 sagte: Ich habe die Funktion überarbeitet - siehe oben.

                      Aber nicht in Zeile 17.

                      1 Reply Last reply Reply Quote 0
                      • C
                        canetti2 last edited by

                        @paul53 jetzt aber 😉

                        1 Reply Last reply Reply Quote 0
                        • Damrak2022
                          Damrak2022 @mickym last edited by

                          @mickym Wie prüfst Du das. Das kannst Du mir die Tage mal bitte erklären.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          423
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          8
                          30
                          7077
                          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