Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Durchfluss von Bier messen

    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

    Durchfluss von Bier messen

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

      @Phips_CH:

      Die Impulse sehe ich ja dann im ioBroker an den GPIO. `

      Da bin ich überfragt ob die GPIOs der Raspberry im ioBroker abgefragt werden können, falls dem so ist dann sollte das mit Javascript recht einfach umzusetzen sein.

      Beim Flankenwechsel des Impulses (Achtung nur eine Flanke nutzen) ein Javascript auslösen welches in einem Datenpunkt einen Wert hochzählt, ein weiteres Javascript welches regelmässig z.B. jede Minute den Wert aus dem 1. Datenpunkt liest, umrechnet und in einen 2. Datenpunkt schreibt und anschliessend den 1. Datenpunkt zurücksetzt. Den 2. Datenopukt kannst du loggen und später mit Flot einen Graphen daraus bauen.

      Meine Idee war eher mittels Phyton oder einer anderen Programmiersprache die Impulse zu zählen und in Liter/Min umzurechnen. Den errechneten Wert dann mittels MQTT an den ioBroker senden und dort dann den Datenpunkt loggen, dann kannst du dir mit Flot einen Graphen bauen.

      EDIT:

      Gerade den Thread gefunden der beschreibt wie man die GPIO in ioBroker nutzt. viewtopic.php?t=3927 werde ich die Tage wohl ein wenig mit rumspielen. 😉

      1 Reply Last reply Reply Quote 0
      • P
        Phips_CH last edited by

        > Beim Flankenwechsel des Impulses (Achtung nur eine Flanke nutzen) ein Javascript auslösen welches in einem Datenpunkt einen Wert hochzählt, ein weiteres Javascript welches regelmässig z.B. jede Minute den Wert aus dem 1\. Datenpunkt liest, umrechnet und in einen 2\. Datenpunkt schreibt und anschliessend den 1\. Datenpunkt zurücksetzt. Den 2\. Datenopukt kannst du loggen und später mit Flot einen Graphen daraus bauen.

        Kannst du mir dabei behilflich sein, wie ich das in Java machen muss. Habe bis jetzt noch nichts mit Java gemacht. oder geht allenfalls auch mit Blockly?

        1 Reply Last reply Reply Quote 0
        • P
          Phips_CH last edited by

          Ich weiss grad nicht wie ich da weiter komme.

          Wie muss das Blocky oder Java-Skript aussehen, damit ich die Impulse vom Durchflussmesser zählen kann und in Liter anzeigen kann.

          Wie viele impulse ich für einen Liter habe kann ich noch nicht sagen.

          Besten Dank schon jetzt

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

            Nur nochmal als Zwischenfrage: Die Impulse vom Durchflussmesser siehst du bereits im ioBroker am entsprechenden GPIO des RPi-Adapters? Wenn ja, dann ist das ja schon mehr als die halbe Miete. Da mach ich dir heute Abend wenn ich am System bin mal ein Beispielscript"chen"…

            1 Reply Last reply Reply Quote 0
            • P
              Phips_CH last edited by

              @Thisoft:

              Nur nochmal als Zwischenfrage: Die Impulse vom Durchflussmesser siehst du bereits im ioBroker am entsprechenden GPIO des RPi-Adapters? `

              Die Impulse so habe ich noch nicht geprüft.

              Habe aber mal mit einem Datenlogger geschaut und die Impulse gesehen. Müsst also gehen.

              Die Impulse kommen ja von einem Hallsensor.

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

                Naja - der Sensor wird schon funktionieren… Die Frage ist, ob die Signale auch bereits im ioBroker ankommen? Das müsste dann in den Objekten ungefähr so aussehen:
                250_gpio_state.jpg
                Wobei sich dann der eingerahmte Wert im Rhythmus der Impulse ändern müsste.

                Wenn du das hast dann ist der Rest relativ einfach, wenn nicht gibt's noch bisschen was zu tun…

                1 Reply Last reply Reply Quote 0
                • P
                  Phips_CH last edited by

                  Ich befürchte, dass mein Durchflussmesser nicht mehr funktioniert. denn ich sehe das Signal nicht. Werde morgen mal schauen ob ich das SIgnal mit einem Datenlogger noch sehe.

                  1 Reply Last reply Reply Quote 0
                  • P
                    Phips_CH last edited by

                    Wie befürchtet, hat mein Durchflussmesser aus China den Geist aufgegeben.

                    Nun hab ich mir ein neues bestellt.

                    Nur die schnellen Impulse lassen sich nicht anzeigen. da sie zu schnell für das System sind.

                    Ich habe nun eine Siemens Logo eingesetzt, wo ich die Impulse sehen kann. Da setze ich nach einer gewissen azahl Impulse einen Merker oder einen Ausgang, den ich in ioBroker sehen kann.

                    @Thisoft:

                    Wenn ja, dann ist das ja schon mehr als die halbe Miete. Da mach ich dir heute Abend wenn ich am System bin mal ein Beispielscript"chen"… `

                    Darf ich auf dein Angebot zurückkommen? nun möchte ich einfach die Impulse des Merkers zählen. Ich denke ein Impuls entspricht 0.1Liter Bier. die Skalierung werde ich im Logoprogramm machen.

                    Besten Dank schon jetzt

                    Gruss

                    Philipp

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

                      @Phips_CH:

                      Ich habe nun eine Siemens Logo eingesetzt, wo ich die Impulse sehen kann. Da setze ich nach einer gewissen azahl Impulse einen Merker oder einen Ausgang, den ich in ioBroker sehen kann. `

                      Klingt ja soweit schon ganz gut. Kannst du mal nen Screenshot davon machen was du jetzt im ioBroker siehst?

                      1 Reply Last reply Reply Quote 0
                      • P
                        Phips_CH last edited by

                        Bei Merker 0 steht dann true

                        2604_biermeter.jpg

                        1 Reply Last reply Reply Quote 0
                        • P
                          Phips_CH last edited by

                          Ich habe mit Blockly mal etwas versucht. allerdings nicht sehr erfolgreich.

                          2604_z_hler.jpg

                          Was mache ich falsch?

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

                            Hallo Phips_CH,

                            hab's gestern abend nicht mehr geschafft - hab z.Z. paar zu viele Baustellen;-)

                            Mit Blockly hab ich's gar nicht so, aber wenn dir das lieber ist als Javascript dann versuchs ruhig damit. Ist ja sowieso besser wenn du zum Schluss was gelernt hast dabei;-)

                            Was mir an deinem Blockly auffällt ist:

                            "ist größer als letztes" - das wird so nicht klappen da ein "true" ja nicht zwingend größer ist als ein "false". Ich weiß jetzt nicht was Blockly alles für Auswahlen anbietet… Versuchs mal mit "ist gleich true" oder so ähnlich

                            1 Reply Last reply Reply Quote 0
                            • P
                              Phips_CH last edited by

                              Kein Problem

                              Für mich ist Blockly etwas verständlicher. (auf den ersten Blick)

                              Ich habe mal auf "true" gewechselt

                              Hier mal den Java-Skript aus dem Blockly.

                              var Biermeter;
                              
                              on({id: 's7.0.Inputs.0.4', val: true, ack: true}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                while (Biermeter < 1000000000) {
                                  Biermeter = (typeof Biermeter == 'number' ? Biermeter : 0) + 1;
                                }
                              });
                              
                              
                              1 Reply Last reply Reply Quote 0
                              • Thisoft
                                Thisoft last edited by

                                Und - tut sich was?

                                Falls nicht würde ich als erstes mal das "Wiederhole solange Biermeter < 1000000000" weglassen. Weiterhin würde ich "anerkannt ist" erstmal auf "egal" stellen… Und - bitte zuerst mal eine Loggingausgabe mit einbauen (sollte doch in Blockly auch gehen -oder?) die dir jeweils den Wert der Variablen "Biermeter" anzeigt. So wie's jetzt ist kannst du ja gar nicht mitbekommen ob das Script was tut. Später musst du den Wert dann natürlich noch in einen Datenpunkt schreiben...

                                1 Reply Last reply Reply Quote 0
                                • P
                                  Phips_CH last edited by

                                  Wie mache ich eine Logikausgabe?

                                  Wenn der Merker aktive ist, schaltet in den Objekten der Skript auf rot. Das heisst doch das der Skript gestartet wird.

                                  Aber was er macht, oder wieso er nicht Zählt sehe ich nicht.

                                  Ich habe bei Objekte einen Datenpunkz erstellt. dieser habe ich Biermenge genannt.

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

                                    @Phips_CH:

                                    Ich habe bei Objekte einen Datenpunkz erstellt. dieser habe ich Biermenge genannt. `

                                    Das ist schon mal sehr gut 😉 Nur kann ich dir leider nicht so aus dem Hut sagen wie du den in Blockly mit dem neuen Wert beschreiben musst… Ich mach's deshalb mal als Javascript:

                                    var dpBiermeter = "s7.0.Biermenge"  //hier musst du deinen Datenpunkt eintragen
                                    on({id: 's7.0.Inputs.0.4', val: true}, function (obj) {
                                      setState(dpBiermeter,getState(dpBiermeter).val + 1,true);
                                      //log("Biermenge um 1 hochgezählt"); //wenn die Zeile ins Log geschrieben werden soll kannst du die vorderen beiden // löschen
                                    });
                                    
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      Phips_CH last edited by

                                      Hab es hinbekommen.

                                      Ich hatte den Überlegungsfehler drin. dass wenn der Merker true ist. ich eine Schlaufe starte. Das geht natürlich nicht. Bis ich dann geschnallt habe, das ich nur 1 hochzählen muss.

                                      Ist es möglich, die History zu löschen resp. zu leeren?

                                      ich habe jetzt durch das Probieren in Flot schon Werte drin, die ich geleert haben möchte.

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

                                        Klingt doch gut. Dann kannst du ja jetzt mal den Durchfluss ein wenig pushen 😉

                                        History leeren geht nur über Umwege. Der einfachste wäre m.E. die "Aufbewahrungszeit" auf den kürzesten Zeitraum (1 Tag??) zu stellen und halt so lange zu warten…

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate
                                        FAQ Cloud / IOT
                                        HowTo: Node.js-Update
                                        HowTo: Backup/Restore
                                        Downloads
                                        BLOG

                                        880
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        21
                                        3524
                                        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