Hardware

Modultypen

Ein Modul ist ein kleiner Controller am Bus mit einer festen Aufgabe. Seit Version 0.10.0 liest ein Sensormodul genau eine Sensorart, erkennt seine Sensoren am Chip und meldet einen falschen oder fehlenden Sensor.

Auf dieser Seite

Ein Modul, eine Sensorart

Bis Version 0.9 bündelte ein Modul mehrere Sensorarten, etwa das Klimamodul Temperatur, Feuchte, CO₂ und Licht. Seit 0.10.0 heißt ein Modul nach seiner Sensorart: Temperatur/Feuchte, CO₂, Lichtsensor, BME280, Bodenfeuchte und so weiter. Mehrere Fühler derselben Art an einem Modul sind erlaubt, etwa zwei Bodenfühler oder zwei Temperaturfühler.

Der Grund: Ein Kanal, der zum Typ gehört, aber nicht angeschlossen ist, wäre für den Hub ausgefallen. Mit einem Modul je Sensorart ist die Verdrahtung einfacher, ein Fehler trifft nur ein Modul, und ein Modul lässt sich aus jedem einzelnen vorhandenen Sensor bauen.

Der Preis sind mehr Module am Bus. Das Hochbeet aus dem Plan wächst von 13 auf 22 Module, den Hub mitgezählt. Höchstens 64 Module hängen an einem Hub.

Ein Gerät, das mehrere Größen liefert, bleibt ein Modul: der BME280 (ein Chip), der Bodenfühler (Feuchte und Temperatur aus einem Fühler), der Regensensor (Regen und Menge) und der Wind (Anemometer und Fahne an einem Mast).

Anstecken und übernehmen

  1. Modul an den Bus stecken.
  2. Beim Start prüft es, welche Sensoren an I²C, 1-Wire und UART hängen, und meldet sich mit Seriennummer, Typ und Beschreibung seiner Kanäle.
  3. Unter „Neue Geräte“ steht, was es erkannt hat, etwa „Erkannt: SHT4x an 0x44.“
  4. „Modul übernehmen“ fragt nach Namen, Kammer, dem Ort der Sensoren und dem Modultyp. Der Typ ist mit dem Vorschlag der Erkennung vorbelegt.

Es gibt keine Adress-Schalter und keine Konfigurationsdatei. Welches Modul welches ist, zeigt der Knopf „Blinken“ in der Oberfläche: Am gewählten Modul blinkt die Leuchte blau, 5 Minuten lang. Ein zweiter Klick auf „Blinken beenden“ hört früher auf.

Ort der Sensoren. Beim Übernehmen wählt man, wo die Sensoren messen: in einer Kammer, im Tank, außen, im Schaltkasten oder „Später festlegen“. Vorbelegt ist der Ort nach dem Typ: Luft- und Bodensensoren in die einzige Kammer, Füllstand und Wassertemperatur in den einzigen Tank, Regen- und Windsensoren nach außen. Bei BME280 und Lichtsensor muss man wählen.

Wie ein Modul seine Sensoren erkennt

Ein Modul prüft an jedem Anschluss, welcher Chip dort hängt, nicht nur, ob etwas antwortet. Die Adresse allein reicht nie. Es liest die Kennung des Chips: ein ID-Register, eine Seriennummer mit Prüfsumme, die Familie eines 1-Wire-Fühlers oder eine Antwort im erwarteten Format.

Sensorart Erkannt wird
Temperatur/Feuchte SHT4x an 0x44, 0x45 oder 0x46
CO₂ SCD40 oder SCD41 an 0x62
Lichtsensor VEML7700 an 0x10
BME280 BME280 an 0x76 oder 0x77
Bodenfeuchte Modbus-Bodenfühler und SMT100 am RS485-Bus
Temperaturfühler DS18B20 oder DS1822 am 1-Wire-Bus, am ROM-Code
Füllstand A02YYUW am UART
Regensensor Hydreon RG-15 am UART
Durchfluss und Wind nicht erkennbar, der Typ wird bei der Übernahme gewählt

Häufige falsche Chips haben einen Namen, damit die Meldung sagt, was steckt, zum Beispiel BMP280, SHT3x, AHT20 oder SCD30. SHT40, SHT41 und SHT45 sind nicht zu unterscheiden, die Texte sagen SHT4x.

Geprüft wird beim Start, nach Fehlversuchen, jede Minute, solange etwas nicht stimmt, und alle 10 Minuten im Betrieb. Die Prüfung läuft nur zwischen zwei Messungen. Die Erkennung verlängert den Start um bis zu etwa 2,5 Sekunden.

Falscher oder fehlender Sensor

Falsch oder fehlend gilt erst nach zwei gleichen Ergebnissen. Dann sendet das Modul für diesen Sensor keine Werte, und der Hub setzt seine Kanäle sofort auf „Falscher Sensor angeschlossen“ oder „Kein Sensor angeschlossen“. Der Alarm nennt, was erwartet wurde und was steckt, etwa „BME280 erwartet, SHT4x gefunden“.

Anders als bei einer Störung gibt es keinen Neustart, keine Fehlversuche und keine Sperre. Ein Neustart macht aus einem SHT4x keinen BME280. Die Meldung endet von selbst, sobald der richtige Chip antwortet, spätestens 60 Sekunden nach dem Anstecken.

Der Modultyp

Das Modul speichert seinen Typ nie selbst. Ohne gesetzten Typ läuft es als sein Vorschlag oder, wenn es keinen gibt, als „Typ offen“. Dann schaltet es keinen Pin und meldet nur seine Versorgung.

Erkannt Vorschlag
genau eine Sensorart der Typ dieser Sensorart
nur DS18B20 oder DS1822 keiner; die Übernahme fragt „Wo misst der Fühler?“
mehrere Sensorarten keiner; für jeden Sensor ein eigenes Modul
eine Ausgangsplatine keiner; einen Typ mit Ausgängen wählt immer ein Mensch
nichts oder nur Unbekanntes keiner, „Typ offen“

Gesetzt wird der Typ bei der Übernahme. Der Hub schickt ihn an das Modul. Weicht er vom Vorschlag ab, startet das Modul einmal neu und meldet sich mit dem neuen Typ. Der Hub hält den Typ in seiner Konfiguration und setzt ihn wieder, wenn ein Modul seinen Speicher verliert.

„Typ ändern“ geht später nur für Admins und nur, solange kein Ausgang des Moduls in Gebrauch ist und nichts mehr einen Kanal nutzt, der wegfällt. Der Dialog zeigt, welche Kanäle bleiben, entfallen und hinzukommen. Typ wählen und ändern brauchen Hub und Modul ab Version 0.10.0.

Was ein Ausgang meldet

Die ersten vier Kanäle gehören fest zum Ausgang und erscheinen bei der Übernahme von selbst. Nur die externe Rückmeldung wird zugewiesen, etwa „Durchflussmesser 1 gehört zu Pumpe A“.

Kanal Inhalt Entsteht
Stellwert aus, ein oder Prozentwert, beim Antrieb die Zielstellung automatisch
Strom aktueller Strom des Verbrauchers automatisch
Spannung Spannung am Ausgang automatisch
Zustand in Ordnung, Überstrom, kein Verbraucher, Störung, neuer Versuch, gesperrt, beim Antrieb auch „Einrichtung ausstehend“ und „Kalibrierung ausstehend“ automatisch
Stellung nur Antrieb: geschätzte Stellung, als geschätzt gekennzeichnet automatisch
Leistung, Energie nur Relais automatisch
Externe Rückmeldung Durchfluss, Temperatur, Drehzahl, Endkontakt. Darf an einem anderen Modul hängen. Zuweisung im Browser

Auch die Drehzahl eines Lüfters ist eine zugewiesene Rückmeldung. Eine Heizung am selben Ausgang hätte sonst einen sinnlosen Drehzahlkanal.

Katalog

Die Kennung ist der Name des Typs im Code, in den Topics und in den Updates. Die Nummer des Typs im Speicher des Moduls ändert sich nicht, neue Typen kommen hinten dazu.

Sensormodule

in der Firmware

Temperatur/Feuchte

Kennung temp_humidity

Lufttemperatur und Luftfeuchte. Eins je Kammer.

Sensor: SHT4x an 0x44, 0x45 oder 0x46

  • temp Temperatur
  • rh Luftfeuchte
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

CO₂

Kennung co2

CO₂ in der Kammer. Eins je Kammer.

Sensor: SCD40 oder SCD41 an 0x62

  • co2 CO₂
  • supply.u Versorgung am Modul

Ausgänge: keine

Temperatur und Feuchte des SCD4x meldet das Modul nicht, dafür gibt es das Modul Temperatur/Feuchte.

in der Firmware

Lichtsensor

Kennung light_sensor

Beleuchtungsstärke, je Kammer und außen. Heißt Lichtsensor, damit er nicht mit der Leuchte verwechselt wird.

Sensor: VEML7700 an 0x10

  • lux Beleuchtungsstärke
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

BME280

Kennung bme280

Temperatur, Luftfeuchte und Luftdruck aus einem Chip, meist außen als Vergleich zu den Kammern.

Sensor: BME280 an 0x76 oder 0x77

  • temp Temperatur
  • rh Luftfeuchte
  • pressure Luftdruck
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

Bodenfeuchte

Kennung soil_moisture

Bis zu zwei Bodenfühler am RS485-Bus. Jeder Fühler misst Feuchte und Bodentemperatur.

Sensor: Modbus-Bodenfühler oder SMT100, bis zu zwei

  • moist1 Bodenfeuchte 1, braucht Kalibrierung
  • moist2 Bodenfeuchte 2, braucht Kalibrierung
  • soiltemp1 Bodentemperatur 1, aus dem Fühler
  • soiltemp2 Bodentemperatur 2, aus dem Fühler
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

Temperatur

Kennung temperature

Wasserdichte Temperaturfühler in der Luft.

Sensor: DS18B20 oder DS1822, bis zu zwei

  • temp1 Temperatur 1
  • temp2 Temperatur 2
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

Bodentemperatur

Kennung soil_temp

Wasserdichte Temperaturfühler als zusätzliche Messpunkte im Boden.

Sensor: DS18B20 oder DS1822, bis zu zwei

  • soiltemp1 Bodentemperatur 1
  • soiltemp2 Bodentemperatur 2
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

Wassertemperatur

Kennung water_temp

Ein wasserdichter Temperaturfühler im Tank.

Sensor: DS18B20 oder DS1822

  • wtemp Wassertemperatur
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

Füllstand

Kennung level

Füllstand des Tanks per Ultraschall.

Sensor: A02YYUW

  • level Füllstand, braucht Kalibrierung
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

Regensensor

Kennung rain_sensor

Regen und Regenmenge am Standort, Grundlage der Verriegelung „Deckel bei Regen“.

Sensor: Hydreon RG-15

  • rain Regen
  • rain.mm Regenmenge heute
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

Durchfluss

Kennung flow

Bis zu zwei Durchflussmesser, als Rückmeldung der Pumpen.

Sensor: zwei Hall-Pulsgeber, nicht erkennbar

  • flow1 Durchfluss 1
  • flow2 Durchfluss 2
  • supply.u Versorgung am Modul

Ausgänge: keine

in der Firmware

Typ offen

Kennung untyped

Ein Modul ohne gesetzten Typ und ohne Vorschlag der Erkennung. Es schaltet keinen Pin und wartet, bis bei der Übernahme ein Typ gewählt wird.

  • supply.u Versorgung am Modul

Ausgänge: keine

Ausgänge und Sonstiges

Jeder Ausgang bringt zusätzlich Strom, Spannung und Zustand mit, Antriebe die geschätzte Stellung, Relais Leistung und Energie.

in der Firmware

Leistung DC

Kennung power_dc

Vier MOSFET-Ausgänge für Gleichstromlasten mit 12 oder 24 V, stufenlos regelbar: Pumpen, Lüfter, Niedervolt-Heizungen, Ventile, Licht, auch die Nachfüllventile eines Tanks. Dazu Eingänge für die Drehzahl von Lüftern.

  • tach1 … tach4 Drehzahl 1 bis 4
  • supply.u Lastversorgung am Modul

Ausgänge: 4 Ausgänge mit PWM, Sicherung je 5 A

Das Modul hat eine eigene Lastversorgung. Die Nennspannung wird je Ausgang eingestellt. Auf dem ESP32-C3 haben nur zwei der vier Drehzahleingänge einen Pin.

in der Firmware

Relais 4-fach

Kennung relay4

Vier potentialfreie Relais im eigenen Gehäuse, jedes frei zuweisbar und mit eigener Leistungsmessung: Tankheizung, 230-V-Heizmatten, Licht.

  • supply.u Versorgung am Modul

Ausgänge: 4 Relais, Sicherung je 10 A, Leistung und Energie je Ausgang

Ein Regler schaltet ein Relais frühestens 30 Sekunden nach dem letzten Umschalten wieder um. Handbetrieb und Sicherheit schalten sofort. Die Leistungsmessung misst Wechselstrom.

in der Firmware

Relais 8-fach

Kennung relay8

Acht frei zuweisbare, potentialfreie Relais für größere Anlagen, mit Strom- und Leistungsmessung je Ausgang.

  • supply.u Versorgung am Modul

Ausgänge: 8 Relais, Sicherung je 10 A, Leistung und Energie je Ausgang

Die Relais hängen an einem Portexpander. Eine Relaisfreigabe am Controller macht im sicheren Zustand alle Spulen stromlos.

in der Firmware

Antrieb

Kennung drive

Zwei H-Brücken für Linearantriebe von Klappen und Deckeln mit 12 oder 24 V, mit Eingängen für Endschalter.

  • end1.open Antrieb 1, Endkontakt offen
  • end1.closed Antrieb 1, Endkontakt zu
  • end2.open Antrieb 2, Endkontakt offen
  • end2.closed Antrieb 2, Endkontakt zu
  • supply.u Lastversorgung am Modul

Ausgänge: 2 Antriebe, Zielstellung 0 bis 100 %, Sicherung je 4 A

Ein Antrieb bewegt sich erst, wenn seine Motordaten aus dem Datenblatt eingetragen sind und das Modul sie bestätigt hat. Ohne Stellungsrückmeldung rechnet das Modul die Stellung aus den kalibrierten Laufzeiten für Auf und Zu.

in der Firmware

Wind

Kennung wind

Schalenanemometer für Windgeschwindigkeit und Böen, optional eine Windfahne für die Richtung. Grundlage des Windschutzes, der die Deckel bei Sturm schließt. Ohne Windmodul nutzt der Windschutz die Wettervorhersage.

  • wind Windgeschwindigkeit, Mittel über 60 Sekunden
  • wind.gust Böe, höchstes Mittel über 3 Sekunden
  • wind.dir Windrichtung, nur mit Windfahne
  • supply.u Versorgung am Modul

Ausgänge: keine

Bleibt ein Modul, weil Anemometer und Fahne an einem Mast sitzen. Wind lässt sich nicht erkennen, der Typ wird bei der Übernahme gewählt.

in der Firmware

Anzeige

Kennung display

4,3"-Touchdisplay mit 800 × 480 Pixeln direkt am Beet, als normales Modul am Bus. Zeigt Messwerte, Regler, Ausgänge und Tanks, nach Anmeldung mit PIN auch zum Bedienen vor Ort. Keine Ausgänge, nur Diagnose. Eigene Firmware für den ESP32-S3.

  • supply.u Versorgung am Modul
  • board.temp Temperatur der Platine, für den Kälteschutz
  • lux Umgebungslicht, für die automatische Helligkeit
  • backlight Helligkeit der Hintergrundbeleuchtung in Prozent

Ausgänge: keine

in der Firmware

Universal

Kennung universal

Freie Ein- und Ausgänge für alles Weitere.

  • ain1 Analogeingang 1, 0 bis 10 V
  • ain2 Analogeingang 2, 0 bis 10 V
  • din1 Digitaleingang 1
  • din2 Digitaleingang 2

Ausgänge: 2 Schaltausgänge, Sicherung je 2 A

in der Firmware

Einspeisung

Kennung supply

Für größere Anlagen mit mehreren Netzteilen: speist 24 V in den Bus ein und misst den Gesamtstrom. Beim Kräuterbeet übernimmt das der Hub.

  • supply.u Spannung der Einspeisung
  • supply.i Strom der Einspeisung

Ausgänge: keine

Ein Ausgang eines neu übernommenen Moduls ist erst in Gebrauch, wenn er eine Rolle bekommt, etwa „Pumpe“ oder „Heizung“. Bis dahin liegt er im Modell in der Ablage unter „Ohne Rolle“. Das Nachfüllventil eines Tanks hat keinen eigenen Modultyp. Es hängt wie die Ventile der Kammern an einem Leistungsmodul DC, eines je Tank.

Sammelmodule (alt)

Die vier Sammelmodule bis Version 0.9 laufen weiter. Kanäle, Verlauf, Regeln und Verriegelungen bleiben. Die Oberfläche zeigt sie mit „(alt)“ und bietet sie für neue Module nicht mehr an. Wer ein echtes Sammelmodul aufteilen will, nimmt „Typ ändern“ und baut für die übrigen Sensoren eigene Module.

alt, läuft weiter

Klima (alt)

Kennung climate

Luft einer Kammer in einem Modul. Ersetzt durch Temperatur/Feuchte, CO₂ und Lichtsensor.

  • temp Lufttemperatur
  • rh Luftfeuchte
  • co2 CO₂
  • lux Licht
  • supply.u Versorgung am Modul
  • sens.i Strom der Sensorversorgung

Ausgänge: keine

alt, läuft weiter

Boden (alt)

Kennung soil

Zwei Bodenfühler am RS485-Bus und zwei Temperaturfühler am 1-Wire-Bus. Ersetzt durch Bodenfeuchte.

  • moist1 Bodenfeuchte 1
  • moist2 Bodenfeuchte 2
  • soiltemp1 Bodentemperatur 1
  • soiltemp2 Bodentemperatur 2
  • supply.u Versorgung am Modul
  • sens.i Strom der Sensorversorgung

Ausgänge: keine

alt, läuft weiter

Wasser (alt)

Kennung water

Alles rund um den Tank in einem Modul, mit dem Ausgang für das Nachfüllventil. Ersetzt durch Füllstand, Wassertemperatur, Durchfluss und ein Leistungsmodul DC je Tank.

  • level Füllstand
  • wtemp Wassertemperatur
  • flow1 Durchfluss 1
  • flow2 Durchfluss 2
  • supply.u Versorgung am Modul
  • sens.i Strom der Sensorversorgung

Ausgänge: 1 Schaltausgang für das Ventil, Sicherung 2 A

alt, läuft weiter

Außen (alt)

Kennung outdoor

Wetter am Standort in einem Modul. Ersetzt durch BME280, Regensensor und Lichtsensor.

  • rain Regen
  • rain.mm Regenmenge heute
  • temp Außentemperatur
  • rh Außenfeuchte
  • pressure Luftdruck
  • lux Außenlicht
  • supply.u Versorgung am Modul
  • sens.i Strom der Sensorversorgung

Ausgänge: keine

Eine Firmware für alle Typen

Es gibt genau ein Modul-Image für alle Modultypen, auf dem ESP32-C3 SuperMini. Ein Image für alle hat einen praktischen Grund: Der Hub verteilt Updates mit einer einzigen Datei an alle Module. Wie man flasht, steht unter Flashen.

Im Modul selbst

Diese Aufgaben laufen im Modul und brauchen weder Hub noch Server:

  • elektronische Sicherung je Ausgang
  • Erkennung „kein Verbraucher“
  • maximale Laufzeit mit Zwangspause
  • sicherer Zustand, wenn das Lebenszeichen des Hubs 10 Sekunden ausbleibt
  • Antrieb: nur mit bestätigten Motordaten fahren, Stellung schätzen, Endlage erkennen, Kalibrierlauf, Klemmen erkennen, zurückfahren, neu versuchen
  • Prüfung von Antwort und Bereich der eigenen Sensoren
  • Erkennung der Sensoren am Chip
  • Neustart eines Sensors. Ein Modul mit ESP32-C3 kann die Sensorversorgung nicht schalten; dort heißt Neustart, den Chip neu einzurichten.

Sprung und Stillstand eines Messwerts prüft der Hub, ebenso die Wirkung eines Ausgangs. Die Rückmeldung dafür kann an einem anderen Modul hängen, das kennt nur der Hub.

Die Abläufe stehen unter Selbstüberwachung.

Funkmodule

Funkmodule sind später möglich. Über ESP-NOW sprechen sie direkt mit dem Hub. Das ist kein WLAN: keine Zugangsdaten, kein Router, keine IP-Adresse.

    Durchsucht alle Seiten. Die Suche läuft im Browser, nichts wird übertragen.