[Beta] Waschmaschinenstatus

Begonnen von traxanos, 27 Juli 2015, 23:50:40

Vorheriges Thema - Nächstes Thema

inesa394

Ich habe mir im Aktor HR.Waschmaschine_Power ein userReading angelegt

energy_kwh:energy { ReadingsVal("HR.Waschmaschine_Power","energy",0)/1000 . " kWh";;},kosten:energy {ReadingsVal("HR.Waschmaschine_Power","energy",0)/1000*0.29 . "€";; },einwaschvorgang:energy {(ReadingsVal("HR.Waschmaschine_Power","energy","0") - ReadingsVal("HR.WaschmaschineBetrieb","energy","0"))/1000*0.29 . "€";;}

aber um den vieleicht in dein dummy zu bekommen reichen meine Kenntnisse leider nocht nicht  :-[

traxanos

Habe das Hauptscript um eine Berechnung für die Kosten erweitert. Leider klappt das AttrVal noch nicht, so dass die Kosten im Script direkt angepasst werden müssen. Bei uns liegt der Preis aktuell bei 25 Cent und habe daher 0.25 eingetragen.
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

inesa394

#17
Bei mir funktioniert das mit den readings "lastCost" "totalCost" nicht
seitdem ich sie mit dazu genommen habe erfolgt keine aktualisierung,
die werte ändern sich einfach nicht.

Maschine war seitdem zweimal in Betrieb

HoTi

Schön schön, danke. werde das jetzt mal testen.

Ich muss es aber noch erweitern da bei meinem Hutschienen Leistungsmessung Waschmaschine und Trockner zusammen dran hängen.

Muss mal sehen wie ich die beiden unterscheiden kann.
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

kvo1

Hallo traxanos
coole Idee, danke ! werd ich mal testen  ;)
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

hjjk

Ich habe mal versucht den Waschmaschinenstatus bei mir einzusetzen.
Nach vielen Versuchen komme ich nicht weiter und trete auf der Stelle.

Den Syn Bereich habe ich angepasst.
Als Meldung im Log erhalte ich
Programm.Waschmaschine.Status: reading does not exist: [Waschmaschine.Status:state]

Ich habe mal in die Zeile zu Anfang mit dem attr Waschmaschine.Status stateFormat
in die geschweiften Klammern ein print "State=$state" eingesetzt und sehe das State nie einen Wert zugewiesen bekommt.
Was mache ich falsch ?

tomster

Zitat von: hjjk am 27 Januar 2016, 15:40:04
Als Meldung im Log erhalte ich
Programm.Waschmaschine.Status: reading does not exist: [Waschmaschine.Status:state]

Was mache ich falsch ?
Ich glaub da hat sich ein Fehler eingeschlichen...
Probier Mal:

define Programm.Waschmaschine.Sync DOIF ([Waschmaschine_Pwr:power] or [Waschmaschine_Pwr:energy] or [Waschmaschine_Sw:state]) (\
  setreading Waschmaschine.Status power [Waschmaschine_Pwr:power],\
  setreading Waschmaschine.Status energy [Waschmaschine_Pwr:energy],\
  setreading Waschmaschine.Status state [Waschmaschine_Sw:state]\
)
attr Programm.Waschmaschine.Sync do always


Also setreading Waschmaschine.Status state [Waschmaschine_Sw:state] an Stelle von setreading Waschmaschine.Status switch [Waschmaschine_Sw:state]

DJ-Mix

Hallo,

habe auch ein Problem - es schaltet mir immer den Switch nach 15 Minuten aus (und somit den Waschgang)????
Kann aber den Fehler nicht wirklich finden . . .
Mein Code anbei . . .
define Waschmaschine.Status dummy
attr Waschmaschine.Status userattr configPowerOff configWaitOff configPowerDone configWaitDone configTimerAutoOff
attr Waschmaschine.Status configPowerDone 3
attr Waschmaschine.Status configPowerOff 1
attr Waschmaschine.Status configTimerAutoOff 900
attr Waschmaschine.Status configWaitDone 60
attr Waschmaschine.Status configWaitOff 5
attr Waschmaschine.Status event-on-change-reading state, energy
attr Waschmaschine.Status event-on-update-reading power
attr Waschmaschine.Status room Testraum
attr Waschmaschine.Status stateFormat { my $state = ReadingsVal($name, "state", "");;;; my $power = ReadingsVal($name, "power", "");;;; if($state eq 'on') { "An" } elsif($state eq "done") { "Fertig" } elsif($state eq "running") { "Läuft ($power W)" } else { "off" } }
define Programm.Waschmaschine.Sync DOIF ([Waschmaschine_Pwr:power] or [Waschmaschine_Pwr:energy] or [Waschmaschine_Sw:state]) (setreading Waschmaschine.Status power [Waschmaschine_Pwr:power], setreading Waschmaschine.Status energy [Waschmaschine_Pwr:energy], setreading Waschmaschine.Status switch [Waschmaschine_Sw:state])
attr Programm.Waschmaschine.Sync do always
attr Programm.Waschmaschine.Sync room Testraum
define Programm.Waschmaschine.Status DOIF ([Waschmaschine.Status:power] < AttrVal("Waschmaschine.Status", "configPowerOff", 1)) (set Waschmaschine.Status off, \
setreading Waschmaschine.Status preEnergy 0) DOELSEIF ([Waschmaschine.Status:power] >= AttrVal("Waschmaschine.Status", "configPowerOff", 1) and [Waschmaschine.Status:state] eq 'off') (set Waschmaschine.Status on, \
setreading Waschmaschine.Status preEnergy [WK_Waschmaschine_Power:energy]) DOELSEIF ([Waschmaschine.Status:power] >= AttrVal("Waschmaschine.Status", "configPowerDone", 3)) \
(set Waschmaschine.Status running) DOELSEIF ([Waschmaschine.Status:power] < AttrVal("Waschmaschine.Status", "configPowerDone", 3) and [Waschmaschine.Status:state] eq 'running') (set Waschmaschine.Status done, \
setreading Waschmaschine.Status lastEnergy {([Waschmaschine.Status:energy]-[Waschmaschine.Status:preEnergy])}, \
setreading Waschmaschine.Status totalEnergy {([Waschmaschine.Status:totalEnergy]+[Waschmaschine.Status:lastEnergy])}, \
setreading Waschmaschine.Status lastCost {([Waschmaschine.Status:lastEnergy]/1000*0.25)},\
setreading Waschmaschine.Status totalCost {([Waschmaschine.Status:totalEnergy]/1000*0.25)}, \
setreading Waschmaschine.Status preEnergy [Waschmaschine.Status:energy])
attr Programm.Waschmaschine.Status room Testraum
attr Programm.Waschmaschine.Status wait 5:0:0:60
define Programm.Waschmaschine.Benachrichtigung DOIF ([Waschmaschine.Status:state] eq 'done') (set Pushover1 msg 'FHEM' 'Die Waschmaschine ist fertig' )
attr Programm.Waschmaschine.Benachrichtigung room Testraum
define Programm.Waschmaschine.AutoOff DOIF ([Waschmaschine.Status:state] ne "running" and [Waschmaschine.Status:switch] eq "on") (set Waschmaschine_Sw off)
attr Programm.Waschmaschine.AutoOff do always
attr Programm.Waschmaschine.AutoOff room Testraum
attr Programm.Waschmaschine.AutoOff wait 900


Gruß
DJ-Mix
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

wibi_

Bei 15 Minuten sind würde ich auf
"attr Waschmaschine.Status configTimerAutoOff 900"
tippen und das mal rausnehmen.

Gruß
RPI4, RPI3, RPI2, CULV3_HM, CULV3_FS20, CULV3_RFR, ZWave, 1-Wire, ESPEasy, Signalduino

DJ-Mix

Ok, werde ich ausprobieren. Habe den Code 1zu1 übernommen.
Wundert mich das ich das Problem alleine scheinbar habe ???

Und es soll ja nach Fertigstellung auch ausgeschaltet werden.
Nur nicht schon bereits bei Beginn.

Gruß
DJ-Mix
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

uniqueck

Guten Abend,

ich habe auch versucht diese Anleitung mal umzusetzen, allerdings habe ich eine Steckdose von Edimax, diese liefert die Leistungsdaten im Format xxx W für Watt. Wie kann ich denn in einem DOIF beim Übernehmen der Werte aus der Schaltsteckdose, dass W weglassen?
Ich habe es schon mit einem Regex in der Form /(\d+)/ versucht, allerdings steht dann immer im Dummy der Regex direkt hinten am Wert mit dran.
Mit Hilfe von einer Hilfevariable my $power = [DeviceName:power], allerdings funktioniert das anwenden des regex auch nicht hierauf.

Kann mir hier jemand einen Denkanstoß geben?

Eisix

Hallo,

falls noch jemand ein StatusIcon für TabletUI braucht


<div data-type="symbol"
                data-device="Waschmaschine.Status"
                data-get-on='["on","off","running","done"]'                 
                data-icons='["oa-scene_washing_machine","oa-scene_washing_machine","oa-scene_washing_machine fa-spin","oa-scene_washing_machine"]'
                data-colors='["white","darkgray","blue","#21a000"]'
                class="cell small">
          </div>
          <div data-type="label" class="cell narrow small">Waschmaschine</div>


Gruß
Eisix

turo

@uniqueck:
Problem inzwischen gelöst?

Sonst fällt mir das [DeviceName:power:d] ein oder wenn man es selber machen will:
(my $power = [DeviceName:power]) =~ s/ W//

Gruss,
turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

uniqueck

@turo: jap vielen dank, ich hatte ein neuen thread explizit zum thema doif erstellt und damian war so freundlich mir auf die sprünge zu helfen. Wobei der Part mit dem regex auch interessant ist, da habe ich nämlich ne ganze Weile rum gebastelt. Die obere Variante habe ich aber nun im Einsatz [DeviceName:power:d].

gruß uniqueck

Kermit20

Hallo Gemeinde,

ich wollte mich mal nachfragen, ob das hier erwähnte Teil


Folgende Attribute können angepasst werden:
•configPowerOff Angabe in Watt. Bei Unterschreitung ändert sicht der Status zu "Aus" unter Beachtung des configWaitOff
•configPowerDone Angabe in Watt. Bei Unterschreitung ändert sicht der Status zu "Fertig" unter Beachtung des configWaitDone
•configWaitOff Angabe in Sekunden. Wie lange muss der Wert configPowerOff unterschritten sein, damit sich der Status auf "Aus" ändert (! Wir noch nicht beachtet da eine anpassung im DOIF fehlt.)
•configWaitDone Angabe in Sekunden. Wie lange muss der Wert configPowerDone unterschritten sein, damit sich der Status auf "Fertig" ändert (! Wir noch nicht beachtet da eine anpassung im DOIF fehlt.)

im DOIF Modul mittlerweile integriert wurde. Und was dann evtl. abgeändert werden kann.
RPi1: FHEM mit HMLAN und CUL Eigenbau: diverse Homematic Geräte; Technoline Temp/Feuchte 868 MHz // Schalsteckdosen 433 MHz
RPi2: FHEM mit Viessmann(optolink) mit VControl und 1W Sensoren
RPi3: Apache / Owncloud 9