Beispiel: Hardware für die Steuerung

Dieser Artikel ist mehr als Erfahrungsbericht denn als Anleitung zu verstehen. Ich beschreibe hier die Realisierung an meinem Pool als Anregung. Grundsätzlich lassen sich viele Dinge natürlich auch anders lösen…

Für den Aufbau der Steuerung ist die folgende Hardware notwendig. Das Plugin setzt dabei exakt die hier vorgestellten Komponenten voraus und kann ohne Anpassung nicht mit alternativer Sensorik betrieben werden.

Die Steuerung setzt sich aus folgenden Funktionen zusammen:

  1. pH-Wert Messung (für automatische pH-Wert-Regulierung) - Nr. 6
  2. Redox-Potential-Messung (ORP) (für automatische Chlordosierung) - Nr. 5
  3. Temperaturmessungen Vor- und Rücklauf und Lufttemperatur - Nr. 2 → Update 20.08.2022: Lufttemperatur nicht realisiert. Einbindung über das 1-WireNG Plugin.
  4. Automatische Dosierung pH-Senker (meist 14%ige Schwefelsäure)  - Nr. 4
  5. Automatische Dosierung von Desinfektionsmittel (meist Chlor, ca. 15%ig) - Nr. 4
  6. Füllstandsüberwachung der Chemikalienkanister - Nr. 3 → Update 20.08.2022: Nicht realisiert. Wird berechnet.
  7. Automatische Nachspeisung / Füllstandsregelung im Pool - Nr. 1 + 7
  8. Drucküberwachung Filter - Nr. 9

Viele Hinweise zu Hard- und Software stammen aus dem Blog von Alexey Ozerov - vielen Dank an dieser Stelle an Alexey! https://baublog.ozerov.de/poolsteuerung-mit-fhem/

Das nachfolgende Schema zeigt den prinzipiellen Aufbau. Ich gehe dabei nicht weiter auf die Pool-Technik ein, sondern konzentriere mich hier auf die Steuerung und die Einbindung in Loxone. Für Fragen zur Pooltechnik schaut im PoolPowerShop-Forum vorbei: https://www.poolpowershop-forum.de/

 

Pool-Schema.pdf

Pool-Schema.pptx

1. Raspberry Pi mit Adafruit LCD Display + Keypad

Welchen Raspberry ihr für das Projekt einsetzt bleibt letztendlich euch überlassen. Ich empfehle auf jeden Fall einen eigenen LoxBerry in den Technikraum des Pools zu verbauen und dort keine weiteren Plugins zu verwenden. Von der Leistung her reicht ein Raspberry 2 oder 3 vollkommen aus, auch ein ZeroW dürfte funktionieren. Ein Pi4 ist nicht notwendig. Zusätzlich wird ein LCD-Display mit 5 Button zur direkten Bedienung verbaut. Über das Display kann später direkt vor Ort die Kalibrierung der Sensoren (Redox und pH) sowie der Dosierpumpen vorgenommen werden. Zudem wird der Anwender durch den Prozess der Rückspülung geführt.

Um nicht mehrere Netzteile verbauen zu müssen, wählen wir ein 24V Hutschienennetzteil. Das kann dann später auch direkt das Automatikventil (24V) sowie die Dosierpumpen (12V) über StepDown-Spannungswandler mit versorgen. ZUm Anschluss des Raspberry (5V) ist natürlich ebenfalls ein Spannungswandler notwendig. Achtet hierbei darauf, dass der Raspberry sehr stromhungrig ist (je nach Modell 2-3A!). Viele Spannungswandler schaffen das nicht oder werden damit extrem heiß!

Einkaufsliste:

Das Adafruit LCD-Panel inkl. Keypad ist in Europa auch bei den einschlägigen Händlern bei Amazon, Ebay, Reichelt, Pollin usw. erhältlich. Manchmal sind einzelne Varianten ausverkauft, dann funktioniert auch z.B. eine der genannten Alternativen. Achtet nur darauf die Raspberry Pi Variante und nicht die Variante für den Arduino zu kaufen.

2. Temperaturmessungen (Schema: Nr. 2)

Wir wollen insgesamt 3 Temperaturen messen: Lufttemperatur, Vorlauftemperatur und Rücklauftemperatur. Bei laufender Pumpe entspricht die Vorlauftemperatur gleich der Temperatur im Pool. Die Rücklauftemperatur misst eine eventuell verbaute Wärmepumpe oder einen Solarabsorber mit. Hier hat man also eine Kontrolle über die Wirksamkeit der Temperaturerhöhung und kann eine entsprechende Steuerung/Regelung mit aufbauen.

Zur Temperaturmessung nehmen wir kostengünstige 1-Wire-Temperaturfühler (Variante mit Hülse). Diese können direkt ohne weiteres Zubehör an den Raspberry angeschlossen werden.

Einkaufsliste:

3. Automatische Nachspeisung (Schema: Nr. 1+7)

Die automatische Nachspeisung soll den Wasserverlust im Pool durch Verdunstung, Baden und vor allem durch das Rückspülen des Filters automatisch ausgleichen. Dazu wird ein Automatikventil und ein Füllstandssensor benötigt. Die Nachspeisung erfolgt in den Rücklauf möglichst nahe vor den Einströmdüsen (aber noch im Technikhaus) und sollte/darf nur bei eingeschalteter Pumpe erfolgen.

Die Nachspeisung wie hier dargestellt ist nur erlaubt, wenn ihr den Pool z. B. aus einem Brunnen speist. Füllt ihr den Pool mit Trinkwasser nach, ist unbedingt ein Systemtrenner zu verwenden! Erkundigt euch bei eurem Wasserversorger nach den Vorschriften. 

Da das Automatikventil teilweise auch mit chlorhaltigem Wasser aus dem Pool in Berührung kommen kann, darf es nur aus Materialien bestehen, die chlorbeständig sind. Ich habe zudem ein Ventil verbaut, welches mit 24V Gleichspannung betrieben werden kann. So musste ich nicht noch ein extra Netzteil verbauen. Am Besten nehmt ihr ein NC (normally closed) Ventil, das im spannungslosen Zustand automatisch geschlossen ist (z. B. bei Stromausfall) - das spart zudem Strom, da es nur mit Spannung beaufschlagt wird, wenn es geöffnet wird. Vor dem Automatikventil wird noch ein manuelles Ventil installiert, mit dem man den Zufluss eindrosseln kann, sodass das frische Wasser nicht gegen die Fließrichtung gedrückt wird. Das Ventil habe ich noch über ein Hardware-Seitiges Wischerrelais abgesichert, damit man bei einer Fehlschaltung oder einem Absturz der Steuerung nicht seinen gesamten Garten überflutet.

Ich habe folgendes Ventil verwendet: https://www.pvc-welt.de/RPE-Magnetventil (ca. 15 EUR).

Als Füllstandssensor habe ich induktiv messende Sensoren verwendet. Davon habe ich 3 Stück aussen an den Skimmer gebaut und lese diese mit dem GPIO-Plugin ein. Die Sensoren funktionieren berührungslos und sehr zuverlässig. Weitere Informationen dazu findet ihr hier: https://www.loxforum.com/forum/mein-projekt/304303-bautagebuch-bau-eines-smarten-pools-mit-loxberry-und-loxone?p=352189#post352189

Einkaufsliste

5. Redox- und pH-Wert-Messung, Chlor- und pH-Wert-Senker-Dosierung (Schema: Nr. 3+4+5+6+8)

Messsonden und Auswerteeinheiten

Für die Redox- und die pH-Wert-Messung werden die Module von Atlas Scientific verwendet. Die Module besitzen verschiedene Schnittstellen (USB, UART, I2C), wir verwenden die I2C-Schnittstelle, die standardmäßig auf dem Raspberry und auch auf den Arduinos verfügbar ist.

Jede Messstelle besteht aus 3 Komponenten: Der eigentlichen Messsonde („Probe“), der Auswerteeinheit („EZO Circuit“) und einem „Carrier Board“, welches die Auswerteeinheit aufnehmen kann und den Anschluss zum Raspberry herstellt. Die Messsonden sind sehr empfindlich und geben nur extrem kleine Ströme ab. Daher muss man, wenn man mehr als eine Sonde an einen Raspberry oder Arduino anschließen möchte, unbedingt auf eine saubere elektrische Trennung der beiden Messungen achten. Diese elektrische Trennung wird auf den Carrier Boards realisiert.

Die Messsonden kann man auch von anderen Herstellern als Atlas Scientific verwenden, da die Sonden genormt sind. Ich empfehle für den Start aber erst einmal, das gesamte Zubehör von Atlas Scientific zu beziehen, damit man mögliche Fehlerquellen ausschließen kann.

Als Carrier Board verwenden wir das Board „Tentacle T3 for Raspberry Pi“ der Firma White Box Labs. Dieses Board ist für den Raspberry konzipiert und kann 3 Auswerteeinheiten (EZO Circuits) aufnehmen, wobei nur 2 davon elektrisch getrennt sind. So kann man also auf einem Carrier Board die pH-Messung und die Redox-Messung unterbringen und hätte noch einen nicht elektrisch getrennten Steckplatz frei, z. B. für eine Druck-, Temperatur oder Durchflussmessung.

Dosierpumpen

Auch hiernutzen wir die Peristaltic Pumpen von Atlas Scientific. Die Pumpen benötigen keine Auswerteeinheit und können direkt an das Carrier Board Tentacle T3 angeschlossen werden (siehe oben). Die auf dem Schema gezeigte Füllstandsüberwachung habe ich nicht als Hardware realisiert. Der Füllstand der Kanister wird berechnet.

Messzelle

Wenn man die Sonden in den vollen Volumenstrom der Pumpe setzen würde, verschleißen diese sehr stark bzw. können bei Druckstößen auch komplett zerstört werden. Die Sonden sind aus Glas! Daher müssen die Sonden in einen Bypass gebaut werden. Dazu verwendet man am Besten eine sogenannte Messzelle. Das ist ein kleiner „Behälter“, in den die Sonden hineinragen. Hinter der Pumpe und vor den Dosierstellen wird mit einem 6/8 mm PVC-Schlauch ein Teilstrom abgenommen, durch die Messzelle geführt und vor der Pumpe wieder in den Hauptstrom geführt. Dadurch ist die notwendige Druckdifferenz gewährleistet und somit auch eine kontinuierliche Strömung sichergestellt. Über eine manuelle Anzeige des Volumenstroms mit einem einfachen Durchflussmesser kann dieser optimal auf die Messzelle und die Messung eingestellt werden. Die Messzelle ist über zwei Kugelhähne vom Hauptstrom abgetrennt. Der Kugelhahn hinter der Pumpe wird komplett geöffnet, damit in der Messzelle ein Überdruck herrscht. Der Kugelhahn vor der Pumpe wird entsprechend soweit eingedrosselt, dass sich der optimale Volumenstrom durch die Messzelle einstellt. Unbedingt beachtet werden muss, dass sich niemals Luft in der Messzelle sammelt (auch nicht bei Stillstand der Pumpe). Trocknen die Messsonden aus, sind sie zerstört und müssen ersetzt werden.

Die Messzellen sind sehr teuer, die günstigste Zelle gibt es als Ersatzteil von der Firma Swimtec. Für die Messzelle empfiehlt der Hersteller einen Volumenstrom von 15-30 L/h. Die Messzelle ist für Elektroden mit einem PG13,5 Gewinde gedacht. Das haben allerdings nur recht teure (Industrie-)Sonden. Alle anderen Sonden kann man aber einfach mit einer PG13,5 Kabelverschraubung in der Messzelle befestigen, wo die Sonden mit 12mm Durchmesser sehr gut hineinpassen. An der Messzelle muss man dazu aber ein wenig an der Rückwand wegschleifen. Zudem braucht man noch passende O-Ringe zur Abdichtung.

Hardware vorbereiten

Die Sensoren von Atlas Scientific können über zwei Protokolle an den Raspberry angeschlossen werden: I2C und UART (RS-232). Zum Anschluss verwenden wir wie oben beschrieben das Carrierboard „Tentacle T3 for Raspberry Pi“ der Firma White Box Labs. Dieses unterstützt ausschließlich I2C. Standardmäßig werden aber die Circuits im Protokoll UART ausgeliefert. Um sie auf dem Carrier Board nutzen zu können, müssen sie auf das Protokoll I2C umgestellt werden. Das muss per Jumper-Kabel und kurzzeitiges Anlegen der Bestriebsspannung erfolgen. Alternativ könnt ihr Euch von WhiteLabs auch den I2C Toggler (siehe Einkaufsliste) mitbestellen. Damit ist es sehr einfach die Circuits auf I2C umzustellen, ohne das man ein Breadboard etc. benötigt. 

Leuchtet die LED auf dem Circuit in Grün, ist der UART Modus aktiviert, leuchtet sie in Blau, ist der I2C Modus aktiviert.

I2C Toggler:

http://whiteboxes.ch/docs/i2c-toggler/#/?id=introduction

Stellt den kleinen Schalter auf „pH / EC / ORP / DO“ und setzt den Circuit auf den Toggler. Dann einfach ein USB-Kabel anschließen oder den Toggler direkt in einen USB-Port stecken und den kleinen Taster 1 Sekunde lang gedrückt halten. Das schaltet den Circuit jeweils in den anderen Modus. Die LED muss dauerhaft Blau leuchten (I2C-Modus).

Tentacle T3

(c) by WhiteBox Labs

Manuelles Umschalten per Breadboard:

Nutzt dazu die Spannungsversorgung des Raspberrys (5V). Schließt zunächst GRD (Ground, schwarz) nicht an und verkabelt das Breadboard entsprechend der Abbildung. Das gelbe Jumper-Kabel muss an PIN „TX“ und „PGND“ angeschlossen werden (Kurzschluss). Achtung! Auf der Abbildung ist der PIN hier nur mit GND bezeichnet, auf meinem Circuit heisst er „PGND“ (für Probe GND - es ist der Ground-Anschluss der Messsonde). Ihr müsst den (P)GND auf der unteren Reihe verwenden, wo auch die Spannungsversorgung VCC sitzt.

Nach der Verkabelung das GND-Kabel (schwarz) einstecken und 1 Sekunde warten. Das schaltet den Circuit jeweils in den anderen Modus. Die LED muss dauerhaft Blau leuchten (I2C-Modus). Im Datenblatt findet ihr weitere Erläuterungen dazu: https://www.atlas-scientific.com/files/pH_EZO_Datasheet.pdf und https://www.atlas-scientific.com/files/ORP_EZO_Datasheet.pdf

Umschalten der Circuits: Rechts (Links: Dosierpumpen)

Einkaufsliste

Das Equipment von Atlas Scientific gibt es direkt beim Hersteller in den USA und bei einigen wenigen Distributoren: https://atlas-scientific.com/distributors/ Es lohnt auch ein Blick nach Amazon und eBay. Das Carrier Board von White Box Lab ist natürlich direkt bei White Box Lab erhältlich und auch bei Atlas Scientific im Webshop gelistet. Andere Distributoren habe ich nicht geprüft. Bitte beachtet, dass White Box Labs seinen Sitz in der Schweiz hat und bei der Einfuhr nach Deutschland somit noch Einfuhrumsatzsteuer (19%) beim Zoll fällig werden. Das Gleiche gilt auch bei der Bestellung direkt bei Atlas Scientific aus den USA. Der Distributor Robotshop.com hat einen Shop in Frankreich und liegt somit innerhalb der EU, sodass keine Einfuhrumsatzsteuer entrichtet werden muss. 

Ich verlinke hier unten die Produkte direkt bei Atlas Scientific, damit ihr wisst was ihr bestellen müsst. Sucht einfach in den anderen Webshops nach den entsprechenden Bezeichnungen. Bei den Fittingen achtet nach Möglichkeit darauf als Material Edelstahl oder Kunststoff zu verwenden. Vermeidet vernickelte oder verzinkte Fittinge. Die Teile kommen alle mit Chlorhaltigem Wasser in Berührung, was entsprechend aggressiv ist. Ich habe einige Beispiele auf Ebay verlinkt, es macht aber Sinn hier etwas zu suchen und dann alles bei einem Shop zu bestellen (Versandkosten).

6. Zusammenbau / Gehäuse

Die einzelnen Platinen (Tentacle und Adafruit LCD Plate) werden auf die GPIO-Leiste des Raspberry gesteckt. Da die Platinen „stackable“ sind, können sie aufeinander aufgebaut werden. Wir haben ein passendes Gehäuse für den 3D-Druck konstruiert, das Du Dir hier oder direkt bei Thingiverse herunterladen kannst:

https://www.thingiverse.com/thing:4552887

Poolmanager Desktopgehäuse v13.zip

Leider passt der Aufbau nicht in ein Standardhutschienengehäuse, daher gibt es aktuell noch kein Gehäuse für die Hutschiene.

1254687400.jpg

1254687401.jpg

7. Druckmessung / Filtervordruck (Schema: Nr. 9)

Zur Überwachung der Sandfilteranlage verbauen wir einen Drucksensor vor dem Filter. Dieser kann auch dazu verwendet werden, um eine laufende Pumpe (Druck > 0 bar) zu detektieren. Ich habe einfach das manuelle Manometer, welches im 6-Wege-Ventil der Sandfilteranlage verbaut war, gegen einen entsprechenden Drucksensor getauscht. Man benötigt einen Sensor für 0-5V und 30 PSI (entspricht 2 bar).

Die Anbindung des Drucksensors an den Raspberry erfolgt über 1-Wire. Dazu wird der Sensor an den DS2438 angeschlossen: Datenblatt 1-Wire Chip DS2438 Battery Smart Monitor. Dieser Chip kann direkt ohne weiteres Zubehör an den Raspberry angeschlossen werden. Die günstigen Drucktransmitter, die man in der Bucht findet, kommen alle aus China und sind mehr oder weniger alle baugleich. Sie haben jeweils einen Anschluss für +5V (meist rot), GND (meist schwarz) und das Messsignal 0-5V (meist blau). Zunächst muss der DS2438 auf den SOIC gelötet werden, was leider etwas fummelig ist. Anschließend wird der Transmitter an den 1-Wire-Bus angeschlossen: +5V an VDD, DATA an DQ und GND an GND. Der Drucksensor wiederum wird an +5V und GND des 1-Wire-Buses angeschlossen und das Messsignal (meist blaue Leitung) an VAD des DS2438.

Einkaufsliste: