Seite 5 von 9

Re: Meldung Waschmaschine wenn fertig

Verfasst: 24. Jun 2021 13:30
von Snatsch
ha jetzt die Log Datei mal ausgewertet. Der Stromverbrauch sinkt während eines Waschganges nie unter 6,070 W und wenn die Maschine fertig ist geht sie auf 3,290 W und wenn sie sich dann ausschaltet auf 0,350 bzw. 0,280 Watt runter.

Re: Meldung Waschmaschine wenn fertig

Verfasst: 24. Jun 2021 21:50
von Snatsch
so sollte es doch dann eigentlich passen oder ?

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 > 1800.000) // Erkennung die Maschine wurde gestartet
      
    bWash = true
  }

  else
  { // bWash ist true -> Maschine aktiv
    if(Waschmaschine_Leistung.state < 4.000)
	{ // 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.000)
	{ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
      tWash?.cancel
      tWash = null
    }
  }
end

Re: Meldung Waschmaschine wenn fertig

Verfasst: 25. Jun 2021 14:10
von Innocent
Innocent hat geschrieben: 18. Mai 2021 09:12 Werde ich testen. Vorerst vielen Dank dafür.
Rule funktioniert. Bekam heute die langersehnte Meldung. Danke 😊

Re: Meldung Waschmaschine wenn fertig

Verfasst: 25. Jun 2021 14:13
von Innocent
Snatsch hat geschrieben: 24. Jun 2021 21:50 so sollte es doch dann eigentlich passen oder ?

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 > 1800.000) // Erkennung die Maschine wurde gestartet
      
    bWash = true
  }

  else
  { // bWash ist true -> Maschine aktiv
    if(Waschmaschine_Leistung.state < 4.000)
	{ // 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.000)
	{ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
      tWash?.cancel
      tWash = null
    }
  }
end
Dein Wert wird hier allerdings erst true wenn die Leistung über 1800 Watt geht.
Könnte mir vorstellen das nicht jedes Programm der Maschine diese Leistung zieht.

Re: Meldung Waschmaschine wenn fertig

Verfasst: 25. Jun 2021 14:18
von Snatsch
ok den Wert könnte ich ja eigentlich auch auf 1000 setzten oder ? Aber sonst müsste es passen oder mit den Werten die ich ausgelesen habe.

Bekomme beim speichern immer folgende Fehlermeldung

"The document file:///etc/openhab/rules/Waeschetrockner_fertig.rules has not been opened."

kann damit nichts anfangen :?

Re: Meldung Waschmaschine wenn fertig

Verfasst: 25. Jun 2021 14:29
von Innocent
Wenn nur ein Spülgang erfolgt ohne Heizung, Bleibt dein Wert auch false...

Re: Meldung Waschmaschine wenn fertig

Verfasst: 25. Jun 2021 23:56
von Snatsch
:o der erste Waschgang ist durch aber irgendwie ist nichts passiert :roll: vielleicht einer ne Ahnung warum

Re: Meldung Waschmaschine wenn fertig

Verfasst: 26. Jun 2021 00:22
von Snatsch
Hab jetzt mal meinen Log. vielleicht könnte ja jemand mal drüber schauen und mir sagen was mit der Rule nicht stimmt

Code: Alles auswählen

Item 'Waschmaschine_Leistung' changed from 0.280 W to 21.600 W
Item 'Waschmaschine_Leistung' changed from 21.600 W to 44.840 W
Item 'Waschmaschine_Leistung' changed from 44.840 W to 12.940 W
Item 'Waschmaschine_Leistung' changed from 12.940 W to 67.730 W
Item 'Waschmaschine_Leistung' changed from 67.730 W to 34.900 W
Item 'Waschmaschine_Leistung' changed from 34.900 W to 6.790 W
Item 'Waschmaschine_Leistung' changed from 6.790 W to 50.210 W
Item 'Waschmaschine_Leistung' changed from 50.210 W to 6.720 W
Item 'Waschmaschine_Leistung' changed from 6.720 W to 47.630 W
Item 'Waschmaschine_Leistung' changed from 47.630 W to 75.810 W
Item 'Waschmaschine_Leistung' changed from 75.810 W to 1895.140 W
Item 'Waschmaschine_Leistung' changed from 1895.140 W to 1879.260 W
Item 'Waschmaschine_Leistung' changed from 1879.260 W to 1827.040 W
Item 'Waschmaschine_Leistung' changed from 1827.040 W to 1832.980 W
Item 'Waschmaschine_Leistung' changed from 1832.980 W to 1840.630 W
Item 'Waschmaschine_Leistung' changed from 1840.630 W to 1881.400 W
Item 'Waschmaschine_Leistung' changed from 1881.400 W to 1905.870 W
Item 'Waschmaschine_Leistung' changed from 1905.870 W to 1884.550 W
Item 'Waschmaschine_Leistung' changed from 1884.550 W to 1807.880 W
Item 'Waschmaschine_Leistung' changed from 1807.880 W to 1889.990 W
Item 'Waschmaschine_Leistung' changed from 1889.990 W to 1828.620 W
Item 'Waschmaschine_Leistung' changed from 1828.620 W to 1891.700 W
Item 'Waschmaschine_Leistung' changed from 1891.700 W to 1900.290 W
Item 'Waschmaschine_Leistung' changed from 1900.290 W to 1896.850 W
Item 'Waschmaschine_Leistung' changed from 1896.850 W to 1904.150 W
Item 'Waschmaschine_Leistung' changed from 1904.150 W to 1894.560 W
Item 'Waschmaschine_Leistung' changed from 1894.560 W to 1871.460 W
Item 'Waschmaschine_Leistung' changed from 1871.460 W to 1853.150 W
Item 'Waschmaschine_Leistung' changed from 1853.150 W to 1871.320 W
Item 'Waschmaschine_Leistung' changed from 1871.320 W to 113.860 W
Item 'Waschmaschine_Leistung' changed from 113.860 W to 81.180 W
Item 'Waschmaschine_Leistung' changed from 81.180 W to 6.220 W
Item 'Waschmaschine_Leistung' changed from 6.220 W to 86.610 W
Item 'Waschmaschine_Leistung' changed from 86.610 W to 6.220 W
Item 'Waschmaschine_Leistung' changed from 6.220 W to 75.240 W
Item 'Waschmaschine_Leistung' changed from 75.240 W to 83.110 W
Item 'Waschmaschine_Leistung' changed from 83.110 W to 87.180 W
Item 'Waschmaschine_Leistung' changed from 87.180 W to 82.680 W
Item 'Waschmaschine_Leistung' changed from 82.680 W to 13.940 W
Item 'Waschmaschine_Leistung' changed from 13.940 W to 72.310 W
Item 'Waschmaschine_Leistung' changed from 72.310 W to 58.650 W
Item 'Waschmaschine_Leistung' changed from 58.650 W to 92.330 W
tem 'Waschmaschine_Leistung' changed from 92.330 W to 167.360 W
Item 'Waschmaschine_Leistung' changed from 167.360 W to 226.020 W
Item 'Waschmaschine_Leistung' changed from 226.020 W to 37.260 W
Item 'Waschmaschine_Leistung' changed from 37.260 W to 12.230 W
Item 'Waschmaschine_Leistung' changed from 12.230 W to 78.460 W
Item 'Waschmaschine_Leistung' changed from 78.460 W to 13.080 W
Item 'Waschmaschine_Leistung' changed from 13.080 W to 19.310 W
Item 'Waschmaschine_Leistung' changed from 19.310 W to 190.110 W
Item 'Waschmaschine_Leistung' changed from 190.110 W to 214.570 W
Item 'Waschmaschine_Leistung' changed from 214.570 W to 18.590 W
Item 'Waschmaschine_Leistung' changed from 18.590 W to 6.220 W
Item 'Waschmaschine_Leistung' changed from 6.220 W to 104.490 W
Item 'Waschmaschine_Leistung' changed from 104.490 W to 127.020 W
Item 'Waschmaschine_Leistung' changed from 127.020 W to 38.980 W
Item 'Waschmaschine_Leistung' changed from 38.980 W to 84.470 W
Item 'Waschmaschine_Leistung' changed from 84.470 W to 181.030 W
Item 'Waschmaschine_Leistung' changed from 181.030 W to 216.220 W
Item 'Waschmaschine_Leistung' changed from 216.220 W to 18.310 W
Item 'Waschmaschine_Leistung' changed from 18.310 W to 15.800 W
Item 'Waschmaschine_Leistung' changed from 15.800 W to 12.230 W
Item 'Waschmaschine_Leistung' changed from 12.230 W to 76.310 W
Item 'Waschmaschine_Leistung' changed from 76.310 W to 20.740 W
Item 'Waschmaschine_Leistung' changed from 20.740 W to 118.160 W
Item 'Waschmaschine_Leistung' changed from 118.160 W to 194.760 W
Item 'Waschmaschine_Leistung' changed from 194.760 W to 241.540 W
Item 'Waschmaschine_Leistung' changed from 241.540 W to 312.490 W
Item 'Waschmaschine_Leistung' changed from 312.490 W to 303.410 W
Item 'Waschmaschine_Leistung' changed from 303.410 W to 336.240 W
Item 'Waschmaschine_Leistung' changed from 336.240 W to 325.080 W
Item 'Waschmaschine_Leistung' changed from 325.080 W to 40.910 W
Item 'Waschmaschine_Leistung' changed from 40.910 W to 3.210 W
Item 'Waschmaschine_Leistung' changed from 3.210 W to 0.280 W

Re: Meldung Waschmaschine wenn fertig

Verfasst: 26. Jun 2021 10:10
von udo1toni
Das kann ich Dir direkt sagen, das verwendete Item ist ein UoM Item, das heißt, im Status wird direkt die Einheit mitgeliefert. 4 W ist aber != 4, über die Größe lässt sich dann ohnehin keine Aussage treffen (4 könnte auch 4 Äpfel bedeuten).

Hänge in allen Vergleichen an die Zahlen, mit denen Du vergleichst ein |W an, sieht dann z.B. so aus:

Code: Alles auswählen

if(Waschmaschine_Leistung.state > 1800 | W)
Du musst keine Nachkommastellen angeben (es sei denn, sie sind ungleich 0, natürlich)! Sollte die zu vergleichende Zahl links vom Operator stehen sollte der Wert mitsamt Einheit geklammert werden, also z.B. so:

Code: Alles auswählen

if((5 | W) > Waschmaschine_Leistung.state)
Möglicherweise musst Du um die Einheit (ohne senkrechten Strich!) Anführungszeichen setzen:

Code: Alles auswählen

if(Waschmaschine_Leistung.state > 1800 | "W")
ich meine aber, dass es ohne Anführungszeichen geht.

Alternativ kannst Du den Wert explizit nach Float wandeln:

Code: Alles auswählen

if((Waschmaschine_Leistung.state as Number).floatValue > 1800)
dabei wird die Einheit komplett entfernt. Dann ist es aber sinnvoll, vorher zu testen, ob das Item tatsächlich eine Zahl enthält, sonst gibt es beim Casting eine NullPointer Exxeption. Es ist dann auch sinnvoll, über eine lokale Variable oder Konstante zu arbeiten, um sich viel Tipparbeit zu sparen.

Re: Meldung Waschmaschine wenn fertig

Verfasst: 26. Jun 2021 10:25
von Snatsch
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
kannst du mir noch was zu der Logmeldung sagen ? Die kommt immer wenn ich die Rule abspeichere.

Code: Alles auswählen

2021-06-26 10:20:24.615 [ERROR] [se.xtext.ide.server.WorkspaceManager] - The document file:///etc/openhab/rules/Waschmaschine_Fertig.rules has not been opened.