Seite 3 von 8
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 31. Mär 2022 11:43
von udo1toni
zinnik hat geschrieben: ↑30. Mär 2022 22:42
Gibt es eine Möglichkeit die kleinen Sitemaps zu pflegen und die dann zb verlinken in eine große(haupt) Sitemap?
Nein, das geht nicht. Die Sitemap beschreibt alles, was sichtbar bzw. auswählbar ist. Du kannst beliebig tief verschachteln, ich habe z.B. auf meiner "Startseite" lauter Text Widgets, welche in andere Ansichten verzweigen, Altbau, Außenbereich, Erdgeschoss, Obergeschoss, Wetter, Astrodaten (Sonne & Mond), Heizung, Rollläden, alle Lichter, Multimedia.
In Erdgeschoss und Obergeschoss habe ich dann weitere Text Widgets, für jeden Raum eines. Darunter befinden sich dann alle Widgets, um die diesem Raum zugeordneten Dinge zu steuern, Heizung, Rollläden, Licht, Multimedia.
Ich kann aber auch direkt von der Hauptseite alle Lichter im Haus ausschalten oder auf alle Rollläden zugreifen usw.
Das bedeutet natürlich, dass ich die Elemente mehrfach in der Sitemap abbilden muss.
Aber es muss eben alles in die eine Sitemap rein.
Group Widgets nutze ich überhaupt nicht, die sind zwar für den schnellen Erfolg nett, aber man verliert jegliche Kontrolle über die Widgets, da alles ausschließlich mit dem Default Widget eingebunden wird.
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 31. Mär 2022 17:28
von zinnik
Ja so habe ich bei mir momentan auch. Aber irgendwie werden es immer mehr Oberkategorien, auf die ich schnell zu greigen möchte so, dass ich es fast nicht mehr auf eine Übersicht bekomme ohne viel zu scrollen.
Ich nutze zb Group Widgets konnte aber nie genau feststellen was der Vorteil von einem Group und/oder Textwidget ist.
Wollte meine Sitemap posten leider gehts nicht in einem *lol*
"Dein Beitrag besteht aus 89613 Zeichen.
Es sind maximal 60000 Zeichen erlaubt."
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 31. Mär 2022 18:24
von udo1toni

Muss ja auch gar nicht sein.
Meine Sitemap könnte ich im Übrigen auch nicht direkt hoch laden, 78.145 Zeichen... ohne Indentations käme ich dann hin, 57.810 Zeichen...
Der Witz ist aber, dass ich im täglichen Betrieb eigentlich nur eine Handvoll Items bräuchte, also locker 95% könnte ich auch weg lassen. Aber natürlich gibt es Situationen, in denen ich dennoch vollen Zugriff haben möchte.
Das Group Widget ist nur zu einem gut: schnelle Ergebnisse. Man bekommt eine extrem kurze Sitemap:
Code: Alles auswählen
sitemap schnell label="Schnelle Sitemap" {
Group item=gAlle
}
In der Gruppe gAlle gibt es diverse Untergruppen mit Untergruppen und weiteren Untergruppen... irgendwo sind auch normale Items drin.
Das Blöde daran ist aber, dass man z.B. Temperaturen nicht einstellen kann, weil Number Items per Default als Text Widget eingefügt werden. Unterschiedliche Farben bei unterschiedlichen Status? Fehlanzeige. Items in Abhängigkeit anderer Itemstatus ausblenden? Fehlanzeige. Reihenfolge der Einträge sicher festlegen? Fehlanzeige.
Aber die Sitemap ist schön kompakt und umfasst alles, was so definiert wurde.
Will man hingegen volle Kontrolle, muss die Sitemap eben von Hand angelegt werden. Dafür habe ich im Raum "Schlafzimmer" z.B. ein Label "Deckenleuchte", während in der Übersicht der eingeschalteten Leuchten hier "Deckenleuchte Schlafzimmer" steht. In der Übersicht werden nur eingeschaltete Leuchten angezeigt, das übergeordnete Item zeigt die Anzahl der eingeschalteten Leuchten an, es wird ein Knopf zum Ausschalten aller Leuchten auf einen Schlag eingeblendet usw...
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 31. Mär 2022 19:07
von zinnik
Ah ok verstehe.
Solche Groups wie "gAlle" hab ich gar nicht da ich glich mit oh 3 alles über Main UI angelegt habe.
Des Weiteren bin ich auch nicht so Fit wie du beschreibst, das dann alle leuchten angezeigt werden die angeschaltet sind.
Also als Oberbegriff nimmst du Dann zb:
Code: Alles auswählen
sitemap page_c83e27cf8e label="Test" {
Text label="Erdgeschoss" {
Text label="Wohnzimmer" {
Text label="Deckenlampe" {
Colorpicker label="Farbe einstellen"
}
}
}
}
Wann nimmt man dann Default Wdget? unter Default gibt ja dann keine Unterverzeichnis mehr?
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 31. Mär 2022 20:15
von udo1toni
Default kann man verwenden, dann wird das Widget verwendet, welches als Default für den Itemtyp hinterlegt ist.
Die einzelnen Widget Typen (und eigentlich alles, was man zur Konfiguration wissen muss) kannst Du hier nachlesen:
https://www.openhab.org/docs/ui/sitemaps.html
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 27. Mai 2023 15:56
von zinnik
Hallo wie könnte man denn die Rule erweitern, dass wenn Regentank unter 20% Füllstand ist nur noch über Hauswasser bewässert wird.
Und wenn Füllstand Zwischen 99% und 21% über regentank Bewässert wird.
Es gibt noch ein Item "Fuellstandssensor_Regenfass_Fuellstand" (Number:Dimensless)
Item Hauswasser "shellyplugsWandprojektion192168180_Betrieb"
Item Pumpe Regenwasser "FRITZDECT210_Steckdose"
Code: Alles auswählen
if(BodenfeuchtesensorBeet_Bodenfeuchtigkeit.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((BodenfeuchtesensorBeet_Bodenfeuchtigkeit.state as Number).floatValue >= 45) // größer oder gleich 45?
return; // dann Rule abbrechen
if(BodenfeuchtesensorBeet_Bodentemperatur.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((BodenfeuchtesensorBeet_Bodentemperatur.state as Number).floatValue <= 1) // kleiner oder gleich 1?
return; // dann Rule abbrechen
shellyplugsWandprojektion192168180_Betrieb.sendCommand(ON) // Hauswasser Ventil einschalten
Bewaesserung_1_STATE.sendCommand(ON) // Ventil einschalten
// FRITZDECT210_Steckdose.sendCommand(ON) // Pumpe Regenwasser einschalten
createTimer(now.plusSeconds(600), [| // Timer für Bewässerungsdauer
// FRITZDECT210_Steckdose.sendCommand(OFF) // Pumpe Regenwasser ausschalten
Bewaesserung_1_STATE.sendCommand(OFF) // Ventil ausschalten
shellyplugsWandprojektion192168180_Betrieb.sendCommand(OFF) // Hauswasser Ventil ausschalten
])
Lg Sven
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 27. Mai 2023 16:25
von udo1toni
Unvollständige Rules kann man natürlich erweitern, allerdings könnte es zu unvorhergesehenen Nebenwirkungen kommen. Deshalb bitte immer vollständige Rules einfügen.
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 27. Mai 2023 17:29
von zinnik
Ja sorry ich wusste nicht genau wie ich es schreiben sollte da ich die Ruele nur über die UI erstellt habe.
Hilft dir der Screenshot weiter?
Screenshot (269).png
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 27. Mai 2023 20:26
von udo1toni
Ich hatte es oben eigentlich geschrieben...
BITTE die Code-Ansicht posten, und zwar in Textform, NICHT als Screenshot.
Es geht mir nicht darum, groß und fett ein When Then But Only If zu lesen, sondern um den Code.
Die Codeansicht enthält die vollständige Rule, nicht nur einen Teil.
Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 27. Mai 2023 21:53
von zinnik
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
time: 09:00
type: timer.TimeOfDayTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: "
\ if(BodenfeuchtesensorBeet_Bodenfeuchtigkeit.state
instanceof Number) // enthält das Item einen gültigen
Zahlenwert?
\ if((BodenfeuchtesensorBeet_Bodenfeuchtigkeit.state as
Number).floatValue >= 45) // größer oder gleich 45?
\ return; \
// dann Rule abbrechen
\ if(BodenfeuchtesensorBeet_Bodentemperatur.state instanceof
Number) // enthält das Item einen gültigen
Zahlenwert?
\ if((BodenfeuchtesensorBeet_Bodentemperatur.state as
Number).floatValue <= 1) // kleiner oder gleich 1?
\ return; \
// dann Rule abbrechen
\ \
\ shellyplugsWandprojektion192168180_Betrieb.sendCommand(\
ON) // Hauswasser Ventil einschalten
\ Bewaesserung_1_STATE.sendCommand(ON) \
// Ventil einschalten
\ //
FRITZDECT210_Steckdose.sendCommand(ON) \
// Regenwasser Pumpe einschalten
\ createTimer(now.plusSeconds(600),
[| // Timer für
Bewässerungsdauer
\ //
FRITZDECT210_Steckdose.sendCommand(OFF) \
// Regenwasser Pumpe ausschalten
\ Bewaesserung_1_STATE.sendCommand(OFF) \
// Ventil ausschalten
\ shellyplugsWandprojektion192168180_Betrieb.sendCommand\
(OFF) // Hauswasser Ventil ausschalten
\ ])
\ \
\ "
type: script.ScriptAction
Ok dann hatte ich das falsch verstanden.
Ich würde sie dann gerne in eine dsltext.rules speichern