Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Wemos D1 mini - Batteriestatus abfragen

    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

    [Gelöst] Wemos D1 mini - Batteriestatus abfragen

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

      Hallo zusammen,

      ich habe mir mit einem Wemos D1 mini und einem BME280 ein mit Batterien betriebenes Aussenthermometer erstellt. Der Wemos sendet alle 15 Minuten die Daten und legt sich dann wieder schlafen.

      Nun möchte ich mir eine Push-Nachricht senden lassen, wenn irgendwann keine Daten mehr gesendet werden, weil dann wahrscheinlich die Batterien verbraucht sind.

      Ich habe einen Datenpunkt "AT1_status" erzeugt.

      Nun ist mein Ansatz, dass wenn einer der Werte (z.B. die Temperatur) des BME280 aktualisiert wird, ich den Status auf 0 setzen lasse. Danach soll alle 1 Minute der Status um 1 erhöht werden. Sollte dann der Status irgendwann größer 15 sein, soll er eine Nachricht senden und den Intervall stoppen.

      Hier mein Blockly:
      javascript   ioBroker_minute.jpg

      Leider funktioniert mein Blockly nicht ganz, wie ich es dachte.
      Hier der Log dazu:

      2019-10-15 11:03:38.775 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] connected with secret 1571130218774_4463
      2019-10-15 11:03:38.799 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] subscribes on "aussenthermometer/#" with regex /^aussenthermometer\..*/
      2019-10-15 11:03:38.799 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] subscribes on "aussenthermometer/#" with regex /^mqtt\.0\.aussenthermometer\..*/
      2019-10-15 11:03:38.799 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] publishOnSubscribe send all known states
      2019-10-15 11:04:09.729 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] connection closed: disconnected
      2019-10-15 11:04:42.639 - info: javascript.0 Start javascript script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status
      2019-10-15 11:04:42.642 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: registered 1 subscription and 0 schedules
      2019-10-15 11:04:52.356 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 0
      2019-10-15 11:05:52.357 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 0
      2019-10-15 11:06:52.357 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 1
      2019-10-15 11:07:52.356 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 2
      2019-10-15 11:08:52.357 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 3
      2019-10-15 11:09:52.358 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 4
      2019-10-15 11:10:52.358 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 5
      2019-10-15 11:11:52.358 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 6
      2019-10-15 11:12:52.358 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 7
      2019-10-15 11:13:52.359 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 8
      2019-10-15 11:14:29.219 - info: unifi.0 Starting UniFi-Controller query
      2019-10-15 11:14:29.219 - info: unifi.0 update_interval = 1800
      2019-10-15 11:14:29.219 - info: unifi.0 controller = 192.168.183.180:8443
      2019-10-15 11:14:29.451 - info: unifi.0 getSitesStats: default
      2019-10-15 11:14:29.462 - info: unifi.0 getSiteSysinfo: 1
      2019-10-15 11:14:29.472 - info: unifi.0 getClientDevices: 11
      2019-10-15 11:14:29.495 - info: unifi.0 getAccessDevices: 1
      2019-10-15 11:14:52.359 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 9
      2019-10-15 11:15:52.360 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 10
      2019-10-15 11:16:52.361 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 11
      2019-10-15 11:17:22.023 - info: info.0 Popup news was read...
      2019-10-15 11:17:52.362 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 12
      2019-10-15 11:18:13.178 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] connected with secret 1571131093177_6473
      2019-10-15 11:18:13.193 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] subscribes on "aussenthermometer/#" with regex /^aussenthermometer\..*/
      2019-10-15 11:18:13.193 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] subscribes on "aussenthermometer/#" with regex /^mqtt\.0\.aussenthermometer\..*/
      2019-10-15 11:18:13.193 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] publishOnSubscribe send all known states
      2019-10-15 11:18:13.990 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 13
      2019-10-15 11:18:36.994 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 0
      2019-10-15 11:18:39.391 - warn: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] Message 888 deleted after 11 retries
      2019-10-15 11:18:44.132 - info: mqtt.0 Client [ESPClient_2C:F4:32:77:5A:28] connection closed: disconnected
      2019-10-15 11:18:52.363 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 0
      2019-10-15 11:19:13.991 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 1
      2019-10-15 11:19:36.996 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 2
      2019-10-15 11:19:52.364 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 3
      2019-10-15 11:20:13.991 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 4
      2019-10-15 11:20:36.996 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 5
      2019-10-15 11:20:52.364 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 6
      2019-10-15 11:21:13.991 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 7
      2019-10-15 11:21:36.998 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 8
      2019-10-15 11:21:52.364 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 9
      2019-10-15 11:22:13.991 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 10
      2019-10-15 11:22:36.998 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 11
      2019-10-15 11:22:52.364 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 12
      2019-10-15 11:23:13.992 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 13
      2019-10-15 11:23:36.999 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 14
      2019-10-15 11:23:52.364 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 15
      2019-10-15 11:24:13.992 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 16
      2019-10-15 11:24:14.000 - info: pushover.0 Send pushover notification: {"message":"Aussenthermometer Batterie leer!","title":"ioBroker","priority":"0"}
      2019-10-15 11:24:52.365 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 17
      2019-10-15 11:24:52.369 - info: pushover.0 Send pushover notification: {"message":"Aussenthermometer Batterie leer!","title":"ioBroker","priority":"0"}
      2019-10-15 11:25:13.993 - info: javascript.0 script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status: 18
      2019-10-15 11:25:13.997 - info: pushover.0 Send pushover notification: {"message":"Aussenthermometer Batterie leer!","title":"ioBroker","priority":"0"}
      2019-10-15 11:25:24.838 - info: javascript.0 Stop script script.js.common.Pushover_Benachrichtigungen.Aussenthermometer_Status
      

      Ich hab das Script gestartet, als Daten reinkamen. Ich verstehe nicht warum das Script nach einer Minute ein zweites Mal die Info mit 0 meldet? Sollte da nicht schon eine 1 im Status sein?
      Danach fuktioniert das Script wie es gedacht war, jede Minute erhöht es den Status um 1. Als aber erneut Daten ankommen, kommt das Script augenscheinlich durcheinander. Zumindest kann ich mir dieses Verhalten nicht erklären.

      Zum Schluß die letzte Frage, die ich mir stelle. Warum stoppt das Script den Intervall nicht? Was mache ich da falsch bzw. was muß ich anders machen?

      Ich hoffe ihr könnt mir helfen.

      Gruß Andreas

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Smallframe last edited by paul53

        @Smallframe sagte:

        Ich verstehe nicht warum das Script nach einer Minute ein zweites Mal die Info mit 0 meldet? Sollte da nicht schon eine 1 im Status sein?

        Javascript arbeitet asynchron, d.h. der Befehl "aktualisiere" wird nur angeschubst und arbeitet im Hintergrund weiter. Deshalb liefert "Wert von Objekt" den vorherigen Wert.
        Verwende eine Variable zum hochzählen und schreibe den Wert der Variablen in den Datenpunkt.

        Blockly_temp.JPG

        @Smallframe sagte in Wemos D1 mini - Batteriestatus abfragen/erstellen:

        Warum stoppt das Script den Intervall nicht?

        Wenn man das laufende Intervall nicht vorher stoppt, laufen mehrere Intervalle.

        S 1 Reply Last reply Reply Quote 1
        • S
          Smallframe @paul53 last edited by

          @paul53 said in Wemos D1 mini - Batteriestatus abfragen/erstellen:

          @Smallframe sagte:

          Ich verstehe nicht warum das Script nach einer Minute ein zweites Mal die Info mit 0 meldet? Sollte da nicht schon eine 1 im Status sein?

          Javascript arbeitet asynchron, d.h. der Befehl "aktualisiere" wird nur angeschubst und arbeitet im Hintergrund weiter. Deshalb liefert "Wert von Objekt" den vorherigen Wert.
          Verwende eine Variable zum hochzählen und schreibe den Wert der Variablen in den Datenpunkt.

          Blockly_temp.JPG

          @Smallframe sagte in Wemos D1 mini - Batteriestatus abfragen/erstellen:

          Warum stoppt das Script den Intervall nicht?

          Wenn man das laufende Intervall nicht vorher stoppt, laufen mehrere Intervalle.

          Das Javascript asynchron läuft, war mir so nicht klar.

          Vielen Dank für die ausführliche Hilfe! Jetzt läuft alles wie ich es mir gewünscht habe! 👍

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

          Support us

          ioBroker
          Community Adapters
          Donate

          452
          Online

          31.9k
          Users

          80.2k
          Topics

          1.3m
          Posts

          2
          3
          415
          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