Wasserzähler
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Wasserzähler
Funktioniert es denn mit der korrigierten Version?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- Boxana
- Beiträge: 125
- Registriert: 19. Feb 2020 16:24
Re: Wasserzähler
Ja es scheint jetzt alles zu laufen.
Wenn der Regensensor Nass wird stopp er grundsätzlich das Wasser egal ob Automatik oder Manuell.
Auch stoppt das Wasser wenn die eingestellte menge an Wasser erreicht ist.
Sitemap:
was ich jetzt noch gerne wissen möchte, kann ich ein item so formatieren das ich die Kommastelle verschieben. Jetzt stimmt die Einheit cm³ nicht und müsste Liter heißen.
Ich finde aber deinen Vorschlag cm³ besser nur dann müsste das Kommazeichen um drei rutschen. Die Krönung wär wenn es nach dem Komma rot wäre.
Code: Alles auswählen
// Globale Variablen zu Beginn der Datei definieren!
var Number nWasseruhrAlt = null
rule "Beregnung Start"
when
Channel 'astro:sun:plus30:set#event' triggered START or Item Beregner changed to ON //Beregnung Starten 30 min nach Sonnenuntergang und Zähler starten wenn Manuel gestartet.
then
if(!(Rasen_Zaehlerstand_Wasseruhr.state instanceof Number)) { // Zählerstand ist keine gültige Zahl
logWarn("sprinkling","Beregnungsstart - Zählerstand kann nicht abgerufen werden!") // Warnmeldung
return; // Und Abbruch der Rule
}
if (Bewaesserungsautomatik.state == ON && Regen_Sensor_1.state == ON) {
Beregner.sendCommand(ON) // automatisch Starten wenn bedingungen erfüllt
}
nWasseruhrAlt = Rasen_Zaehlerstand_Wasseruhr.state as Number // alten Zählerstand retten
logInfo("sprinkling","Zählerstand bei Start: {} cm³", nWasseruhrAlt ) // und Erfolg melden
end
rule "Beregnung Stop"
when
Item Rasen_Zaehlerstand_Wasseruhr changed or Item Regen_Sensor_1 changed // starten wenn Zähler sich ändert oder es Regnet
then
val nWasseruhrNeu = Rasen_Zaehlerstand_Wasseruhr.state as Number
val nWassermenge = Soll_Wassermenge_Sprenkler.state as Number // aktueller Zählerstand
if(Regen_Sensor_1.state != ON) { // Regensensor Prüfen ob Nass
Beregner.sendCommand(OFF) // Regensensor Nass Bewässerung ausschalten
logInfo("sprinkling","Regen eingesetzt, Zählerstand bei Stop: {} cm³",nWasseruhrNeu) // Meldung ausgeben
nWasseruhrAlt = null // alten Zählerstand löschen
return; // Deshalb Abbruch
}
if(!(Rasen_Zaehlerstand_Wasseruhr.state instanceof Number)) { // Zählerstand ist keine gültige Zahl
logWarn("sprinkling","Beregnungsstop - Zählerstand kann nicht abgerufen werden!") // Warnmeldung
Beregner.sendCommand(OFF) //Wasser aus und Abbruch
return; // Und Abbruch der Rule
}
if(nWasseruhrAlt === null) { // Alter Zählerstand nicht gesetzt
logWarn("sprinkling","Beregnungsstop - Kein Vergleichszählerstand!") // Warnmeldung
Beregner.sendCommand(OFF) //Wasser aus und Abbruch
return; // Und Abbruch der Rule
}
if(nWasseruhrAlt + nWassermenge <= nWasseruhrNeu) { // Liter Beregnung mit Setpoint setzen
Beregner.sendCommand(OFF) // Beregner ausschalten
logInfo("sprinkling","Zählerstand bei Stop: {} cm³",nWasseruhrNeu) // Meldung ausgeben
nWasseruhrAlt = null // alten Zählerstand löschen
}
end
rule "Reset Schalter Wassertageszähler zurücksetzen"
when
Item Rasen_WasserZaehler_Reset received command ON
then
triggeringItem.sendCommand(OFF)
Wasseruhr_Impuls_Abfrage.sendCommand(ON)
Wasseruhr_Impuls_Abfrage.sendCommand(OFF)
end
Wenn der Regensensor Nass wird stopp er grundsätzlich das Wasser egal ob Automatik oder Manuell.
Auch stoppt das Wasser wenn die eingestellte menge an Wasser erreicht ist.
Sitemap:
Code: Alles auswählen
Frame label="Garten" {
Switch item=Garten_Licht_Hecke
Text item=Beregner label="Bewässerung: [%s]" icon="lawnmower" {
Frame label="Bewässerung" {
Switch item=Beregner label="Rassenbewässerung: [%s]" icon="lawnmower" visibility=[Bewaesserungsautomatik==OFF]
Text item=TagesZaehler_Rasensprenger icon="faucet" {
Switch item=Rasen_WasserZaehler_Reset icon="settings"
}
Switch item=Bewaesserungsautomatik
Text item=Regen_Sensor_1 icon="flow" label="Boden: [MAP(bodenfeuchte.map):%s]" valuecolor=[ON="red", OFF="green"]
Text item=Soll_Wassermenge_Sprenkler icon="faucet" {
Setpoint item=Soll_Wassermenge_Sprenkler label="Soll Wassermenge: [%.1f cm³]" step=250 minValue=250 maxValue=3000
}
}
Frame label="Gesammt" {
Text item=Rasen_Zaehlerstand_Wasseruhr
}
}
}
was ich jetzt noch gerne wissen möchte, kann ich ein item so formatieren das ich die Kommastelle verschieben. Jetzt stimmt die Einheit cm³ nicht und müsste Liter heißen.
Ich finde aber deinen Vorschlag cm³ besser nur dann müsste das Kommazeichen um drei rutschen. Die Krönung wär wenn es nach dem Komma rot wäre.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Openhab auf einem Qnap NAS
Gruß
Christian
Gruß
Christian
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Wasserzähler
Was mir gerade auffällt: es muss natürlich m³ (Kubikmeter) heißen, nicht cm³ (Kubikcentimeter, 1/1000 Liter)
Für Liter wären es übrigens dm³ (Kubikdezimeter)
Leider wird es nicht möglich sein, das Komma in der Anzeige zu verschieben. Grundsätzlich könnte man das erreichen, wenn man das Item als UoM Item nutzen könnte, aber dazu muss der gekoppelte Channel UoM unterstützen.
knx2 unterstützt (noch?) kein UoM.
Man könnte noch ein zweites Item zur Anzeige anlegen und den Wert dort per Rule durch 1000 geteilt anzeigen, aber das ist zumindest umständlich.

Leider wird es nicht möglich sein, das Komma in der Anzeige zu verschieben. Grundsätzlich könnte man das erreichen, wenn man das Item als UoM Item nutzen könnte, aber dazu muss der gekoppelte Channel UoM unterstützen.
knx2 unterstützt (noch?) kein UoM.
Man könnte noch ein zweites Item zur Anzeige anlegen und den Wert dort per Rule durch 1000 geteilt anzeigen, aber das ist zumindest umständlich.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet