Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. EZOGateway; Watermonitoring

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    EZOGateway; Watermonitoring

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

      @JohnnyBahama sagte:

      über den SIMPLE-API Adapter einbinden, ist der Gedankengang richtig?

      Die Simple-API des ioBrokers erlaubt den Zugriff auf ioBroker-Datenpunkte über das Netzwerk von außen. Auf die Daten des EZOGateways sollte man per request() (Javascript-Adapter) zugreifen können.

      const url = 'http://<IP address>/api/fetch'; // IP-Adresse eintragen !
      const idTemp = '0_userdata.0.EZO.Temperatur';
      const idPH = '0_userdata.0.EZO.PH-Wert';
      const idRedox = '0_userdata.0.EZO.Redox-Potential';
      
      schedule('* * * * *', function() { // jede Minute
          request(url, function(error, response, result) {
              let obj = JSON.parse(result);
              setState(idTemp, obj['1'].Value, true);
              setState(idPH, obj['2'].Value, true);
              setState(idRedox, obj['3'].Value, true);
          });
      });
      
      J W 3 Replies Last reply Reply Quote 1
      • 100prznt
        100prznt last edited by 100prznt

        Die von @paul53 aufgezeigte Lösung funktioniert hervorragend. Nicht an den Messwerten stören lassen, hab am Testgerät keine Elektroden angeschlossen:

        Objekte

        Zu beachten ist nur, dass im EzoGateway der Cyclic Updater aktiviert wird, andernfalls würden die Messwerte nur per Trigger aktualisiert werden:

        Objekte

        Grüße Elias

        1 Reply Last reply Reply Quote 1
        • 100prznt
          100prznt @homecineplexx last edited by

          @homecineplexx

          Was genau brauchst du denn? Für die einzelnen Komponenten auf Basis des Whiteboxes Tentacle T3 sind im Wiki Bezugsquellen genannt: https://github.com/100prznt/EzoGateway/wiki/Stückliste

          Die Hardwarelösung (Platine) ist so leider noch nicht verfügbar.

          Grüße Elias

          H 1 Reply Last reply Reply Quote 0
          • H
            homecineplexx @100prznt last edited by

            @100prznt danke für den input, aber wie komm ich dann zu den ganzen hardware-sachen? gibts die zu kaufen?

            100prznt 1 Reply Last reply Reply Quote 0
            • 100prznt
              100prznt @homecineplexx last edited by

              @homecineplexx sagte in EZOGateway; Watermonitoring:

              [...] wie komm ich dann zu den ganzen hardware-sachen? gibts die zu kaufen?

              Ja, für den Aufbau mit dem Whitebox Carrieer "Tentacle T3", wie hier auf dem Foto:

              Whitbox T3

              Die EZO Module (pH, ORP, RTD) und auch das Tentacle T3 (die fertig aufgebaute Trägerplatine) kannst du direkt bei Whitbox Labs bestellen: https://www.whiteboxes.ch/shop/ oder bei EXP-Tech, siehe Stückliste.

              Grüße Elias

              1 Reply Last reply Reply Quote 0
              • J
                JohnnyBahama last edited by

                Danke Elias dass du hier auch nochmal aktiv bist. Ich hatte im Poolforum auch schon mal nachgefragt und genau die Elemente wären es, die ich mir auch zulegen würde.
                Da es zu funktionieren scheint, werde ich mir das mal zulegen.

                Alternativ ohne IObroker wäre das Ph-803 Messgerät, welches Steckdosen schaltet für die Befüllung. Wäre dann nur ein Regelkreis ohne smart.

                1 Reply Last reply Reply Quote 1
                • J
                  JohnnyBahama @paul53 last edited by

                  @paul53 Danke fürs feedback

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

                    @paul53 sagte in EZOGateway; Watermonitoring:

                    @JohnnyBahama sagte:

                    über den SIMPLE-API Adapter einbinden, ist der Gedankengang richtig?

                    Die Simple-API des ioBrokers erlaubt den Zugriff auf ioBroker-Datenpunkte über das Netzwerk von außen. Auf die Daten des EZOGateways sollte man per request() (Javascript-Adapter) zugreifen können.

                    const url = 'http://<IP address>/api/fetch'; // IP-Adresse eintragen !
                    const idTemp = '0_userdata.0.EZO.Temperatur';
                    const idPH = '0_userdata.0.EZO.PH-Wert';
                    const idRedox = '0_userdata.0.EZO.Redox-Potential';
                    
                    schedule('* * * * *', function() { // jede Minute
                        request(url, function(error, response, result) {
                            let obj = JSON.parse(result);
                            setState(idTemp, obj['1'].Value, true);
                            setState(idPH, obj['2'].Value, true);
                            setState(idRedox, obj['3'].Value, true);
                        });
                    });
                    

                    Ich versuche das gerade einzubinden, aber irgendwie klappt das nicht so. Mit IP Adresse ist sicherlich die vom EZO gemeint. Nur egal ob mit oder ohne port, ich komme zu keiner Verbindung.
                    Mit Port kommt folgende Meldung: Request error: Error: connect EHOSTUNREACH
                    Ohne Port fügt er selbstständig den Port 80 hinzu, was dann zur gleichen Meldung führt.
                    Zusätzlich wirft er noch das aus: Error in request callback: SyntaxError: Unexpected token u in JSON at position 0
                    Muss ich in zeile 6 noch etwas eintragen? Was muss gemacht werden für std intervall?
                    Die Objekte werden auch nicht angelegt, denke mal das passiert erst,sobald der erste Wert kommt oder?

                    Momentan sind noch keine Sensoren angeschlossen, um Fehler zu vermeiden.

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

                      @JohnnyBahama sagte:

                      Unexpected token u in JSON at position 0

                      Weil nichts in result geliefert wird. Mach eine zusätzliche Abfrage:

                          request(url, function(error, response, result) {
                              if(!error && result) {
                                  let obj = JSON.parse(result);
                                  setState(idTemp, obj['1'].Value, true);
                                  setState(idPH, obj['2'].Value, true);
                                  setState(idRedox, obj['3'].Value, true);
                              }
                          });
                      

                      @JohnnyBahama sagte in EZOGateway; Watermonitoring:

                      Die Objekte werden auch nicht angelegt, denke mal das passiert erst,sobald der erste Wert kommt oder?

                      Die Datenpunkte müssen manuell im Tab "Objekte" angelegt werden.

                      J 1 Reply Last reply Reply Quote 1
                      • J
                        JohnnyBahama @paul53 last edited by JohnnyBahama

                        @paul53
                        Ist das so richtig?
                        Objekte sind jetzt unter 0_userdata.0 angelegt.
                        2020-08-27 23_05_49-objects - ioBroker.jpg

                        Das Skript von dir mit in das erste kopieren oder in ein eigenes?
                        Bin nicht so bewandert in der Prgrammiersprache. Habe es momentan zusammen.

                        const url = 'http://192.******.61:591/api/fetch'; // <-IP-Adresse vom EZO 
                        const idTemp = '0_userdata.0.EZO.Temperatur';
                        const idPH = '0_userdata.0.EZO.PH-Wert';
                        const idRedox = '0_userdata.0.EZO.Redox-Potential';
                         
                        schedule('* * * * *', function() { // jede Minute
                            request(url, function(error, response, result) {
                                let obj = JSON.parse(result);
                                setState(idTemp, obj['1'].Value, true);
                                setState(idPH, obj['2'].Value, true);
                                setState(idRedox, obj['3'].Value, true);
                            });
                        });
                            request(url, function(error, response, result) {
                                if(!error && result) {
                                    let obj = JSON.parse(result);
                                    setState(idTemp, obj['1'].Value, true);
                                    setState(idPH, obj['2'].Value, true);
                                    setState(idRedox, obj['3'].Value, true);
                                }
                            });
                        

                        Neue Meldung: Error in request callback: TypeError: Cannot read property 'Value' of undefined

                        paul53 100prznt 2 Replies Last reply Reply Quote 0
                        • paul53
                          paul53 @JohnnyBahama last edited by

                          @JohnnyBahama

                          const url = 'http://192.******.61:591/api/fetch'; // <-IP-Adresse vom EZO 
                          const idTemp = '0_userdata.0.EZO.Temperatur';
                          const idPH = '0_userdata.0.EZO.PH-Wert';
                          const idRedox = '0_userdata.0.EZO.Redox-Potential';
                           
                          schedule('* * * * *', function() { // jede Minute
                              request(url, function(error, response, result) {
                                  if(!error && result) {
                                      let obj = JSON.parse(result);
                                      setState(idTemp, obj['1'].Value, true);
                                      setState(idPH, obj['2'].Value, true);
                                      setState(idRedox, obj['3'].Value, true);
                                  }
                              });
                          });
                          
                          1 Reply Last reply Reply Quote 0
                          • 100prznt
                            100prznt @JohnnyBahama last edited by

                            @JohnnyBahama Läuft das EzoGateway ordnungsgemäß? Einfach mal die URL direkt im Browser aufrufen. Da sollten dir die Messwerte schon mal im JSON Format angezeigt werden, so zum Beispiel:

                            URL: http://<IP EzoGateway>:<Port EzoGateway>/api/fetch

                            {
                              "1": {
                                "Name": "Temperature",
                                "Timestamp": "2020-08-28T12:38:37.2146236+02:00",
                                "Value": -1025.858,
                                "Unit": "Celsius",
                                "Symbol": "\u00b0C"
                              },
                              "2": {
                                "Name": "PH value",
                                "Timestamp": "2020-08-28T12:38:37.2146236+02:00",
                                "Value": 3.938,
                                "Unit": "",
                                "Symbol": ""
                              },
                              "3": {
                                "Name": "Redox potential",
                                "Timestamp": "2020-08-28T12:38:37.2146236+02:00",
                                "Value": -373.2,
                                "Unit": "Millivolt",
                                "Symbol": "mV"
                              }
                            }
                            

                            Damit die Messwerte automatisch aktualisiert werden muss der Cyclic Updater in den Settings aktiviert werden. Oder man muss zyklisch den ACQ Befehl auslösen.

                            J 1 Reply Last reply Reply Quote 0
                            • J
                              JohnnyBahama @100prznt last edited by JohnnyBahama

                              @100prznt Nein. Wenn ich die Url eingebe dann bekomme ich folgendes:

                              {
                                "reason": "No measurement data acquired."
                              }
                              

                              Wenn die Daten von dem Live View genommen werden, dann geht es nicht. Oberfläche ist da, es werden aber keine Werte angezeigt. Detaillierte Probleme mit dem EzoGateway habe ich dir im Pool Forum geschrieben.
                              Den Cycle Updater habe ich aktiviert. By the way, der Intervall ist in sek oder?

                              100prznt 1 Reply Last reply Reply Quote 0
                              • 100prznt
                                100prznt @JohnnyBahama last edited by

                                @JohnnyBahama Es gab in der Tat ein Problem bei der Hardwareinitialisierung, welches genau dann aufgetreten ist, wenn nicht alle EZO Module bestückt waren, bzw. die Reihenfolge hier nicht gepasst hat. Diesen Fehler habe ich gerade behoben, installiere dazu bitte das Release 0.4.26-beta.

                                Der Intervall des Cyclic Updaters wird in Sekunden angegeben, korrekt.

                                Grüße Elias

                                J 1 Reply Last reply Reply Quote 0
                                • J
                                  JohnnyBahama @100prznt last edited by JohnnyBahama

                                  @100prznt sagte in EZOGateway; Watermonitoring:

                                  @JohnnyBahama Es gab in der Tat ein Problem bei der Hardwareinitialisierung, welches genau dann aufgetreten ist, wenn nicht alle EZO Module bestückt waren, bzw. die Reihenfolge hier nicht gepasst hat. Diesen Fehler habe ich gerade behoben, installiere dazu bitte das Release 0.4.26-beta.

                                  Der Intervall des Cyclic Updaters wird in Sekunden angegeben, korrekt.

                                  Grüße Elias

                                  Ich nähere mich dem Ziel. Im EZOGateway funktioniert soweit alles mit dem Script von @paul53 kommen auch Werte an. Bei PH ist alles super, nur bei REDOX geht der Wert nicht höher als 100. Wie kann ich das ändern?

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

                                    @JohnnyBahama sagte:

                                    Wert nicht höher als 100. Wie kann ich das ändern?

                                    common.max des Datenpunktes ?

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

                                      @paul53 sagte in EZOGateway; Watermonitoring:

                                      @JohnnyBahama sagte:

                                      Wert nicht höher als 100. Wie kann ich das ändern?

                                      common.max des Datenpunktes ?

                                      Danke. Hab ich irgendwie übersehen den Punkt.
                                      Somit funktioniert alles wie gewollt und ich kann es weiter verarbeiten.

                                      Danke auch an @100prznt für die letzte Woche mit all den "Problemen" die ich hatte und das du dir die Zeit genommen hast, dass so umzustricken, dass es unter anderen Umständen läuft.

                                      Z 1 Reply Last reply Reply Quote 1
                                      • Z
                                        ZeroQool @JohnnyBahama last edited by

                                        Macht ihr mittlerweile etwas mit den ermittelten Daten z.B. Dosieranlage ansteuern. Gruß

                                        Z J 2 Replies Last reply Reply Quote 0
                                        • Z
                                          ZeroQool @ZeroQool last edited by

                                          Hiermit wird der Datenpunkt erzeugt.

                                          var url = "http://192.168.178.141/api/fetch";
                                          var idTemp = "javascript.0.EzoGateway.Temperatur";
                                          var idPH = "javascript.0.EzoGateway.pH_Wert";
                                          var idRedox = "javascript.0.EzoGateway.Redox_Potential";
                                           
                                          // Erzeugen der Objekte in ioBroker
                                          createState(idTemp, 0, {
                                              name: 'Temperatur',
                                              desc: 'Temperatur',
                                              type: 'number',
                                              role: 'value',
                                              unit: '°C'
                                          });
                                          createState(idPH, 0, {
                                              name: 'pH_Wert',
                                              desc: 'pH Wert',
                                              type: 'number',
                                              role: 'value',
                                              unit: ''
                                          });
                                          createState(idRedox, 0, {
                                              name: 'Redox_Potential',
                                              desc: 'Redox potential',
                                              type: 'number',
                                              role: 'value',
                                              unit: 'mV'
                                          });
                                          
                                          // schedule('* * * * *', function() { //every minute
                                          schedule("*/2 * * * * *", function() { // every 2s
                                              request(url, function(error, response, result) {
                                                   if (result) {
                                                      let obj = JSON.parse(result);
                                                      setState(idTemp, obj['1'].Value, true);
                                                      setState(idPH, obj['2'].Value, true);
                                                      setState(idRedox, obj['3'].Value, true);
                                                   } else {
                                                      var errorMessage = "(" + error + ") ERROR bei Abfrage von: " + url;
                                                      log(errorMessage, "warn");
                                                  }
                                              });
                                          });```
                                          1 Reply Last reply Reply Quote 1
                                          • cvidal
                                            cvidal Forum Testing last edited by

                                            Hallo zusammen, spanendes Thema.

                                            Ich habe mich da mal etwas eingelesen und hätte ein Paar Fragen.

                                            Welche Sensoren benutzt ihr?
                                            Die für Verbraucher- (41€Redox) (32€ PH)oder
                                            Laborqualität (94€ Redox) (61€ PH)?
                                            Preislich ist das ja ein schon ein Unterschied.

                                            Jetzt fehlt mir noch die Dosierpumpen welche auch nochmal mit 200€ aufschlagen würden.

                                            Rechne ich das mal zusammen ist das Leider nicht ganz günstig, für den Preis bekommt man ja fast schon Fertig montierte Anlagen. Naja ioBroker würde dann leider wegfallen. Oder habt ihr noch andere Vorteile für die Config?

                                            Whitebox T3 für Raspberry Pi 81€
                                            EZO pH Circuit 32€
                                            PH Sonde Laborqualität 61€
                                            EZO Redox Circut 32€
                                            Redox Sonde 94€
                                            Raspi + Netzteil 35€
                                            Verteilerkasten, Kalibrierlösungen etc. 100€

                                            Sind dann so ca. 435€ ohne dosieranlagen.

                                            Gruß Christian

                                            100prznt J 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.2k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            ezo gateway pool monitoring
                                            7
                                            47
                                            4092
                                            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