Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Aktion bei DWD-Warnung: irgendwas ist falsch

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Aktion bei DWD-Warnung: irgendwas ist falsch

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

      Hallo zusammen,

      ich greife die Wetterwarnungen des DWD ab. Gibt es eine Warnung für Unwetter (type=0) oder Sturm (type=1) und diese "schlimm" genug (level mind. 3), soll ein Bewässerungsstrang für 10 Minuten laufen.

      Das klappt an sich auch, allerdings wird das auch gestartet, wenn wie eben eine Warnung für Hitze (type=8) reinkommt - da soll das natürlich nicht laufen.

      Das Skript schaut so aus:
      b5372570-084e-43f0-8a76-a0bb12996471-grafik.png

      Die Warnung laut Debug-Mail:
      Warnstart0 durchgeführt, VT_Heute_Warnstart ist true; Type=8; Level =50; Warnung: Am Samstag wird eine starke Wärmebelastung erwartet. Samstag ist mit einer zusätzlichen Belastung aufgrund verringerter nächtlicher Abkühlung insbesondere im dicht bebauten Stadtgebiet von Fürth zu rechnen.

      VT_Heute_Warnstart ist eine Variable, die sicherstellt, dass es maximal ein Mal am Tag läuft - das klappt soweit.

      Wenn ich mir den Wert von Warning type ausgeben lasse, ist dieser aktuell 8 und mit einem kleinen Logik-Test auch nicht <=1 - warum wird es trotzdem gemacht?

      Definition des Typ-Werts:

        "_id": "dwd.0.warning.type",
        "type": "state",
        "common": {
          "name": "Warning type",
          "type": "number",
          "role": "weather.type",
          "read": true,
          "write": false,
          "states": {
            "0": "Thunderstorm",
            "1": "Wind/Storm",
            "2": "Rain",
            "3": "Snow",
            "4": "Fog",
            "5": "Frost",
            "6": "Ice",
            "7": "Thawing",
            "8": "Heat",
            "9": "UV warning"
          },
      

      MOD-EDIT: Code in code-tags gesetzt!

      Soll ich den Text abfragen statt die Zahl? Ich traue mich nicht recht, da laut Debug eben die Zahl zurückgegeben wird...

      Viele Grüße
      Bender275

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Bender275 last edited by Homoran

        @bender275 sagte in Aktion bei DWD-Warnung: irgendwas ist falsch:

        das klappt soweit.

        die Variable wird bei Skripstart nich befüllt und dürfte somit undefined sein.

        @bender275 sagte in Aktion bei DWD-Warnung: irgendwas ist falsch:

        Soll ich den Text abfragen statt die Zahl

        nein! das ist eine Werteliste

        was weiss denn das Skript über die Level und Typ?
        hast du da nal die Werte per debug ausgegeben?

        B 1 Reply Last reply Reply Quote 0
        • B
          Bender275 @Homoran last edited by

          @homoran sagte in Aktion bei DWD-Warnung: irgendwas ist falsch:

          die Variable wird bei Skripstart nich befüllt und dürfte somit undefined sein.

          513d6239-2ec2-4838-a96f-14bee99e88a8-grafik.png
          Doch, die ist befüllt, der Block war nur außerhalb des Screenshots - jetz mit komplettem Bild.

          @bender275 sagte in Aktion bei DWD-Warnung: irgendwas ist falsch:

          Soll ich den Text abfragen statt die Zahl

          nein! das ist eine Werteliste

          was weiss denn das Skript über die Level und Typ?
          hast du da nal die Werte per debug ausgegeben?

          Die Werte sind der Text in der Mail.

          Kurzer Test des Typs mit einem anderen Skript:
          c49a18bb-505e-4389-aed2-6b2c8d8a0d26-grafik.png

          B 1 Reply Last reply Reply Quote 0
          • B
            Bender275 @Bender275 last edited by

            Das Level wird richtig erkannt und verarbeitet.
            508153fb-b5d5-4425-a8bf-bda29bf68245-grafik.png

            Nur warum ist 8 in einem Skript kleiner 1 und im anderen nicht?

            T 1 Reply Last reply Reply Quote 0
            • T
              ticaki Developer @Bender275 last edited by ticaki

              @bender275

              Da muß ein ClearTimeout und Timeout (100ms) nach dem Falls Objekt rein.

              1. ist es undefiniert ob der Wert des Datenpunktes sich schon geändert hat wenn diese Funktion aufgerufen wird
              2. hat sich definitiv beim ersten Aufruf, der andere Datenpunkt noch nicht geändert.

              Benutze den schon ewig nicht mehr, aber der hat doch einen Datenpunkt für das Json, Trigger auf den und warte dann ein paar ms.

              B 1 Reply Last reply Reply Quote 1
              • B
                Bender275 @ticaki last edited by Bender275

                @ticaki
                Okay, ja, der level-Wert ist früher geändert als der Type-Wert.
                Habe jetzt ganz vorne eine Pause rein, mal schauen, ob das klappt.
                Danke für den Hinweis!

                Ich habe aber auch schon versucht, den Type auf 0 oder 1 abzufragen - trotzdem lief die Bewässerung los, obwohl der Wert ja dann undefined oder NULL wäre.

                T paul53 2 Replies Last reply Reply Quote 0
                • T
                  ticaki Developer @Bender275 last edited by ticaki

                  @bender275
                  hab mich missverständlich ausgedrückt:

                  undefiniert ist ob sich type schon von 0 auf 8 geändert hat, hat er nicht, ist es kleiner als 1 🙂

                  ah nachgeguckt, der ist ja null im nicht warn modus

                  Noch mehr edit, ist das Problem:

                  if (null < 1)log('bla')
                  javascript.0 (1489) script.js.Test.Skript_2: bla
                  
                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Bender275 last edited by paul53

                    @bender275 sagte: Habe jetzt ganz vorne eine Pause rein, mal schauen, ob das klappt.

                    Das klappt nicht, denn eine Pause verzögert nur.
                    Der Timeout muss mit dem zweiten Trigger gestoppt und neu gestartet werden.

                    Blockly_temp.JPG

                    @ticaki sagte in Aktion bei DWD-Warnung: irgendwas ist falsch:

                    der ist ja null im nicht warn modus

                    Es muss also zusätzlich auf != null geprüft werden.

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

                      @paul53 Danke, ist angepasst:
                      73d0f3c1-b812-4afa-933d-e141e122f983-grafik.png
                      Mal schauen, am Samstag Nacht soll es bei uns gewittern...

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        ticaki Developer @Bender275 last edited by ticaki

                        @bender275
                        Bildschirmfoto 2023-07-14 um 12.00.37.png

                        Um sicher zu sein mußt du noch prüfen ob der Wert nicht den gleichen Typ hat.

                        in Javascript wäre das ein val !== null aber das scheints im Blockly nicht zu geben

                        Im Bild wäre ein durchgestrichtes = sinnvoller gewesen hab typ number nicht gefunden

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

                          @ticaki sagte: mußt du noch prüfen ob der Wert nicht den gleichen Typ hat.

                          Die Prüfung auf 0 oder 1 ist ausreichend. Siehe hier

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            ticaki Developer @paul53 last edited by

                            @paul53
                            stimmt, Danke

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            857
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            4
                            12
                            669
                            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