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
- Modul an den Bus stecken.
- 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.
- Unter „Neue Geräte“ steht, was es erkannt hat, etwa „Erkannt: SHT4x an 0x44.“
- „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
Temperatur/Feuchte
Kennung temp_humidity
Lufttemperatur und Luftfeuchte. Eins je Kammer.
Sensor: SHT4x an 0x44, 0x45 oder 0x46
-
tempTemperatur -
rhLuftfeuchte -
supply.uVersorgung am Modul
Ausgänge: keine
CO₂
Kennung co2
CO₂ in der Kammer. Eins je Kammer.
Sensor: SCD40 oder SCD41 an 0x62
-
co2CO₂ -
supply.uVersorgung am Modul
Ausgänge: keine
Temperatur und Feuchte des SCD4x meldet das Modul nicht, dafür gibt es das Modul Temperatur/Feuchte.
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
-
luxBeleuchtungsstärke -
supply.uVersorgung am Modul
Ausgänge: keine
BME280
Kennung bme280
Temperatur, Luftfeuchte und Luftdruck aus einem Chip, meist außen als Vergleich zu den Kammern.
Sensor: BME280 an 0x76 oder 0x77
-
tempTemperatur -
rhLuftfeuchte -
pressureLuftdruck -
supply.uVersorgung am Modul
Ausgänge: keine
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
-
moist1Bodenfeuchte 1, braucht Kalibrierung -
moist2Bodenfeuchte 2, braucht Kalibrierung -
soiltemp1Bodentemperatur 1, aus dem Fühler -
soiltemp2Bodentemperatur 2, aus dem Fühler -
supply.uVersorgung am Modul
Ausgänge: keine
Temperatur
Kennung temperature
Wasserdichte Temperaturfühler in der Luft.
Sensor: DS18B20 oder DS1822, bis zu zwei
-
temp1Temperatur 1 -
temp2Temperatur 2 -
supply.uVersorgung am Modul
Ausgänge: keine
Bodentemperatur
Kennung soil_temp
Wasserdichte Temperaturfühler als zusätzliche Messpunkte im Boden.
Sensor: DS18B20 oder DS1822, bis zu zwei
-
soiltemp1Bodentemperatur 1 -
soiltemp2Bodentemperatur 2 -
supply.uVersorgung am Modul
Ausgänge: keine
Wassertemperatur
Kennung water_temp
Ein wasserdichter Temperaturfühler im Tank.
Sensor: DS18B20 oder DS1822
-
wtempWassertemperatur -
supply.uVersorgung am Modul
Ausgänge: keine
Füllstand
Kennung level
Füllstand des Tanks per Ultraschall.
Sensor: A02YYUW
-
levelFüllstand, braucht Kalibrierung -
supply.uVersorgung am Modul
Ausgänge: keine
Regensensor
Kennung rain_sensor
Regen und Regenmenge am Standort, Grundlage der Verriegelung „Deckel bei Regen“.
Sensor: Hydreon RG-15
-
rainRegen -
rain.mmRegenmenge heute -
supply.uVersorgung am Modul
Ausgänge: keine
Durchfluss
Kennung flow
Bis zu zwei Durchflussmesser, als Rückmeldung der Pumpen.
Sensor: zwei Hall-Pulsgeber, nicht erkennbar
-
flow1Durchfluss 1 -
flow2Durchfluss 2 -
supply.uVersorgung am Modul
Ausgänge: keine
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.uVersorgung 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.
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 … tach4Drehzahl 1 bis 4 -
supply.uLastversorgung 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.
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.uVersorgung 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.
Relais 8-fach
Kennung relay8
Acht frei zuweisbare, potentialfreie Relais für größere Anlagen, mit Strom- und Leistungsmessung je Ausgang.
-
supply.uVersorgung 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.
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.openAntrieb 1, Endkontakt offen -
end1.closedAntrieb 1, Endkontakt zu -
end2.openAntrieb 2, Endkontakt offen -
end2.closedAntrieb 2, Endkontakt zu -
supply.uLastversorgung 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.
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.
-
windWindgeschwindigkeit, Mittel über 60 Sekunden -
wind.gustBöe, höchstes Mittel über 3 Sekunden -
wind.dirWindrichtung, nur mit Windfahne -
supply.uVersorgung 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.
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.uVersorgung am Modul -
board.tempTemperatur der Platine, für den Kälteschutz -
luxUmgebungslicht, für die automatische Helligkeit -
backlightHelligkeit der Hintergrundbeleuchtung in Prozent
Ausgänge: keine
Universal
Kennung universal
Freie Ein- und Ausgänge für alles Weitere.
-
ain1Analogeingang 1, 0 bis 10 V -
ain2Analogeingang 2, 0 bis 10 V -
din1Digitaleingang 1 -
din2Digitaleingang 2
Ausgänge: 2 Schaltausgänge, Sicherung je 2 A
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.uSpannung der Einspeisung -
supply.iStrom 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.
Klima (alt)
Kennung climate
Luft einer Kammer in einem Modul. Ersetzt durch Temperatur/Feuchte, CO₂ und Lichtsensor.
-
tempLufttemperatur -
rhLuftfeuchte -
co2CO₂ -
luxLicht -
supply.uVersorgung am Modul -
sens.iStrom der Sensorversorgung
Ausgänge: keine
Boden (alt)
Kennung soil
Zwei Bodenfühler am RS485-Bus und zwei Temperaturfühler am 1-Wire-Bus. Ersetzt durch Bodenfeuchte.
-
moist1Bodenfeuchte 1 -
moist2Bodenfeuchte 2 -
soiltemp1Bodentemperatur 1 -
soiltemp2Bodentemperatur 2 -
supply.uVersorgung am Modul -
sens.iStrom der Sensorversorgung
Ausgänge: keine
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.
-
levelFüllstand -
wtempWassertemperatur -
flow1Durchfluss 1 -
flow2Durchfluss 2 -
supply.uVersorgung am Modul -
sens.iStrom der Sensorversorgung
Ausgänge: 1 Schaltausgang für das Ventil, Sicherung 2 A
Außen (alt)
Kennung outdoor
Wetter am Standort in einem Modul. Ersetzt durch BME280, Regensensor und Lichtsensor.
-
rainRegen -
rain.mmRegenmenge heute -
tempAußentemperatur -
rhAußenfeuchte -
pressureLuftdruck -
luxAußenlicht -
supply.uVersorgung am Modul -
sens.iStrom 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.