Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Iobroker Blockly Probleme Subtraktion

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Iobroker Blockly Probleme Subtraktion

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

      Moin,

      ich errechne derzeit die Werte meines Regensensors via Blockly.

      Hier habe ich das folgende Verhalten. Ich setze zeitgesteuert Startwerte. Bei Änderung des Regensensors führe ich Berechnungen aus und schreibe das Ergebnis wieder in entsprechende Datenpunkte.

      Als Beispiel hier:

      Datenpunkt RegenTagesbeginn wurde um 00:00Uhr auf 63.9 gesetzt -> soweit o.K.

      Berechnung jetzt, sobald sich Wert Regensensor ändert, aktualisiere RegenHeute mit Wert Sensor_Total - RegenTagesbeginn

      In meinem Beispiel: 64.8-63.9

      Ich würde als Ergebnis 0.9 erwarten. Tatsächlich steht aber im Datenpunkt der Wert 0.8999999999999986

      Was wird denn da Intern gerechnet? Man kann hier sicherlich mit Runden nachhelfen, aber warum ist das so?

      Das eigentliche Problem, was ich habe. Ich übertrage die Wetterdaten Richtung WU, habe mir hier ein Scriptbeispiel aus dem Forum angepasst. Da die Werte in Inch übertragen werden vermute ich hier Rundungsfehler o. Ä, die Werte auf WU weichen leicht von den eigentlichen Werten ab.

      Beispiel für Heute: der Wert Regen / Stunde war zwischen 03:00 und 04:00 0.6mm. WU zeigt 0.5mm. Der Regen Total heute ist eigentlich 0.9mm. WU zeigt 1.02mm,

      https://www.wunderground.com/personal-w … 14#history

      Gruß

      Matze

      Gruß

      Matze

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

        Keiner eine Idee?

        Das witzige ist, es kommen nicht immer krumme Werte dabei raus. :roll:

        ! schedule("*/15 * * * *", function () { if (getState("Datenpunkte.0.RegenAktuell").val == getState("Datenpunkte.0.RegenStunde").val) { setState("Datenpunkte.0.RegenAktuell"/*RegenAktuell*/, 0, true); } }); schedule("0 * * * *", function () { setState("Datenpunkte.0.RegenStundenbeginn"/*RegenStundenbeginn*/, getState("rflink.1.channels.DKW2012_1.RAIN").val, true); setState("Datenpunkte.0.RegenStunde"/*RegenStunde*/, 0, true); }); schedule("0 0 * * *", function () { setState("Datenpunkte.0.RegenTagesbeginn"/*RegenTagesbeginn*/, getState("rflink.1.channels.DKW2012_1.RAIN").val, true); setState("Datenpunkte.0.RegenGestern"/*RegenGestern*/, getState("Datenpunkte.0.RegenHeute").val, true); setState("Datenpunkte.0.RegenHeute"/*RegenHeute*/, 0, true); }); schedule("0 0 * * 0", function () { setState("Datenpunkte.0.RegenWochenbeginn"/*RegenWochenbeginn*/, getState("rflink.1.channels.DKW2012_1.RAIN").val, true); setState("Datenpunkte.0.Regen_Woche"/*Regen_Woche*/, 0, true); }); schedule("1 0 1 * *", function () { setState("Datenpunkte.0.RegenMonatsbeginn"/*RegenMonatsbeginn*/, getState("rflink.1.channels.DKW2012_1.RAIN").val, true); setState("Datenpunkte.0.Regen_Monat"/*Regen_Monat*/, 0, true); }); on({id: "rflink.1.channels.DKW2012_1.RAIN"/*DKW2012_ 1 Total rain level*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("Datenpunkte.0.RegenAktuell"/*RegenAktuell*/, (getState("rflink.1.channels.DKW2012_1.RAIN").val - getState("Datenpunkte.0.RegenStundenbeginn").val), true); setState("Datenpunkte.0.RegenStunde"/*RegenStunde*/, (getState("rflink.1.channels.DKW2012_1.RAIN").val - getState("Datenpunkte.0.RegenStundenbeginn").val), true); setState("Datenpunkte.0.RegenHeute"/*RegenHeute*/, (getState("rflink.1.channels.DKW2012_1.RAIN").val - getState("Datenpunkte.0.RegenTagesbeginn").val), true); setState("Datenpunkte.0.Regen_Woche"/*Regen_Woche*/, (getState("rflink.1.channels.DKW2012_1.RAIN").val - getState("Datenpunkte.0.RegenWochenbeginn").val), true); setState("Datenpunkte.0.Regen_Monat"/*Regen_Monat*/, (getState("rflink.1.channels.DKW2012_1.RAIN").val - getState("Datenpunkte.0.RegenMonatsbeginn").val), true); }); !
        3514_datenpunkte.png
        3514_blockly.png

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

          http://www.dcljs.de/faq/antwort.php?Ant … en_rechnen

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

            Danke für die Antwort. Das macht einiges klar.

            Gruß

            Matze

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

            Support us

            ioBroker
            Community Adapters
            Donate

            740
            Online

            31.7k
            Users

            79.8k
            Topics

            1.3m
            Posts

            2
            4
            732
            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