NEWS
EZOGateway; Watermonitoring
-
@johnnybahama Guck mal hier, Adapter für den PH803w ist gerade in Arbeit: https://forum.iobroker.net/topic/42553/ph-messung Mir gefällt das Teil aber nicht, der verbaute Messverstärker ist leider nicht besonders hochwertig, was sich in der Nichtwiederholbarkeit, Genauigkeit, Stabilität und vor allem im thermischen Drift zeigt.
Ach ja das EZO GW geht auch mit nem 2 Euro DS18B20 als Temperaturreferenz
Beste Grüße
Elias -
@100prznt Hätte mich auch gewundert, wenn da noch keiner gefragt hat. Es ist wie bei allem, Geld ist der Faktor, wo man seine Preis/Leistungs Grenze zieht. Vor allem seit letztem Jahr, wenn man den Quick up pool bei Aldi für 100€ geschossen hat, will man nicht soviel Geld darein stecken und gibt sich mit der "günstigen" Lösung zufrieden.
Mein Board wird diese Saison zum ersten Mal eingesetzt. Bin gespannt, letzten Winter haben wir beide das ja zum laufen gebracht. Warte auf meine Rohre, um es zusammen zu stecken.Aber den circuit brauche ich doch trotzdem oder?
Hatte das auch bei Atlas gesehen, dass die den DS18 für viel Geld auch anbieten. -
@johnnybahama sagte in EZOGateway; Watermonitoring:
Aber den circuit brauche ich doch trotzdem oder?
Hatte das auch bei Atlas gesehen, dass die den DS18 für viel Geld auch anbieten.Man braucht eine 1-Wire/I2C bridge. gibt es fertig auf einen kleinen Breakout-Board, welches man mit 4 Pins direkt an die GPIO Header oder den zusätzlichen Stecker auf dem Tentacle anschließen kann. Kostenpunkt 2 Euro. Auf meiner alten EzoGW Platine ist der diese Bridge fest verbaut.
DS18B20 werden mittlerweile von den Chinesen im großen still "kopiert", bekommt man daher auch in Deutschland für ein zwei Taler. Gibt leider auch "schlechte Fälschungen", der Großteil ist von den Toleranzen her aber brauchbar für die Anwendung zur Temperaturkompensation.
Beste Grüße
Elias -
@zeroqool besser spät als nie. Momentan warte ich noch auf die letzten Rohrteile. Irgendwie hat sich jetzt jeder einen Pool zugelegt und Corona hat auch geholfen, das kein Material verfügbar ist.
Ziel ist es den Salzanlage zu steuern und dadurch die Filteranlage nicht unnötig laufen zu lassen, wenn schlecht Wetter ist. -
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.
-
@johnnybahama Wie oder durch was soll das/die Relais denn angesteuert werden. Einfach per Befehl über die REST API Schnittstelle?
-
@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.
-
@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. -
@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. -
@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.
-
@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
-
@johnnybahama Den fotos nach werden bei der HAT die Relais auch direkt per GPIO angesteuert, geht also genau so. (Y)
-
@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 };
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."); } } }
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 -
@100prznt Danke, muss mir dann erstmal die Hardware organisieren.
-
@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?
-
@johnnybahama Welches Board hast du jetzt genau? Gibt es da konkrete Doku, insbesondere die GPIO Zuordnung müsste ich wissen.
Beste Grüße
Elias -
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.
-
@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. -
@wuschl Hast du denn deine IP mit Port in der ersten Zeile angegeben?
-
@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?