Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Umrechnung Füllstand funktioniert nicht mehr

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Umrechnung Füllstand funktioniert nicht mehr

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

      @mb11 Du aktualisierst "Fuellstand" über "ESP SR04 Distance" und nicht mit "Liter im Tank" ist das richtig?

      MartinP 1 Reply Last reply Reply Quote 0
      • MartinP
        MartinP @geschild last edited by MartinP

        @geschild Es könnte sein dass der Füllstand über einen Distanzsensor ermittelt wird.

        Wenn ja: @MB11 Wie schaut denn der Zeitstempel des Datenpunktes des Sensors aus?
        Vielleicht liefert der keine Werte mehr. Ein Wassertank ist eine feindliche Umgebung für Elektronik....

        M 1 Reply Last reply Reply Quote 0
        • M
          MB11 last edited by

          @geschild @geschild ja aktualisiere über den Sensor

          1 Reply Last reply Reply Quote 0
          • M
            MB11 @MartinP last edited by

            @martinp
            Zeitstempel ist immer aktuell das passt
            Der Sensor ist verschlossen die Elektronik ist im Haus!

            Wie gesagt das hat ja biss jetzt auch immer Funktioniert .

            MartinP 1 Reply Last reply Reply Quote 0
            • MartinP
              MartinP @MB11 last edited by

              @mb11 Ändert sich denn der Rohwert vom Sensor?

              "Sichtfeld" des Sensors verschmutzt?

              M 1 Reply Last reply Reply Quote 0
              • M
                MB11 @MartinP last edited by

                @martinp
                Ja der Wert ändert sich das passt auch.
                Das komische ist wenn ich zb. bei dem Skript X10 anstatt X100 eintrage dann kommt ein Wert was aber nicht stimmen kann.!"
                b7b1e941-ce09-46b8-87cd-900937847002-image.png
                1e5ca445-3740-46e5-b791-9542dc726b3f-image.png

                Da Die Zisterne Gesamt 6500 L hat und eine Höhe von 2,1Meter und die Max Füllung bis zum Sensor sind 15 cm entfernt
                6500:210=31

                Nun habe ich nach stunden probieren und Logischem Denken das hier probiert

                c35d5eea-1bca-4ade-beee-574171ebde39-image.png
                aa9ed755-632c-4f16-b304-dc4b18aa665a-image.png

                nun Passt das so einiger maßen aber nicht zu 100 % da die 15 cm ich nicht mit rein nehmen konnte .
                Dann frage ich mich Wiso das mit der vorigen Berechnung lange zeit funktioniert hat .

                MartinP 2 Replies Last reply Reply Quote 0
                • MartinP
                  MartinP @MB11 last edited by

                  @mb11 ist das ein aufrecht stehender Zylinder?

                  bzgl Deines zweiten Screenshots:

                  Hast Du Dir mal die Javascript Version der Berechnung angeschaut? Ich weiß nicht, inwieweit da "Punktrechnung vor Strichrechnung" und die Schachtelung von Blockly Elementen ineinandergreift ...

                  Bin auch noch nicht so ganz fit in diesen Blockly Details...

                  1 Reply Last reply Reply Quote 0
                  • MartinP
                    MartinP @MB11 last edited by MartinP

                    @mb11 sagte in Umrechnung Füllstand funktioniert nicht mehr:

                    nun Passt das so einiger maßen aber nicht zu 100 % da die 15 cm ich nicht mit rein nehmen konnte .

                    Versuche es mal mit "225 - ..." statt mit "210 - .." Wenn der Mindest - Abstand 15 cm ist, kommt als Maximalwert (225 -15) * 31 = 651 heraus...

                    Dann frage ich mich Wiso das mit der vorigen Berechnung lange zeit funktioniert hat .

                    War der Sensor womöglich irgendwann mal auf "Zoll" statt auf "cm" konfiguriert?

                    Ist das dieser Tank:

                    1b42a2e2-09fc-4a5d-be11-3ab5baf2a716-grafik.png

                    Da würde ich die Höhe des Ablaufhahns auch noch abziehen, da man an das niedriger liegende Wasser auch nicht dran kommt ...

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MB11 @MartinP last edited by

                      @martinp
                      So sieht der Tank aus !

                      884f93bf-1537-4e64-ae32-09a351a67d4a-image.png

                      Das habe ich mir auch schon überlegt das ich anstatt 210 ( 225 ) eintrage dann würde es auch wieder passen.
                      Der Sensor ist auf cm eingestellt.

                      ich bin froh damit ich es jetzt wieder so hinbekommen habe , eben auf eine andere Art wie vorhin 🙂

                      MartinP B 2 Replies Last reply Reply Quote 0
                      • MartinP
                        MartinP @MB11 last edited by

                        Bei der Geometrie kann man nicht einfach mit Grundfläche x aktueller Höhe rechnen.

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

                          @mb11
                          Mein Tank sieht ähnlich aus. Die "korrekte Berechenung" als JavaScript sieht in etwa so aus:

                          const idR = '0_userdata.0.Berechnungsvariablen.Gewerke.Wasser.Zisterne.radius';       // Radius in dm
                          const idL = '0_userdata.0.Berechnungsvariablen.Gewerke.Wasser.Zisterne.laenge';       // Länge in dm
                          const idVol = '0_userdata.0.Berechnungsvariablen.Gewerke.Wasser.Zisterne.liter';       // zu schreibender Wert in l
                          const idh = '0_userdata.0.Berechnungsvariablen.Gewerke.Wasser.Zisterne.hoehe';   // Höhes in dm
                           
                          const R = getState(idR).val;
                          const L = getState(idL).val;
                           
                          function h2V(h) {
                             let V = L * (R * R * Math.acos(1 - h / R) - (R - h) * Math.sqrt(h * (2 * R - h)));
                             setState(idVol, Math.round(V), true); // in l
                          }
                           
                          function h3V(h) {
                             let V2 = ((h-16) * (2.5 * 2.5)) + 4021;
                             setState(idVol, Math.round(V2), true); // in l
                          }
                           
                          h2V(getState(idh).val); // Skriptstart
                          h3V(getState(idh).val); // Skriptstart
                          /* 
                          on(idh, function(dp) {
                              h2V(dp.state.val);
                          });
                          */
                          
                          on({ id: [].concat(['0_userdata.0.Berechnungsvariablen.Gewerke.Wasser.Zisterne.hoehe']), change: 'ne' }, async (obj) => {
                            let value = obj.state.val;
                            let oldValue = obj.oldState.val;
                            if ((obj.state ? obj.state.val : '') <= 16) { h2V(obj.state.val);
                            } else { h3V(obj.state.val);
                            }
                          });
                          


                          Messe die Höhe mit einer Druckdose, daher müsstest du die Höhe invertieren. V2H ist der liegende Zylinder, V3H ist der stehende Zylinder.
                          V3H nimmt bei mir ein vollen liegenden Zylinder an, da die Druckdose leider etwas schwankt.

                          MartinP 1 Reply Last reply Reply Quote 0
                          • MartinP
                            MartinP @bommel_030 last edited by

                            @bommel_030 Bei den Formen vereinfacht man ja eh, wenn man das in eine Formel gießt (Glatter nicht gewölbter Zylinderdeckel usw.), von da her kann man ggfs auch mit einer Look-Up Table arbeiten. Je nachdem, was für eine Genauigkeit man braucht, würden ggfs 50 ... 100 Einträge reichen. Dazwischen linear interpolieren ...

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            408
                            Online

                            31.9k
                            Users

                            80.3k
                            Topics

                            1.3m
                            Posts

                            4
                            13
                            430
                            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