Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Erledigt] Hilfe IF zum Zahlen Vergleich

    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

    [Erledigt] Hilfe IF zum Zahlen Vergleich

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

      Hallo,

      finde in meinem Script den Fehler nicht, hoffe Ihr könnt mir helfen.

      Das Script soll den billigsten Dieselpreis mit einem von mir definierten Schwellwert vergleichen.

      Wenn der Dieselpreis kleiner gleich dem Schwellwert ist, soll eine Pushbenachrichtigung versendet werden.

      Das Versenden der Pushnachricht klappt. Allerdings bei jeder Aktualisierung wird if und else if aktiv.

      /* Tanken Schwellwert Pushmitteilung
      
      */
      
      var idTankenBillig = "tankerkoenig.0.stations.cheapest.diesel.feed"; //Günstigste Diesel Tankstelle feed
      var gidTankenBillig = getState("tankerkoenig.0.stations.cheapest.diesel.feed").val;
      var idSchwellwert = 1.219;
      
      function meldung_push (text, titel, prio) {
          sendTo("pushover", { 
              message: text, 
              title: titel, 
              priority: prio 
          }); 
      } 
      
      on({ 
          id: idTankenBillig,
          change: "any"
      }, function (obj) {
          if (obj.state.val <= idSchwellwert){
              log('Tanken billig');
              log('Schwellwert ' + idSchwellwert);
              log('Dieselpreis ' + idTankenBillig);
              var status = 'Tanken billig. ',
              betreff = 'ioBroker Meldung'; 
      
              status = status;
              meldung_push(status, betreff, 1); 
              log('Push Meldung gesendet');
          }
          else{
              log('Tanken teuer');
              log('Schwellwert ' + idSchwellwert);
              log('Dieselpreis ' + getState(idTankenBillig).val);        
          }
      });
      

      Hier die Log-Ausgabe
      ` > 20:28:03.397 [info] javascript.0 script.js.Allgemein.Tanken_Schwellwert: Tanken billig

      20:28:03.397 [info] javascript.0 script.js.Allgemein.Tanken_Schwellwert: Schwellwert 1.239

      20:28:03.399 [info] javascript.0 script.js.Allgemein.Tanken_Schwellwert: Dieselpreis tankerkoenig.0.stations.cheapest.diesel.feed

      20:28:03.399 [info] javascript.0 script.js.Allgemein.Tanken_Schwellwert: Push Meldung gesendet

      20:28:03.846 [info] javascript.0 script.js.Allgemein.Tanken_Schwellwert: Tanken teuer

      20:28:03.846 [info] javascript.0 script.js.Allgemein.Tanken_Schwellwert: Schwellwert 1.239

      20:28:03.846 [info] javascript.0 script.js.Allgemein.Tanken_Schwellwert: Dieselpreis 1.249 `
      Danke für Eure Hilfe

      Zippolighter

      1 Reply Last reply Reply Quote 0
      • BuZZy
        BuZZy last edited by

        Option "Werte vor jeder Aktualisierung nullen" in den Einstellungen deiner Tankerkönig-Instanz deaktivieren! 😄

        3092_screenshot_-_24.08.2018___20_56_38.png

        Gruß

        1 Reply Last reply Reply Quote 0
        • Z
          Zippolighter last edited by

          Danke für die Info, aber das war es nicht.

          Haken war gesetzt.

          Die Log Ausgabe zeigt ja auch das die Werte unterschiedlich sind, trotzdem if und else beide abgearbeitet werden

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

            @Zippolighter:

            log('Dieselpreis ' + idTankenBillig);
            ```` `  
            

            Was soll dieser Log aussagen ? Um zu sehen, woran es liegt, ändere die Logreihenfolge

            on(idTankenBillig, function (obj) {
                log('Schwellwert ' + idSchwellwert);
                log('Dieselpreis ' + obj.state.val);
                if (obj.state.val <= idSchwellwert) {
                    log('Tanken billig');
                    var status = 'Tanken billig',
                    var betreff = 'ioBroker Meldung'; 
                    meldung_push(status, betreff, 1); 
                    log('Push Meldung gesendet');
                } else log('Tanken teuer');
            });
            
            1 Reply Last reply Reply Quote 0
            • BuZZy
              BuZZy last edited by

              @Zippolighter:

              Danke für die Info, aber das war es nicht.

              Haken war gesetzt. `

              Du sollst den Haken ja auch bei dir raus nehmen (deswegen sagte ich deaktivieren)!

              😄

              Gruß

              1 Reply Last reply Reply Quote 0
              • Z
                Zippolighter last edited by

                Nachdem ich dann endlich auf Euch gehört habe, funktioniert es natürlich auch.

                Danke für die Hilfe

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

                Support us

                ioBroker
                Community Adapters
                Donate

                774
                Online

                31.7k
                Users

                79.9k
                Topics

                1.3m
                Posts

                3
                6
                398
                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