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: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

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

Beitrag von udo1toni »

Also, ich weiß ja nicht, was Du da anstellst...

Egal.

Code: Alles auswählen

rule "Bewässerung"
when
    Time cron "0 0 9 * * ?"  // täglich um 09:00:00 Uhr
then
    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
    ])
end
Das ist Deine Rule als reine DSL Rule. Der Name der Datei, in die Du die Rule packst, ist egal, solange sie im Verzeichnis /etc/openhab/rules/ liegt und die Endung .rules trägt.

Was die Steuerung der Wasserquelle betrifft, so ist es das Einfachste, das mit zwei Rules zu erledigen, zumal Du die Wasserzufuhr dynamisch steuern musst, also auch während der Bewässerung umschalten.

Code: Alles auswählen

rule "Bewässerung"
when
    Time cron "0 0 9 * * ?"  // täglich um 09:00:00 Uhr
then
    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

    Bewaesserung_1_STATE.sendCommand(ON)                                                    // Ventil einschalten
    createTimer(now.plusSeconds(600), [|                                                    // Timer für Bewässerungsdauer
        Bewaesserung_1_STATE.sendCommand(OFF)                                               // Ventil ausschalten
    ])
end

rule "Bewässerung Quelle"
when
    Item Bewaesserung_1_STATE changed or                                                    // Ventil wurde geschaltet
    Item Fuellstandssensor_Regenfass_Fuellstand changed                                     // Wasserstand hat sich geändert
then
    var Integer iRegenfass = 0                                                              // Initialwert Regentonne
    var swHW = OFF                                                                          // Initialwert Switch Hauswasser
    var swRT = OFF                                                                          // Initialwert Switch Regentonne
    if(Fuellstandssensor_Regenfass_Fuellstand.state instanceof Number)                      // Falls Wasserstand gültig
        iRegenfass = (Fuellstandssensor_Regenfass_Fuellstand.state as Number).intValue      // setze Füllstand

    if(Bewaesserung_1_STATE.state == ON) {                                                  // Falls Bewässerung aktiv
        if(iRegenfass > 20)                                                                 // Falls Füllstand über 20 %
            swRT = ON                                                                       // Regentonne aktivieren
        else                                                                                // sonst
            swHW = ON                                                                       // Hauswasser aktivieren
    }
    if(shellyplugsWandprojektion192168180_Betrieb.state != swHW)                            // Falls Soll von Ist abweicht
        shellyplugsWandprojektion192168180_Betrieb.sendCommand(swHW.toString)               // sende Schaltbefehl

    if(FRITZDECT210_Steckdose.state != swRT)
        FRITZDECT210_Steckdose.sendCommand(swRT.toString)
end
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 »

Ok prima vielen Dank ich werde das mal heute probieren wenn ich daheim bin.

Ich habe 4 Ventile
Bewaesserung_1_STATE
Bewaesserung_2_STATE
Bewaesserung_3_STATE
Bewaesserung_4_STATE

Kann man die in den beiden rules mit dazu fügen oder besser separate rules für jedes Ventil da sie auch zu unterschiedlichen zeiten laufen sollen. D vermutlich sonst der Wasserdruck zusammenfällt.

Danke dir Udo für deine Hilfe.

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: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

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

Beitrag von udo1toni »

Der einfachste Weg wäre, ein Group Item zu verwenden, aber Du kannst natürlich auch die einzelnen Ventile aufführen:

Code: Alles auswählen

rule "Bewässerung Quelle"
when
    Item Bewaesserung_1_STATE changed or                                                    // Ventil wurde geschaltet
    Item Bewaesserung_2_STATE changed or                                                    // Ventil wurde geschaltet
    Item Bewaesserung_3_STATE changed or                                                    // Ventil wurde geschaltet
    Item Bewaesserung_4_STATE changed or                                                    // Ventil wurde geschaltet
    Item Fuellstandssensor_Regenfass_Fuellstand changed                                     // Wasserstand hat sich geändert
then
    var Integer iRegenfass = 0                                                              // Initialwert Regentonne
    var swHW = OFF                                                                          // Initialwert Switch Hauswasser
    var swRT = OFF                                                                          // Initialwert Switch Regentonne
    if(Fuellstandssensor_Regenfass_Fuellstand.state instanceof Number)                      // Falls Wasserstand gültig
        iRegenfass = (Fuellstandssensor_Regenfass_Fuellstand.state as Number).intValue      // setze Füllstand

    if(Bewaesserung_1_STATE.state == ON
    || Bewaesserung_2_STATE.state == ON 
    || Bewaesserung_3_STATE.state == ON
    || Bewaesserung_4_STATE.state == ON) {                                                  // Falls Bewässerung aktiv
        if(iRegenfass > 20)                                                                 // Falls Füllstand über 20 %
            swRT = ON                                                                       // Regentonne aktivieren
        else                                                                                // sonst
            swHW = ON                                                                       // Hauswasser aktivieren
    }
    if(shellyplugsWandprojektion192168180_Betrieb.state != swHW)                            // Falls Soll von Ist abweicht
        shellyplugsWandprojektion192168180_Betrieb.sendCommand(swHW.toString)               // sende Schaltbefehl

    if(FRITZDECT210_Steckdose.state != swRT)
        FRITZDECT210_Steckdose.sendCommand(swRT.toString)
end
Der bessere Weg ist ein Group Item, welches alle Ventile enthält, z.B. gVentile

Code: Alles auswählen

rule "Bewässerung Quelle"
when
    Member of gVentile changed or                                                           // Ventil wurde geschaltet
    Item Fuellstandssensor_Regenfass_Fuellstand changed                                     // Wasserstand hat sich geändert
then
    var Integer iRegenfass = 0                                                              // Initialwert Regentonne
    var swHW = OFF                                                                          // Initialwert Switch Hauswasser
    var swRT = OFF                                                                          // Initialwert Switch Regentonne
    if(Fuellstandssensor_Regenfass_Fuellstand.state instanceof Number)                      // Falls Wasserstand gültig
        iRegenfass = (Fuellstandssensor_Regenfass_Fuellstand.state as Number).intValue      // setze Füllstand

    if(gVentile.members.filter[v|v.state == ON].size > 0) {                                 // Falls Bewässerung aktiv
        if(iRegenfass > 20)                                                                 // Falls Füllstand über 20 %
            swRT = ON                                                                       // Regentonne aktivieren
        else                                                                                // sonst
            swHW = ON                                                                       // Hauswasser aktivieren
    }
    if(shellyplugsWandprojektion192168180_Betrieb.state != swHW)                            // Falls Soll von Ist abweicht
        shellyplugsWandprojektion192168180_Betrieb.sendCommand(swHW.toString)               // sende Schaltbefehl

    if(FRITZDECT210_Steckdose.state != swRT)
        FRITZDECT210_Steckdose.sendCommand(swRT.toString)
end
Und die Gruppe hat noch weitere Vorteile, z.B. wenn es darum geht, die Ventile nacheinander zu öffnen :)
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 »

udo1toni hat geschrieben: 28. Mai 2023 00:01 Also, ich weiß ja nicht, was Du da anstellst...

Egal.

Code: Alles auswählen

rule "Bewässerung"
when
    Time cron "0 0 9 * * ?"  // täglich um 09:00:00 Uhr
then
    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
    ])
end
Das ist Deine Rule als reine DSL Rule. Der Name der Datei, in die Du die Rule packst, ist egal, solange sie im Verzeichnis /etc/openhab/rules/ liegt und die Endung .rules trägt.

Was die Steuerung der Wasserquelle betrifft, so ist es das Einfachste, das mit zwei Rules zu erledigen, zumal Du die Wasserzufuhr dynamisch steuern musst, also auch während der Bewässerung umschalten.

Code: Alles auswählen

rule "Bewässerung"
when
    Time cron "0 0 9 * * ?"  // täglich um 09:00:00 Uhr
then
    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

    Bewaesserung_1_STATE.sendCommand(ON)                                                    // Ventil einschalten
    createTimer(now.plusSeconds(600), [|                                                    // Timer für Bewässerungsdauer
        Bewaesserung_1_STATE.sendCommand(OFF)                                               // Ventil ausschalten
    ])
end

rule "Bewässerung Quelle"
when
    Item Bewaesserung_1_STATE changed or                                                    // Ventil wurde geschaltet
    Item Fuellstandssensor_Regenfass_Fuellstand changed                                     // Wasserstand hat sich geändert
then
    var Integer iRegenfass = 0                                                              // Initialwert Regentonne
    var swHW = OFF                                                                          // Initialwert Switch Hauswasser
    var swRT = OFF                                                                          // Initialwert Switch Regentonne
    if(Fuellstandssensor_Regenfass_Fuellstand.state instanceof Number)                      // Falls Wasserstand gültig
        iRegenfass = (Fuellstandssensor_Regenfass_Fuellstand.state as Number).intValue      // setze Füllstand

    if(Bewaesserung_1_STATE.state == ON) {                                                  // Falls Bewässerung aktiv
        if(iRegenfass > 20)                                                                 // Falls Füllstand über 20 %
            swRT = ON                                                                       // Regentonne aktivieren
        else                                                                                // sonst
            swHW = ON                                                                       // Hauswasser aktivieren
    }
    if(shellyplugsWandprojektion192168180_Betrieb.state != swHW)                            // Falls Soll von Ist abweicht
        shellyplugsWandprojektion192168180_Betrieb.sendCommand(swHW.toString)               // sende Schaltbefehl

    if(FRITZDECT210_Steckdose.state != swRT)
        FRITZDECT210_Steckdose.sendCommand(swRT.toString)
end
Hi Udo hab jetzt mal die Rule getestet in dem ich die Cron time angepasst habe.

Der Tankfüllstand ist bei 52% das Bewässerungsventil "Bewaesserung_1_STATE" öffnet. Aber die Regenwasser Pumpe "FRITZDECT210_Steckdose" schaltet nicht ein. Versuche ich diese mit Hand einzuschalten, schaltet diese sich gleich wieder aus.

Edit: Also Bewässerungsventil öffnet sich und Timer läuft ab aber Regenwasserpumpe und /oder Hauswasser ventil schalten sich nicht ein.

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: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

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

Beitrag von udo1toni »

Und Du hast die beiden Rules in einer Textdatei angelegt? Beide Rules (es sind zwei Rules!) sind in der UI unter den Rules gelistet und sichtbar?
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 »

udo1toni hat geschrieben: 28. Mai 2023 16:16 Und Du hast die beiden Rules in einer Textdatei angelegt? Beide Rules (es sind zwei Rules!) sind in der UI unter den Rules gelistet und sichtbar?
Also ich habe eine Datei mit namen "Bewaesserung_dynamisch_Blumenbeet.rules"

darin habe ich dann beide rules gepackt. Du meintest ja damals mal ich kann mehrere rules in eine Datei packen

Code: Alles auswählen

rule "Bewässerung"
when
    Time cron "0 0 9 * * ?"  // täglich um 09:00:00 Uhr
then
    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
    ])
end
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

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

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

Beitrag von zinnik »

Also habe es gerade nochmal getestet weil ich ein Item vertauscht hatte das item "shellyplugsWandprojektion192168180_Betrieb"

war falsch von mir zugeordnet.

Eigentlich funktioniert zumindestestens das mit Regenwasser bewässern jedoch was komisch war das Regenwasser pumpe kurz angeschaltet war ca10sec. dann gleich wieder an und nach ca. 1min dann wieder an und bleibt jetzt, hoffe ich die 600s Timer an.

Die Umschaltung auf HausWasser kann ich erst testen wenn der Tank die 20% erreicht hat.

Wenn du möchtest kannst du nochmal über die Rule schauen warum Regenwasserpumpe sich kur "An" und wieder "Aus" geschaltet hat.

Und warum auch so viele Schaltungen sind oder ist das normal?

Code: Alles auswählen

2023-05-28 19:14:00.749 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:00.750 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:00.756 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Bewaesserung_1_STATE' changed from OFF to ON
2023-05-28 19:14:00.779 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'FRITZDECT210_Steckdose' received command ON
2023-05-28 19:14:00.780 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'FRITZDECT210_Steckdose' predicted to become ON
2023-05-28 19:14:00.786 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'FRITZDECT210_Steckdose' changed from OFF to ON
2023-05-28 19:14:01.449 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:01.459 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:01.726 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 37.12 W to 39.23 W
2023-05-28 19:14:02.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:02.449 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:03.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:03.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:03.852 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'hue:0100:605ab3832d:35' changed from OFFLINE: Die Hue Bridge meldet, dass die Lampe nicht erreichbar ist. to ONLINE
2023-05-28 19:14:04.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:04.449 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:05.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:05.449 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:05.680 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 39.23 W to 40.12 W
2023-05-28 19:14:06.450 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:06.452 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:07.119 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shelly_plug_s_79_shellyplugsde2d09192168179_Signalstarke' changed from 2 to 1
2023-05-28 19:14:07.397 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shelly_plug_s_80_shellyplugsde4aaa192168180_Signalstarke' changed from 1 to 2
2023-05-28 19:14:07.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:07.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:07.630 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Gefrierschranktemp_Temperature' changed from -15.530000000000001 °C to -15.01 °C
2023-05-28 19:14:07.630 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Gefrierschranktemp_LastUpdated' changed from 2023-05-28T19:09:23.601+0200 to 2023-05-28T19:14:07.624+0200
2023-05-28 19:14:07.646 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Gefrierschrankhum_Humidity' changed from 57.17 % to 55.32 %
2023-05-28 19:14:07.757 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 40.12 W to 36.93 W
2023-05-28 19:14:08.120 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'BMW530dxDrive_LetzteAktualisierung' changed from 2023-05-28T19:07:19.000+0200 to 2023-05-28T19:09:38.000+0200
2023-05-28 19:14:08.124 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'BMW530dxDrive_Heckklappe' changed from Open to Closed
2023-05-28 19:14:08.450 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:08.451 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:09.449 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:09.449 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:09.701 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_PowerConsumption' changed from 5.630000114440918 W to 6.710000038146973 W
2023-05-28 19:14:09.701 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_Temperature' changed from 20.920000076293945 °C to 20.899999618530273 °C
==> /logs/openhab.log <==
2023-05-28 19:14:09.887 [INFO ] [openhab.core.model.script.Solarpanel] - Sekunde: 69249 
2023-05-28 19:14:09.888 [INFO ] [openhab.core.model.script.Solarpanel] - Leistung: 61.26839908573900 Sekunde: 69249 Tagesertrag: 1.17854871 kWh
==> /logs/events.log <==
2023-05-28 19:14:09.889 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_Ertrag_Tag' changed from 1.17853286 to 1.17854871
2023-05-28 19:14:10.063 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'EnergieTVGaestezimmer_Voltage' changed from 226.6 V to 226 V
2023-05-28 19:14:10.064 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'EnergieTVGaestezimmer_Frequency' changed from 49.96 Hz to 49.98 Hz
2023-05-28 19:14:10.322 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'SvenS10192168159_Zuletztgesehen' changed from 2023-05-28T19:13:05.217+0200 to 2023-05-28T19:14:05.659+0200
2023-05-28 19:14:10.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:10.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:11.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:11.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:12.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:12.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:12.681 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 36.93 W to 36.39 W
2023-05-28 19:14:13.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:13.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:13.789 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 36.39 W to 36.37 W
2023-05-28 19:14:14.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:14.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:14.789 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'FRITZDECT210_Steckdose' changed from ON to OFF
2023-05-28 19:14:15.449 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:15.450 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:16.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:16.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:17.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:17.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:17.501 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Aktuell_Live_Consumption' changed from 0.41 kW to 0.39 kW
2023-05-28 19:14:17.502 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Aktuell_Live_Production' changed from 1.72 kW to 1.67 kW
2023-05-28 19:14:17.502 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Aktuell_Live_Export' changed from 1.31 kW to 1.28 kW
==> /logs/openhab.log <==
2023-05-28 19:14:17.767 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Badheizkoerper_an_Ueberschuss1' failed: 
// Globale Timer zu Beginn der Datei definieren!
var Timer tHeatStart = null
if(!(Aktuell_Live_Export.state instanceof Number))                              // gültige Zahl? Falls nicht
        return;                                                                     // Rule abbrechen
    val Number nPower = (Aktuell_Live_Export.state as Number).floatValue            // Messwert als Zahl ohne Einheit
    if(nPower < 1.10) {                                                             // Leistung unter 1.1kw
        tHeatStart?.cancel                                                          // stoppe Timer, falls vorhanden
        tHeatStart = null                                                           // entferne Timer
    }
    if(nPower < 0.1 && Badheizkoerper_Betrieb.state != OFF)                         // Leistung unter 0.1kw und Heizung an
        Badheizkoerper_Betrieb.sendCommand(OFF)                                     // Beende Heizen
    if(nPower > 1.10 && Badheizkoerper_Betrieb.state != ON && tHeatStart === null)  // Leistung über 1.1kw, Heizung aus und Timer läuft nicht
        tHeatStart = createTimer(now.plusMinutes(1), [|                             // Erzeuge Timer (Ausfühung in einer Minute)
            Badheizkoerper_Betrieb.sendCommand(ON)                                  // Schalte Heizung ein
            tHeatStart = null
        ])
   Cannot refer to the non-final variable tHeatStart inside a lambda expression; line 21, column 1359, length 10
==> /logs/events.log <==
2023-05-28 19:14:18.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:18.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:19.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:19.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:19.736 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_PowerConsumption' changed from 6.710000038146973 W to 6.53000020980835 W
2023-05-28 19:14:19.738 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_Temperature' changed from 20.899999618530273 °C to 20.90999984741211 °C
==> /logs/openhab.log <==
2023-05-28 19:14:19.954 [INFO ] [openhab.core.model.script.Solarpanel] - Sekunde: 69259 
2023-05-28 19:14:19.956 [INFO ] [openhab.core.model.script.Solarpanel] - Leistung: 61.26045728198951 Sekunde: 69259 Tagesertrag: 1.17856611 kWh
==> /logs/events.log <==
2023-05-28 19:14:19.958 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_Ertrag_Tag' changed from 1.17854871 to 1.17856611
2023-05-28 19:14:20.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:20.449 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:21.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:21.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:21.681 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 36.37 W to 38.39 W
2023-05-28 19:14:22.254 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shelly_plug_s_79_shellyplugsde2d09192168179_Signalstarke' changed from 1 to 2
2023-05-28 19:14:22.431 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shelly_plug_s_80_shellyplugsde4aaa192168180_Signalstarke' changed from 2 to 1
2023-05-28 19:14:22.454 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:22.454 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:22.820 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 38.39 W to 34.61 W
2023-05-28 19:14:23.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:23.449 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:23.959 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'EnergieWaschmaschine_Voltage' changed from 227.1 V to 227.3 V
2023-05-28 19:14:24.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:24.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:25.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:25.449 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:26.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:26.447 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:26.680 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 34.61 W to 34.72 W
2023-05-28 19:14:27.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:27.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:28.447 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:28.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:28.854 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'shellyplugsQNAP192168155_Leistung' changed from 34.72 W to 35.49 W
2023-05-28 19:14:29.448 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bewaesserung_1_STATE' received command ON
2023-05-28 19:14:29.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bewaesserung_1_STATE' predicted to become ON
2023-05-28 19:14:29.807 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_PowerConsumption' changed from 6.53000020980835 W to 6.320000171661377 W
2023-05-28 19:14:29.809 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_Temperature' changed from 20.90999984741211 °C to 20.920000076293945 °C
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: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

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

Beitrag von udo1toni »

Ja, das ist jetzt aber nur die eine Rule...

Tipp für Dateinamen: Mach's nicht zu kompliziert.
Ich habe eine Datei namens tore.rules und eine weitere Datei mit dem Namen normal.rules.
In diesen beiden Dateien sind alle ca. 50 Rules untergebracht, die aktuell bei mir laufen.
Die Rules in tore.rules kümmern sich um die Torsteuerung inkl. Rückmeldung des Öffnungsgrades (in %), die habe ich tatsächlich in einer eigenen Datei, weil... Spaghetti-Code...
Wenn ich Rules teste, dann kommen die in eine Datei test.rules - das war es. Sehr übersichtlich :) da braucht es keine Romane als Dateinamen.

An stellen, wo ich den Eindruck habe, ich könnte später mal rätseln, warum ich so programmiert habe, habe ich Kommentare eingefügt, die können auch als Kommentarblock eingefügt werden, markiert mit /* */
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

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

Beitrag von udo1toni »

zinnik hat geschrieben: 28. Mai 2023 19:26 Eigentlich funktioniert zumindestestens das mit Regenwasser bewässern jedoch was komisch war das Regenwasser pumpe kurz angeschaltet war ca10sec. dann gleich wieder an und nach ca. 1min dann wieder an und bleibt jetzt, hoffe ich die 600s Timer an.
Das ist aus dem von Dir geposteten Log leider nicht ersichtlich.

Du kannst auf das vollständige Log auch über das Dateisystem zugreifen, bei einer Standard Raspberry Pi - openHABian Installation findest Du die Logs in /var/log/openhab/, beide Dateien (events.log und openhab.log) sind interessant. Da die Rule allerdings kein Logging eingebaut hat, werden hierfür nur Fehler geloggt, die sich aus grob fehlerhaftem Code ergeben (so wie Script execution of rule with UID 'Badheizkoerper_an_Ueberschuss1' failed - das ist aber ein anderes Thema)

Was noch auffällt: Das Ventil wird eingeschaltet, aber aber anschließend wird das sekündlich wiederholt. Hast Du am Trigger der Bewässerungs-Rule etwas geändert (also außer aus der 9 eine 14 zu machen)? Hast am Ende etwa im Sekundenfeld einen Stern eingetragen? Das wäre katastrophal.
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 »

udo1toni hat geschrieben: 28. Mai 2023 19:39 Ja, das ist jetzt aber nur die eine Rule...

Tipp für Dateinamen: Mach's nicht zu kompliziert.
Ich habe eine Datei namens tore.rules und eine weitere Datei mit dem Namen normal.rules.
In diesen beiden Dateien sind alle ca. 50 Rules untergebracht, die aktuell bei mir laufen.
Die Rules in tore.rules kümmern sich um die Torsteuerung inkl. Rückmeldung des Öffnungsgrades (in %), die habe ich tatsächlich in einer eigenen Datei, weil... Spaghetti-Code...
Wenn ich Rules teste, dann kommen die in eine Datei test.rules - das war es. Sehr übersichtlich :) da braucht es keine Romane als Dateinamen.

An stellen, wo ich den Eindruck habe, ich könnte später mal rätseln, warum ich so programmiert habe, habe ich Kommentare eingefügt, die können auch als Kommentarblock eingefügt werden, markiert mit /* */
Ja eigentlich hast du Recht, ich tue mir da momentan sehr schwer. Was ich nicht verstehe wenn ich eine Rule über den Log verfolgen will wird mir aber immer nur der Dateiname als Rule angezeigt. und um so eine Rule so aufzubauen das die Abfragen geloggt werden wie ich es bei dir schon oft gesehen habe, bin ich einfach zu blöd dazu.

Leider sieht es bei mir derzeit so aus
Screenshot (271).png
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

Antworten