Automatische Bewässerung von Gewächshaus und Rasen

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Automatische Bewässerung von Gewächshaus und Rasen

Beitrag von udo1toni »

Nein, die Gruppenzuordnung kannst Du ja jederzeit anpassen.
Vergleiche: Wenn ein Sensor "die Pflanze wechselt":
  • das entsprechende Item editieren und dort die Gruppenzugehörigkeit anpassen
  • zwei Rules (eben für die beiden betroffenen Pflanzen) anpassen und dort jeweils alles, was mit dem Item zu tun hat entfernen bzw. einfügen
Welche von beiden Optionen ist nun die einfachere?
Wie gesagt wäre es vermutlich sogar leicht möglich, alle Pflanzen mit einer einzigen Rule zu "erschlagen", es müssen nur die Rahmenbedingungen genau definiert sein:
  • Was sind die über alle Pflanzen identischen Anforderungen
  • Welche Grenzwerte müssen individuell pro Pflanze vorgegeben werden
  • Welche Werte müssen individuell pro Sensor vorgegeben werden
  • Welche Items (oder Gruppen von Items) sind pro Pflanze zuständig
Meinetwegen z.B.:
  • Die Bewässerung wird allgemein nur ausgeführt, wenn die Temperatur über +5 °C ist -> identisch, muss nur einmalig definiert werden
  • Pflanze 1 braucht mindestens 60% und höchstens 70% Bodenfeuchte, Pflanze 2 braucht mindestens 40% und höchstens 60% Bodenfeuchte -> individuelle Grenzwerte, die pro Pflanze festgelegt werden
  • individuelle Bewässerungsdauer pro Pflanze -> siehe vorheriger Punkt
  • Temperaturdrift pro Sensor unterschiedlich -> Korrekturwert pro Sensor festlegen
  • wechselnde Zuordnung der Sensoren -> Sensorgruppen pro Pflanze
Daraus entsteht dann eine Rule, welche regelmäßig durchlaufen wird (zeitliche Steuerung) oder bei wechselnden Eingangswerten. Als Prinzip:

Code: Alles auswählen

rule "Steuerung Pflanzen"
when
    Member of gPflanzsensoren changed
then
    // 1. Sensorgruppe ermitteln
    // 2. Pflanze ermitteln (abhängig von 1.)
    // 3. Grenzwerte und Vorgaben ermitteln (ergibt sich aus 1. und 2.)
    // 4. Messwerte aus Sensorgruppe ermitteln
    // 5. gewünschte Reaktion aufgrund von 4. bestimmen
    // 6. Steuerelement ansteuern
end
Hier wären alle Sensoren jeweils in zwei Gruppen, gPflanzsensoren und z.B. gPflanze_nn. Wechselt ein Sensor die Pflanze, so wird die Zugehörigkeit zu gPflanze_nn angepasst (aus der einen Gruppe entfernen, in die andere Gruppe einfügen)
2. ergibt sich aus _nn
3. wird entweder in einer Hahmap pro Grenzwertart fix definiert oder über Items definiert, dann kannst Du die Grenzwerte individuell pro Pflanze/Sensor vorgeben. Diese Items landen in einer weiteren Gruppe, aus der die Items leicht gefiltert werden können, um auf sie zuzugreifen. Die Items werden mit mapDB und Strategy everyChange, restoreOnStartup persistiert.
4. ergibt sich aus 1.
5. ergibt sich aus 2. und 3.
6. ergibt sich aus 2., 3. und 5.

Der Trick ist also, die Aufgabe so aufzuteilen, dass die einzelnen Aufgaben sehr einfach sind. Wichtig ist an dieser Stelle aber, dass es bestimmte Eigenschaften der Items gibt, so dass man diese eindeutig zueinander zuordnen kann. Da Sensoren unterschiedlich eingesetzt werden sollen, drängen sich individuelle Gruppen geradezu auf, da diese Zuordnung leicht innerhalb einer Rule ermitteln werden kann und sie jederzeit leicht angepasst werden kann - im Gegensatz zum Namen des Items, welcher nicht änderbar ist (außer man definiert das Item über Textdateien)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Automatische Bewässerung von Gewächshaus und Rasen

Beitrag von zinnik »

Danke für deine ausführliche erkläung Udo.

Ich muss mal schauen wie ich es mache.

Ich habe 10 Gardena Sensoren davon sind 5 immer an der gleichen stelle und bleiben auch dort wie zb. Rasen, Obstbeet, Kletterrosen, Blumen und Oleander

Bei den anderen 5 Sensoren die sind nicht dauerhaft im Einsatz sondern kommen erst dann im laufe der Saison dazu da sie in Pflanztöpfe kommen aber über eine Separate Bewässerungsleitung gesteuert werden. wie zb. Gurke 1, Gurke 2, Tomate, Andenbeere und Paprika.

Und daher wollte ich eine Steuerung der Sensoren sobald einer unter 40% Bodenfeuchtigkeit geht werden halt alle bewässert von denen 5 Sensoren.

Bisher habe ich immer nur einen Sensor von denen 5 abgefragt und dann die Rule auslösen lassen.

Vielleicht müsste ich dann die 5 in eine Gruppe packen

Lg Sven
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Automatische Bewässerung von Gewächshaus und Rasen

Beitrag von udo1toni »

Die Gruppe ist so oder so die einfachste Möglichkeit, das Problem zu lösen. :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Automatische Bewässerung von Gewächshaus und Rasen

Beitrag von zinnik »

Hast du ein Beispiel Screenshot wie ich die Gruppe mit Min und Max Werten anlege?
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Automatische Bewässerung von Gewächshaus und Rasen

Beitrag von udo1toni »

Als Textdatei geht das so:

Code: Alles auswählen

Group:Number:Dimensionless:MIN gFeuchteMin "Bodenfeuchte Minimum"  {unit="%", stateDescription=""[pattern="%.1f %%"]}
wobei das die OH4-Version ist. Solltest Du noch openHAB3 im Einsatz haben, gibt es keinen unit-Parameter, der Rest kann aber so bleiben.
Hast Du noch openHAB2, gibt es kein QuantityType und das Item sieht so aus:

Code: Alles auswählen

Group:Number:MIN gFeuchteMin "Bodenfeuchte Minimum [%.1f %%]"
Je nach Version unterscheiden sich die UI Ansichten hier teils erheblich, Du musst aber immer als Itemtyp Group:Number:MIN wählen, bestenfalls mit Dimension Dimensionless und Einheit %.
Screenshot 2024-03-27 141611.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Automatische Bewässerung von Gewächshaus und Rasen

Beitrag von zinnik »

Hallo Guten Morgen ich habe jetzt so weit die Gruppe erstellt
Screenshot (408).png
Screenshot (409).png
Jetzt müsste man die in die rule integrieren

Code: Alles auswählen

var minimum = 100
gBodenfeuchte_1.members.filter[s|s.state instanceof Number].forEach[i|
    if((i.state as Number).floatValue< minimum) 
        minimum = (i.state as Number).floatValue
]
if(minimum < 50)
...
Ich hab echt keine Ahnung und Verständnis von den Rules und dem Aufbau kann mir immer nur von deinen Vorgaben was ableiten.

Danke für deine Hilfe
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Automatische Bewässerung von Gewächshaus und Rasen

Beitrag von udo1toni »

Da die Gruppe selbst schon das Minimum bestimmt, reicht es, innerhalb der Rule den Status des Group Items abzufragen :)

Der gezeigte Code gilt für den Fall, dass die Gruppe das Minimum nicht selbst bestimmt. Er berücksichtigt auch, wenn ein Sensor keinen Wert liefert und damit das Item keine gültige Zahl enthält. Dann ginge die Berechnung des Minimum innerhalb der Rule schief (deswegen der Filter)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten