Moin
Könnte jemand mal diesen Code auf Richtigkeit Ansehen.
Der erste Teil "consumptionTotal:consumption ..." ist Orginal.
Im zweiten Teil "... , {if Waschmaschine:power > 3 ...." wollte ich einen Zähler einbauen der mir
ein Reading (waschladungen) um 1 erhöht wenn die power > 3 ist.
consumptionTotal:consumption monotonic {ReadingsVal($name,'consumption',0)}, {if Waschmaschine:power > 3 {fhem (setreading $name waschladungen {ReadingsVal("Waschmaschine","waschladungen",0)+1));;;; }}
Bin für jede Hilfe Dankbar.
Du willst wahrscheinlich nur einmal pro Wäsche den Zähler hochzählen. Daher wird das so noch nicht reichen. Eine Möglichkeit wäre, sich die letzte power zu merken und als Bedingung if (ReadingsVal("Waschmaschine","letztePower", 0) <= 3 && ReadingsVal("Waschmaschine","power", 0) > 3)
zu verwenden.
Anschließend muss man immer "power" nach "letztePower" umkopieren und wenn die Bedingung erfüllt ist auch "waschladungen" hochzählen. Dazu kann man "setreading" verwenden.
Jens
Hallo jensb
Vielen Dank für deine Antwort.
ZitatDu willst wahrscheinlich nur einmal pro Wäsche den Zähler hochzählen ...
Da hast du Recht, habe mich wohl weider mal falsch Ausgedrückt. ::)
So ganz kann ich deinen Vorschlag noch nicht folgen.
Ich muss doch
nur beim Reading "waschladungen" mit setreading einen dazu Zählen wenn power größer 3 oder? :-[
Ja. Aber damit der Leistungsvergleich alt/neu funktioniert, muss "letztePower" immer aktualisiert werden (oder zumindest bis du hochzählst).
Was passiert eigentlich bei dir bei der nächsten Wäsche? "power" und "letztePower" müssen mit Waschbeginn jedesmal zurückgesetzt werden.
Jens
Moin
@jensb
Das ganze muss doch einfacher gehen.
Aber Dank dir für die Antworten.
Hier habe ich mal den gesamten Code:
define Waschmaschine PCA301 02C1FF 01
attr Waschmaschine IODev JL_PCA301
attr Waschmaschine devStateIcon on:Steckdose.on off:Steckdose.off
attr Waschmaschine event-on-change-reading power
attr Waschmaschine group 03 Waschmaschine
attr Waschmaschine room Technik
attr Waschmaschine sortby 2
attr Waschmaschine webCmd :
define Waschmaschine_Betrieb dummy
attr Waschmaschine_Betrieb devStateIcon on:waschmaschine_on off:waschmaschine_off
attr Waschmaschine_Betrieb event-on-change-reading state
attr Waschmaschine_Betrieb group 03 Waschmaschine
attr Waschmaschine_Betrieb room Technik
attr Waschmaschine_Betrieb sortby 1
define check_Waschmaschine DOIF ([Waschmaschine:power]>3) (set Waschmaschine_Betrieb on, setreading Waschmaschine waschladungen ReadingsVal("Waschmaschine","waschladungen",0)+1) DOELSEIF ([Waschmaschine:power]<3) (set Waschmaschine_Betrieb off,set FritzBox ring 612 30 News msg:Wäsche fertig )
attr check_Waschmaschine cmdState on|off
attr check_Waschmaschine devStateIcon no timer:timer.off timer:timer.on
attr check_Waschmaschine group check
attr check_Waschmaschine sortby 3
attr check_Waschmaschine wait 60:60
Habe jetzt Versucht das ganze im DOIF zu machen.
Macht aber noch nicht ganz das was ich will.
Bekomme jetzt folgenden "ReadingsVal("Waschmaschine","waschladungen",0)" Eintrag.
Der Fehler muss ja im DOIF sein, nur ich finde Ihn nicht.
Kann mir jemand dabei Helfen? :-[
Moin
Hat denn keiner die Möglichkeit da zu machen. :-[
Versuchs mal mit
([Waschmaschine_Betrieb] eq 'off' && [Waschmaschine:power]>3)
und
([Waschmaschine_Betrieb] eq 'on' && [Waschmaschine:power]<3)
als Bedingungen
Jens
Moin
@jensb
Nicht böse mit mir sein, ich denke :o das ist der falsche Weg.
Denn das DOIF macht ja was es soll, nur nicht das Reading waschladungen herrauf setzen.
Der grüne Teil wird abgearbeitet, nur mit dem roten kommen ich nicht klar.
([Waschmaschine:power]>3) (set Waschmaschine_Betrieb on, setreading Waschmaschine waschladungen ReadingsVal("Waschmaschine","waschladungen",0)+1)
Zitat von: Michael am 16 April 2015, 07:17:43
Moin
@jensb
Nicht böse mit mir sein, ich denke :o das ist der falsche Weg.
Denn das DOIF macht ja was es soll, nur nicht das Reading waschladungen herrauf setzen.
Der grüne Teil wird abgearbeitet, nur mit dem roten kommen ich nicht klar.
([Waschmaschine:power]>3) (set Waschmaschine_Betrieb on, setreading Waschmaschine waschladungen ReadingsVal("Waschmaschine","waschladungen",0)+1)
dann eher so:
define check_Waschmaschine DOIF ([Waschmaschine:power]>3) (set Waschmaschine_Betrieb on, setreading Waschmaschine waschladungen {([Waschmaschine:waschladungen]+1)}) ...
Gruß
Damian
Vielen Dank !!! :)
Genau so hatte ich mir das Vorgestellt, diese Klammern. ::)