Meldung Waschmaschine wenn fertig

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Innocent
Beiträge: 238
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Meldung Waschmaschine wenn fertig

Beitrag von Innocent »

Jesses... Das versteh ich nicht... Werde mich aber dennoch hin setzen und mich damit beschäftigen.
Items heißen alle recht gleich.
BatteryLevelKZ
BatteryLevelSZ
BatteryLevelGWC

Das einfachste für mich wäre das zu adaptieren was ich schon habe 😉
Openhab 2 auf RaspberryPi 4

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

Re: Meldung Waschmaschine wenn fertig

Beitrag von udo1toni »

Wie gesagt... lege einfach drei Switch Items an:

Code: Alles auswählen

AlarmBatteryLevelKZ "Kinderzimmer"
AlarmBatteryLevelSZ "Schlafzimmer"
AlarmBatteryLevelGWC "Gäste WC"
In Anführungszeichen stehen jeweils die Label.
Und noch die beiden Gruppen

Code: Alles auswählen

gBatteryLevel
gAlarmBatteryLevel
Und oben stehende Rule...

Wahlweise kannst Du gAlarmBatteryLevel auch noch gleich nutzen, um anzuzeigen, wie viele Batterien gewechselt werden müssen. Dazu musst Du die Aggregation Funktion der Group auf One OFF then OFF else ON setzen. Anschließend kannst Du im Label mit %d die Anzahl der Items ablesen, welche OFF sind.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Selter
Beiträge: 73
Registriert: 9. Mär 2018 16:06
Answers: 0
Wohnort: Bremen

Re: Meldung Waschmaschine wenn fertig

Beitrag von Selter »

Snatsch hat geschrieben: 26. Jun 2021 10:25 vielen Dank für deine Antwort. Wie so oft :) Das mit dem Strich hatte ich gestern Abend schon probiert und hatte aber keine Lehrzeichen gesetzt :(
Mein Code sieht jetzt so aus.

Code: Alles auswählen

 var Timer tWash = null
var Boolean bWash = false

rule "Waschmaschine fertig"

when
  Item Waschmaschine_Leistung changed
then
    logInfo("Waschmaschine", "Rule triggert ! Wert : {} ", Waschmaschine_Leistung.state )
  
  if(!bWash)
  {
    if(Waschmaschine_Leistung.state > 1600 | W ) // Erkennung die Maschine wurde gestartet
      
    bWash = true
  }

  else
  { // bWash ist true -> Maschine aktiv
    if(Waschmaschine_Leistung.state < 4 | W )
	{ // Erkennung die Maschine ist vielleicht fertig
      if(tWash === null)
      tWash = createTimer(now.plusMinutes(3), [|
        MeldungWhatsApp.postUpdate("Die Waschmaschiene ist fertig !")
            
            MeldungSay.postUpdate("Die Waschmaschine ist fertig",null)
            tWash = null
            bWash = false
      ])
    }
	else if(Waschmaschine_Leistung.state > 6 | W )
	{ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
      tWash?.cancel
      tWash = null
    }
  }

end

Hallo,

ich versuche mich auch gerade an der Waschmaschinenbenachrichtigung.
So ganz komme ich aber mit den 3 Leistungswerten nicht klar. Ich hoffe, Ihr könnt mir anhand des Diagramms helfen ...

Bild


Meine Rule:

Code: Alles auswählen

var Timer tWash = null
var Boolean bWash = false

rule "Waschmaschine fertig"

when
  Item EG_bad_x_gs1_Power changed
then
    val Number valWamaPwr = (EG_bad_x_gs1_Power.state as Number).floatValue  // Messwert als Zahl ohne Einheit
    logInfo("WASCHMASCHINE", "Waschmaschine Rule triggert ! Wert : {} ", valWamaPwr)

  if(!bWash)
  {
    if(valWamaPwr > 10) // Erkennung die Maschine wurde gestartet
      
    bWash = true
    VxWaschma.sendCommand(ON)
  }

  else
  { // bWash ist true -> Maschine aktiv
    if(valWamaPwr < 2)
	{ // Erkennung die Maschine ist vielleicht fertig
      if(tWash === null)
      tWash = createTimer(now.plusMinutes(3), [|    
            tWash = null
            bWash = false
                logInfo("WASCHMASCHINE", "Waschmaschine fertig ! Wert : {} ", valWamaPwr)
                	val actions = getActions("pushover", "pushover:pushover-account:soundBike")
                    actions.sendHtmlMessage("Waschmaschine ist fertig", "openHAB3")

                    VxWaschma.sendCommand(OFF)

      ])
    }
	else if(valWamaPwr >= 2.5)
	{ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
      tWash?.cancel
      tWash = null
        logInfo("WASCHMASCHINE", "Waschmaschine Stromaufnahme zwischendurch sehr niedrig - Wert : {} ", valWamaPwr)
    }
  }
end
openHAB 3.2 in einer Debian-VM mit openHABian unter Proxmox 8.3.3 auf Intel NUC 5i3ryh // WiFi (UniFi-APs) + Aqara Gateway + Zigbee2MQTT@SLZB-06 + Aeon Z-Wave // viele Shellies / Sonoffs mit Tasmota / viele Aqara Sensoren über Gateway / diverse Sensoren über Z2M // Grafana (InfluxDB)

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Meldung Waschmaschine wenn fertig

Beitrag von tommesd »

Ich habe einen Shelly 1PM verbaut, der den Stromverbrauch der Waschmaschine übermittelt. Außerdem habe ich die hier erstellte rule angepasst und eingefügt. Leider funktioniert die bei mir nicht, im Log steht folgender Fehler:

Code: Alles auswählen

2023-03-05 14:56:42.999 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Waschkeller-1' failed: An error occurred during the script execution: index=1, size=1 in Waschkeller
Das Item

Code: Alles auswählen

Number                      StromverbrauchWaschmaschine           "Stromverbrauch Waschmaschine"    <Energy>     (gMapdb)                         ["Point"]    {channel="shelly:shellyplus1pm:Waschmaschine:meter#currentWatts"}
Die rule

Code: Alles auswählen

var Timer tWash = null
var Boolean bWash = false
val telegramAction = getActions("telegram","telegram:telegramBot:Telegram_Bot")

rule "Waschmaschine fertig"
when
    Item StromverbrauchWaschmaschine changed
then
    if(!bWash) {
        if(StromverbrauchWaschmaschine.state > 10) { // Erkennung die Maschine wurde gestartet
            sendTelegram("Waschmaschine wurde gestartet")
            bWash = true
        }
    } else { // bWash ist true -> Maschine aktiv
        if(StromverbrauchWaschmaschine.state < 1.4) { // Erkennung die Maschine ist vielleicht fertig
            if(tWash === null)
                tWash = createTimer(now.plusMinutes(4), [|
                    sendTelegram("Waschmaschine ist fertig")
                    tWash = null
                    bWash = false
                ])
        } else if(StromverbrauchWaschmaschine.state > 3){ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
            tWash?.cancel
            tWash = null
        }
    }
end
Kann mir jemand auf die Sprünge helfen???
Openhabian 4.0.4

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

Re: Meldung Waschmaschine wenn fertig

Beitrag von udo1toni »

Ist das die gesamte Datei, oder sind da noch mehr Rules mit drin?

Die Fehlermeldung bezieht sich auf den ersten Blick auf die erste Zeile (das ist die Definition der Timer Variablen, die ist aber korrekt).
Grundsätzlich darfst Du die telegramAction nicht außerhalb der Rule definieren (bzw. es ist nicht gut, das zu tun).
Da Du einen Itemstatus drei Mal innerhalb der Rule verwendest, erscheint es sinnvoll, hier eine Variable zu nutzen.

Code: Alles auswählen

var Timer tWash = null
var Boolean bWash = false

rule "Waschmaschine fertig"
when
    Item StromverbrauchWaschmaschine changed
then
    val nStrom = (StromverbrauchWaschmaschine.state as Number).floatValue
    if(!bWash) {
        if(nStrom > 10) {                           // Erkennung die Maschine wurde gestartet
            val telegramAction = getActions("telegram","telegram:telegramBot:Telegram_Bot")
            sendTelegram("Waschmaschine wurde gestartet")
            bWash = true
        }
    } else {                                        // bWash ist true -> Maschine aktiv
        if(nStrom < 1.4) {                          // Erkennung die Maschine ist vielleicht fertig
            if(tWash === null)
                tWash = createTimer(now.plusMinutes(4), [|
                    val telegramAction = getActions("telegram","telegram:telegramBot:Telegram_Bot")
                    sendTelegram("Waschmaschine ist fertig")
                    tWash = null
                    bWash = false
                ])
        } else if(nStrom41 > 3){                    // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
            tWash?.cancel
            tWash = null
        }
    }
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Meldung Waschmaschine wenn fertig

Beitrag von tommesd »

Danke für die schnelle Hilfe, allerdings scheint die rule nicht zu funktionieren. Ich bekomme keine Nachricht wenn der Waschgang gestartet wurde und demnach auch nicht beim Beenden. Im Log steht folgendes.

Code: Alles auswählen

[ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Waschmaschine-1' failed: An error occurred during the script execution: index=1, size=1 in Waschmaschine
Es ist die einzige rule in der Datei, wobei ich das Gleiche gerne noch mit dem Trockner überwachen würde. Sollte man das dann in einer zweiten Datei machen oder kann man eine zweite rule in der Datei mit den gleichen Variablen erstellen?
Openhabian 4.0.4

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

Re: Meldung Waschmaschine wenn fertig

Beitrag von udo1toni »

Nein, Du kannst beliebig viele Rules in einer *.rules Datei ablegen.
Kann es sein, dass Du die Datei mit einem Windows Editor erstellt hast?
Kannst Du die Datei bitte mal mit nano direkt auf dem Pi öffnen (ich gehe mal davon aus, dass openHAB auf einem Pi läuft)?
Eventuell sind Deine Zeilen jeweils mit <CR><LF> umgebrochen. In openHAB allgemein und unter GNU/Linux im Besonderen ist es üblich, nur <LF> am Zeilenende zu verwenden.
Das wäre nun die einzige Idee, die ich momentan noch zu dem Fehler habe.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Meldung Waschmaschine wenn fertig

Beitrag von tommesd »

Hallo Udo,
vielen Dank für den Hinweis, Du hast mir sehr geholfen, jetzt funktioniert es.
Openhabian 4.0.4

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

Re: Meldung Waschmaschine wenn fertig

Beitrag von udo1toni »

Das ist echt ein lästiger Bug, der eigentlich gar nicht auftreten sollte...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Meldung Waschmaschine wenn fertig

Beitrag von tommesd »

Ich editiere die Dateien mit Windows über Visual Studio Code. Kann man da einstellen, dass er die Dateien immer mit dem Linux Zeilenende speichert?

Habs gefunden
If you want new files to automatically have the correct line endings, then you can set the following setting in the top level of your settings.json file:

For LF:

{
"files.eol": "\n",
}
Openhabian 4.0.4

Antworten