Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. EZOGateway; Watermonitoring

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    353

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

EZOGateway; Watermonitoring

Geplant Angeheftet Gesperrt Verschoben Hardware
ezo gateway pool monitoring
47 Beiträge 7 Kommentatoren 6.6k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J JohnnyBahama

    Weiß jemand, ob ich ein Relais board zwischen hängen kann und im Hintergrund mit steueren kann? Bin mir nicht sicher wie ich das Board eingebunden bekomme ohne das Watermonitoring zu überschreiben.

    100prznt1 Offline
    100prznt1 Offline
    100prznt
    schrieb am zuletzt editiert von
    #30

    @johnnybahama Wie oder durch was soll das/die Relais denn angesteuert werden. Einfach per Befehl über die REST API Schnittstelle?

    J 1 Antwort Letzte Antwort
    0
    • 100prznt1 100prznt

      @johnnybahama Wie oder durch was soll das/die Relais denn angesteuert werden. Einfach per Befehl über die REST API Schnittstelle?

      J Offline
      J Offline
      JohnnyBahama
      schrieb am zuletzt editiert von JohnnyBahama
      #31

      @100prznt Ansteuerung vom Master IOBROKER im Hause, an den externen EZO am Pool. Welche Schnittstelle ist mir eigentlich egal, solange ich die Relais mit Datenpunkte im IOBROKER ansprechen kann.

      100prznt1 1 Antwort Letzte Antwort
      0
      • J JohnnyBahama

        @100prznt Ansteuerung vom Master IOBROKER im Hause, an den externen EZO am Pool. Welche Schnittstelle ist mir eigentlich egal, solange ich die Relais mit Datenpunkte im IOBROKER ansprechen kann.

        100prznt1 Offline
        100prznt1 Offline
        100prznt
        schrieb am zuletzt editiert von
        #32

        @johnnybahama Gibt hier verschiedene Möglichkeiten.
        Das einfachste wäre eine Relaiskarte mit Ethernet oder WiFi Anbindung, ist dann völlig los gelöst vom Ezo-Gw.
        Eine Relaiskarte mit parallelen Anschluss (Ein GPIO je Relais) oder I2C Schnittstelle könnte man über minimale Anpassungen an der EZO-Gw Software implementieren, Zugriff auf die Relais erfolgt dann über die schon vorhandene REST API. Eine USB Relaiskarte könnte man sicherlich auch ansprechen, je nach Verfügbarkeit von Treibern kann das aber etwas kompliziert werden.

        1 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          JohnnyBahama
          schrieb am zuletzt editiert von
          #33

          @100prznt Die Idee mit den GPIO gefällt mir natürlich am besten, der ESP oder WEMO bedeutet ein weiteres WLAN Gerät+Netzteil. Ethernet ist an der Stelle nicht vorhanden und einen Extender würde ich gerne vermeiden. Kompliziert lassen wir direkt weg.
          Da du EZO programmiert hast, bin ich auf dich angewiesen. https://www.robotshop.com/de/de/4-kanal-relais-hat-raspberry-pi-3b-3b-2b.html an die Karte habe ich gedacht.

          100prznt1 1 Antwort Letzte Antwort
          0
          • J JohnnyBahama

            @100prznt Die Idee mit den GPIO gefällt mir natürlich am besten, der ESP oder WEMO bedeutet ein weiteres WLAN Gerät+Netzteil. Ethernet ist an der Stelle nicht vorhanden und einen Extender würde ich gerne vermeiden. Kompliziert lassen wir direkt weg.
            Da du EZO programmiert hast, bin ich auf dich angewiesen. https://www.robotshop.com/de/de/4-kanal-relais-hat-raspberry-pi-3b-3b-2b.html an die Karte habe ich gedacht.

            100prznt1 Offline
            100prznt1 Offline
            100prznt
            schrieb am zuletzt editiert von
            #34

            @johnnybahama Wenn du auf ein HAT mit paralleler Ansteuerung setzt, z.B. https://www.robotshop.com/de/de/3-kanal-raspberry-relaisplatine.html könnte ich die Software entsprechend anpassen. Die Integration der von dir vorgeschlagenen HAT mit I2C Schnittstelle geht nicht ohne Hardwaretest.

            J 1 Antwort Letzte Antwort
            0
            • 100prznt1 100prznt

              @johnnybahama Wenn du auf ein HAT mit paralleler Ansteuerung setzt, z.B. https://www.robotshop.com/de/de/3-kanal-raspberry-relaisplatine.html könnte ich die Software entsprechend anpassen. Die Integration der von dir vorgeschlagenen HAT mit I2C Schnittstelle geht nicht ohne Hardwaretest.

              J Offline
              J Offline
              JohnnyBahama
              schrieb am zuletzt editiert von
              #35

              @100prznt 3 Relais würden es ziemlich limitieren. Ich habe die Salzanlage, Solarbasorberventil, LED und in Zukunft 2 für die Impfpumpen. Ginge es auch mit der hier: https://de.aliexpress.com/i/32997012084.html

              100prznt1 2 Antworten Letzte Antwort
              0
              • J JohnnyBahama

                @100prznt 3 Relais würden es ziemlich limitieren. Ich habe die Salzanlage, Solarbasorberventil, LED und in Zukunft 2 für die Impfpumpen. Ginge es auch mit der hier: https://de.aliexpress.com/i/32997012084.html

                100prznt1 Offline
                100prznt1 Offline
                100prznt
                schrieb am zuletzt editiert von
                #36

                @johnnybahama Den fotos nach werden bei der HAT die Relais auch direkt per GPIO angesteuert, geht also genau so. (Y)

                1 Antwort Letzte Antwort
                0
                • J JohnnyBahama

                  @100prznt 3 Relais würden es ziemlich limitieren. Ich habe die Salzanlage, Solarbasorberventil, LED und in Zukunft 2 für die Impfpumpen. Ginge es auch mit der hier: https://de.aliexpress.com/i/32997012084.html

                  100prznt1 Offline
                  100prznt1 Offline
                  100prznt
                  schrieb am zuletzt editiert von 100prznt
                  #37

                  @johnnybahama Habe die Software soweit vorbereitet, liegt vorerst in einem eigenen Branch, falls du schon testen willst.

                  Im IoDispatcher wird ein readonly Array definiert, welches die GPIO Nummern der "Ausgänge" definiert.

                          //GPIO pins in sequence for channel 1 to n.
                          //Pin 2 and 3 are reserved for I2C communication with the EZO circuit modules.
                          private readonly int[] OUT_PINS = { 5, 6, 13, 19, 26, 12 };
                  

                  https://github.com/100prznt/EzoGateway/blob/915775ffe9e7f52b15d0b02a984684e20d16cf16/source/EzoGateway/IoDispatcher.cs#L41

                  Nach einem Systemstart werden die entsprechend definierten GPIOs initialisiert und können über die REST API bedient werden.
                  Dazu gibt es im HttpServer eine neue Verzweigung:

                                  else if (request.Uri.Segments.Length >= 3 && request.Uri.Segments[2].Trim('/').Equals("OUTPUT", StringComparison.OrdinalIgnoreCase))
                                  {
                                      if (request.Uri.Segments.Length == 3 && request.Method == HttpMethod.Get)
                                      {
                                          var channelDict = new Dictionary<string, IoData>();
                                          for (int i = 0; i < m_Controller.Io.OutputChannelCount; i++)
                                              channelDict.Add((i + 1).ToString(), new IoData(m_Controller.Io.GetOutput(i + 1)));
                  
                                          return HttpResource.CreateJsonResource(channelDict);
                                      }
                                      else if (request.Uri.Segments.Length == 4)
                                      {
                                          if (Int32.TryParse(request.Uri.Segments[3].Trim('/'), out int channel))
                                          {
                                              if (channel >= 1 && channel <= m_Controller.Io.OutputChannelCount)
                                              {
                                                  if (request.Method == HttpMethod.Get)
                                                  {
                                                      var state = new Dictionary<string, string>
                                                      {
                                                          { "state", m_Controller.Io.GetOutput(channel).ToString() }
                                                      };
                                                      return HttpResource.CreateJsonResource(state);
                                                  }
                                                  else if (request.Method == HttpMethod.Put)
                                                  {
                                                      var ioData = JsonConvert.DeserializeObject<IoData>(request.Content);
                                                      m_Controller.Io.SetOutput(channel, ioData.State);
                  
                                                      return HttpResource.CreateJsonResource(new RestStatus(OperationStatus.Success, "Output state send to GPIO controller"));
                                                  }
                                              }
                                              else
                                                  return HttpResource.JsonLocked423("Invalide channel number.");
                                          }
                                      }
                                  }
                  

                  https://github.com/100prznt/EzoGateway/blob/915775ffe9e7f52b15d0b02a984684e20d16cf16/source/EzoGateway/Server/HttpServer.cs#L626

                  Der Call zum setzen eines Ausgangs sieht wie folgt aus:
                  URL: http://<IP EZO Gateway>/api/output/<Kanalnummer>
                  Methode: PUT
                  Body:

                  {
                      State: <true oder false>
                  }
                  

                  Abfrage erfolgt analog per GET, ohne Kanalnummer kommt ein Array mit allen Kanälen zurück.

                  Hab das jetzt erstmal nur schnell runter geschrieben, ein Test an Hardware steht noch aus.

                  Beste Grüße
                  Elias

                  J 2 Antworten Letzte Antwort
                  0
                  • 100prznt1 100prznt

                    @johnnybahama Habe die Software soweit vorbereitet, liegt vorerst in einem eigenen Branch, falls du schon testen willst.

                    Im IoDispatcher wird ein readonly Array definiert, welches die GPIO Nummern der "Ausgänge" definiert.

                            //GPIO pins in sequence for channel 1 to n.
                            //Pin 2 and 3 are reserved for I2C communication with the EZO circuit modules.
                            private readonly int[] OUT_PINS = { 5, 6, 13, 19, 26, 12 };
                    

                    https://github.com/100prznt/EzoGateway/blob/915775ffe9e7f52b15d0b02a984684e20d16cf16/source/EzoGateway/IoDispatcher.cs#L41

                    Nach einem Systemstart werden die entsprechend definierten GPIOs initialisiert und können über die REST API bedient werden.
                    Dazu gibt es im HttpServer eine neue Verzweigung:

                                    else if (request.Uri.Segments.Length >= 3 && request.Uri.Segments[2].Trim('/').Equals("OUTPUT", StringComparison.OrdinalIgnoreCase))
                                    {
                                        if (request.Uri.Segments.Length == 3 && request.Method == HttpMethod.Get)
                                        {
                                            var channelDict = new Dictionary<string, IoData>();
                                            for (int i = 0; i < m_Controller.Io.OutputChannelCount; i++)
                                                channelDict.Add((i + 1).ToString(), new IoData(m_Controller.Io.GetOutput(i + 1)));
                    
                                            return HttpResource.CreateJsonResource(channelDict);
                                        }
                                        else if (request.Uri.Segments.Length == 4)
                                        {
                                            if (Int32.TryParse(request.Uri.Segments[3].Trim('/'), out int channel))
                                            {
                                                if (channel >= 1 && channel <= m_Controller.Io.OutputChannelCount)
                                                {
                                                    if (request.Method == HttpMethod.Get)
                                                    {
                                                        var state = new Dictionary<string, string>
                                                        {
                                                            { "state", m_Controller.Io.GetOutput(channel).ToString() }
                                                        };
                                                        return HttpResource.CreateJsonResource(state);
                                                    }
                                                    else if (request.Method == HttpMethod.Put)
                                                    {
                                                        var ioData = JsonConvert.DeserializeObject<IoData>(request.Content);
                                                        m_Controller.Io.SetOutput(channel, ioData.State);
                    
                                                        return HttpResource.CreateJsonResource(new RestStatus(OperationStatus.Success, "Output state send to GPIO controller"));
                                                    }
                                                }
                                                else
                                                    return HttpResource.JsonLocked423("Invalide channel number.");
                                            }
                                        }
                                    }
                    

                    https://github.com/100prznt/EzoGateway/blob/915775ffe9e7f52b15d0b02a984684e20d16cf16/source/EzoGateway/Server/HttpServer.cs#L626

                    Der Call zum setzen eines Ausgangs sieht wie folgt aus:
                    URL: http://<IP EZO Gateway>/api/output/<Kanalnummer>
                    Methode: PUT
                    Body:

                    {
                        State: <true oder false>
                    }
                    

                    Abfrage erfolgt analog per GET, ohne Kanalnummer kommt ein Array mit allen Kanälen zurück.

                    Hab das jetzt erstmal nur schnell runter geschrieben, ein Test an Hardware steht noch aus.

                    Beste Grüße
                    Elias

                    J Offline
                    J Offline
                    JohnnyBahama
                    schrieb am zuletzt editiert von
                    #38

                    @100prznt Danke, muss mir dann erstmal die Hardware organisieren.

                    1 Antwort Letzte Antwort
                    0
                    • 100prznt1 100prznt

                      @johnnybahama Habe die Software soweit vorbereitet, liegt vorerst in einem eigenen Branch, falls du schon testen willst.

                      Im IoDispatcher wird ein readonly Array definiert, welches die GPIO Nummern der "Ausgänge" definiert.

                              //GPIO pins in sequence for channel 1 to n.
                              //Pin 2 and 3 are reserved for I2C communication with the EZO circuit modules.
                              private readonly int[] OUT_PINS = { 5, 6, 13, 19, 26, 12 };
                      

                      https://github.com/100prznt/EzoGateway/blob/915775ffe9e7f52b15d0b02a984684e20d16cf16/source/EzoGateway/IoDispatcher.cs#L41

                      Nach einem Systemstart werden die entsprechend definierten GPIOs initialisiert und können über die REST API bedient werden.
                      Dazu gibt es im HttpServer eine neue Verzweigung:

                                      else if (request.Uri.Segments.Length >= 3 && request.Uri.Segments[2].Trim('/').Equals("OUTPUT", StringComparison.OrdinalIgnoreCase))
                                      {
                                          if (request.Uri.Segments.Length == 3 && request.Method == HttpMethod.Get)
                                          {
                                              var channelDict = new Dictionary<string, IoData>();
                                              for (int i = 0; i < m_Controller.Io.OutputChannelCount; i++)
                                                  channelDict.Add((i + 1).ToString(), new IoData(m_Controller.Io.GetOutput(i + 1)));
                      
                                              return HttpResource.CreateJsonResource(channelDict);
                                          }
                                          else if (request.Uri.Segments.Length == 4)
                                          {
                                              if (Int32.TryParse(request.Uri.Segments[3].Trim('/'), out int channel))
                                              {
                                                  if (channel >= 1 && channel <= m_Controller.Io.OutputChannelCount)
                                                  {
                                                      if (request.Method == HttpMethod.Get)
                                                      {
                                                          var state = new Dictionary<string, string>
                                                          {
                                                              { "state", m_Controller.Io.GetOutput(channel).ToString() }
                                                          };
                                                          return HttpResource.CreateJsonResource(state);
                                                      }
                                                      else if (request.Method == HttpMethod.Put)
                                                      {
                                                          var ioData = JsonConvert.DeserializeObject<IoData>(request.Content);
                                                          m_Controller.Io.SetOutput(channel, ioData.State);
                      
                                                          return HttpResource.CreateJsonResource(new RestStatus(OperationStatus.Success, "Output state send to GPIO controller"));
                                                      }
                                                  }
                                                  else
                                                      return HttpResource.JsonLocked423("Invalide channel number.");
                                              }
                                          }
                                      }
                      

                      https://github.com/100prznt/EzoGateway/blob/915775ffe9e7f52b15d0b02a984684e20d16cf16/source/EzoGateway/Server/HttpServer.cs#L626

                      Der Call zum setzen eines Ausgangs sieht wie folgt aus:
                      URL: http://<IP EZO Gateway>/api/output/<Kanalnummer>
                      Methode: PUT
                      Body:

                      {
                          State: <true oder false>
                      }
                      

                      Abfrage erfolgt analog per GET, ohne Kanalnummer kommt ein Array mit allen Kanälen zurück.

                      Hab das jetzt erstmal nur schnell runter geschrieben, ein Test an Hardware steht noch aus.

                      Beste Grüße
                      Elias

                      J Offline
                      J Offline
                      JohnnyBahama
                      schrieb am zuletzt editiert von JohnnyBahama
                      #39

                      @100prznt Relais Board is angekommen. Ich brauche hier deine Unterstützung, da ich von Programmieren keine Ahnung habe. Wie oder wohin muss ich den Code kopieren?

                      100prznt1 1 Antwort Letzte Antwort
                      0
                      • J JohnnyBahama

                        @100prznt Relais Board is angekommen. Ich brauche hier deine Unterstützung, da ich von Programmieren keine Ahnung habe. Wie oder wohin muss ich den Code kopieren?

                        100prznt1 Offline
                        100prznt1 Offline
                        100prznt
                        schrieb am zuletzt editiert von
                        #40

                        @johnnybahama Welches Board hast du jetzt genau? Gibt es da konkrete Doku, insbesondere die GPIO Zuordnung müsste ich wissen.

                        Beste Grüße
                        Elias

                        1 Antwort Letzte Antwort
                        0
                        • J Offline
                          J Offline
                          JohnnyBahama
                          schrieb am zuletzt editiert von
                          #41

                          @100prznt Das 6ch Board

                          Dokumentation ist rar, dass einzige was ich finden konnte und so aussieht als wäre es das original: https://www.waveshare.com/wiki/RPi_Relay_Board

                          Dann noch Kommentare die es zum laufen bekommen haben. Die Kommentare sagen auch, dass das Waveshare nur 3 CH ist und das kommentierte 4 CH. Weiß jetzt nicht, ob es eine Synergie zu dem 6 CH gibt.

                          Ich such noch weiter.

                          1 Antwort Letzte Antwort
                          0
                          • paul53P 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);
                                });
                            });
                            
                            W Offline
                            W Offline
                            Wuschl
                            schrieb am zuletzt editiert von
                            #42

                            @paul53 Ich checke diesen Simple-API nicht. Das EZO läuft, aber ich bringe die Daten nicht in den ioBroker.
                            Wo habe ich den Denkfehler? In Javascript bekomme ich nur eine Fehlermeldung.

                            J 1 Antwort Letzte Antwort
                            0
                            • W Wuschl

                              @paul53 Ich checke diesen Simple-API nicht. Das EZO läuft, aber ich bringe die Daten nicht in den ioBroker.
                              Wo habe ich den Denkfehler? In Javascript bekomme ich nur eine Fehlermeldung.

                              J Offline
                              J Offline
                              JohnnyBahama
                              schrieb am zuletzt editiert von
                              #43

                              @wuschl Hast du denn deine IP mit Port in der ersten Zeile angegeben?

                              W 1 Antwort Letzte Antwort
                              0
                              • J JohnnyBahama

                                @wuschl Hast du denn deine IP mit Port in der ersten Zeile angegeben?

                                W Offline
                                W Offline
                                Wuschl
                                schrieb am zuletzt editiert von
                                #44

                                @johnnybahama Hab es hinbekommen, nachdem der Raspy nochmals neu gestartet wurde war alles da.

                                Jetzt habe ich noch eine Frage wegen dem kalibrieren. Ich habe 2 Flüssigkeiten 4.0 pH und 7.0 pH. Wenn ich die Messzelle in die Flüssigkeit stelle dann sinkt der Wert, aber dieser bleibt nicht bei einem Wert stehen. Ist das richtig? Bei meinem PH803W blieb der Wert irgendwann an einer Position stehen.
                                Welchen Wert muss ich eintragen in Reference Value?

                                Ist es zwingend nötig 10 pH auch zu kalibrieren?

                                J 1 Antwort Letzte Antwort
                                0
                                • W Wuschl

                                  @johnnybahama Hab es hinbekommen, nachdem der Raspy nochmals neu gestartet wurde war alles da.

                                  Jetzt habe ich noch eine Frage wegen dem kalibrieren. Ich habe 2 Flüssigkeiten 4.0 pH und 7.0 pH. Wenn ich die Messzelle in die Flüssigkeit stelle dann sinkt der Wert, aber dieser bleibt nicht bei einem Wert stehen. Ist das richtig? Bei meinem PH803W blieb der Wert irgendwann an einer Position stehen.
                                  Welchen Wert muss ich eintragen in Reference Value?

                                  Ist es zwingend nötig 10 pH auch zu kalibrieren?

                                  J Offline
                                  J Offline
                                  JohnnyBahama
                                  schrieb am zuletzt editiert von
                                  #45

                                  @wuschl Als Referenz kommt der Wert, der auf der Kalbrierflüssigkeitspackung steht.
                                  Nein 10 musst du nicht kalibrieren. Entweder 4 oder 10. 7 ist muss.
                                  Das Schwanken kannst du im live window prüfen. In der Regel sollte der immer um den Wert von der Kalibrierflüssigkeit herum tanzen .

                                  1 Antwort Letzte Antwort
                                  0
                                  • J Offline
                                    J Offline
                                    JohnnyBahama
                                    schrieb am zuletzt editiert von JohnnyBahama
                                    #46

                                    EDIT: Problem gelöst. Siehe nächsten Post.

                                    1 Antwort Letzte Antwort
                                    0
                                    • J Offline
                                      J Offline
                                      JohnnyBahama
                                      schrieb am zuletzt editiert von JohnnyBahama
                                      #47

                                      Mit ChatGPT wieder zum laufen bekommen:

                                      const axios = require('axios'); // axios importieren
                                      
                                      const url = 'http://<EZO IP Adress>/api/fetch'; // IP-Adresse eintragen !
                                      const idTemp = 'javascript.0.EzoGateway.Temperatur'; // Ändern, wenn der Datenpunkt woanders liegen soll
                                      const idPH = 'javascript.0.EzoGateway.PH-Wert';// Ändern, wenn der Datenpunkt woanders liegen soll
                                      const idRedox = 'javascript.0.EzoGateway.Redox-Potenzial';// Ändern, wenn der Datenpunkt woanders liegen soll
                                      
                                      schedule('*/1 * * * *', async function() { // every minute
                                          try {
                                              let response = await axios.get(url);
                                              let obj = response.data;
                                              setState(idTemp, obj['1'].Value, true);
                                              setState(idPH, obj['2'].Value, true);
                                              setState(idRedox, obj['3'].Value, true);
                                          } catch (exMsg) {
                                              log(exMsg, 'error');
                                          }
                                      });
                                      
                                      // Erzeugen der Objekte in ioBroker. Kann nach dem ersten Start des Skriptes gelöscht werden.
                                      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'
                                      });
                                      
                                      1 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      406

                                      Online

                                      32.5k

                                      Benutzer

                                      81.8k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe