FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: andies am 29 Juli 2017, 12:18:20

Titel: Strommessung Entkalker mit FritzDECT
Beitrag von: andies am 29 Juli 2017, 12:18:20
Ich habe eine Entkalkungsanlage, die keine digitale Schnittstelle besitzt. Ich möchte auslesen, wann sich diese Anlage regeneriert (ca alle 24-48 Stunden, sie schaltet sich dann für 1h ab). Mit einem DECT 200-Gerät kann ich nun den Strom messen und habe gesehen,  dass bei Regeneration eine kleine Stromspitze entsteht, siehe Anhang.

Das will ich nun ausnutzen und in FHEM auswerten. Ich dachte, ich programmiere das wie folgt:
Das wird man alles per Hand programmieren müssen. Hat jemand einen Tipp, ob das geht oder ob es einfacher geht?
Titel: Antw:Strommessung Entkalker mit FritzDECT
Beitrag von: mameier1234 am 29 Juli 2017, 12:57:38
Ich mache das so mit meiner Waschmaschine...

Wenn der Stromverbrauch von vorher 0 auf mehr als x ansteigt, dann userreading "running" setzten..

Wenn das Userreading "Running" gesetzt ist und der Stromverbrauch unter einen bestimmten Wert fällt, (dann ist die Maschine fertig..) und ein Alarm wird auf Lametric ausgegeben..

Wenn das Userreading "Running" gesetzt ist und der Stromverbrauach auf 0 sinkt , dann wurde die Maschine ausgeschaltet... Also Reading "Running" wieder auf 0 ....

Ich habe mir die Ideen auch zusammengefunden (Danke an den ursprünglichen Autor), ich denke aber, es wird Dir helfen..



DOIF ...
FBDECT_WaMaschine:power:.* {
     if (ReadingsNum("FBDECT_WaMaschine", "power", 0) > 10 && ReadingsVal("FBDECT_WaMaschine", "running", "off") eq "off") {
          fhem("setreading FBDECT_WaMaschine running on");
}

     if (ReadingsNum("FBDECT_WaMaschine", "power", 0) < 3.2 && ReadingsVal("FBDECT_WaMaschine", "running", "off") eq "on") {
          fhem("setreading FBDECT_WaMaschine running off");
          fhem("define at_LametricWaMa at +*00:00:15 set lametric msg 'i59' 'Waschmaschine fertig !' 'notifications:notification4' '1'");
     }
if (ReadingsNum("FBDECT_WaMaschine", "power", 0) < 1 && ReadingsVal("FBDECT_WaMaschine", "running", "off") eq "off") {
          fhem("setreading FBDECT_WaMaschine running off");
  fhem("delete at_LametricWaMa");
     }
}
Titel: Antw:Strommessung Entkalker mit FritzDECT
Beitrag von: andies am 29 Juli 2017, 18:11:08
Danke, ich habe das jetzt so gemacht. Zuerst das dummy
defmod Entkalker dummy
attr Entkalker userReadings InProgress

und dazu eine DOIF:
defmod EntkalkerPruefen DOIF ( [DECT1:power_no]>6 && [Entkalker:InProgress]==0 ) (setreading Entkalker InProgress 1) DOELSE ( [DECT1:power_no]<6 && [Entkalker:InProgress]==1 ) (setreading Entkalker InProgress 0)
Dabei habe ich im device DECT1 das Reading power_no definiert (vermutlich ist das zu umständlich):
userReadings power_no { ReadingsNum($name,"power",0)}
um die Einheit Watt loszuwerden.
Titel: Antw:Strommessung Entkalker mit FritzDECT
Beitrag von: andies am 29 Juli 2017, 18:56:27
Geht, glaube ich, noch viel einfacher - man kann das sogar im device DECT1 unterbringen:
userReadings EntkalkungLaeuft {if (ReadingsNum($name,"power",0)>6) {return 1;;} else {return 0;;}}
Und vermutlich kann man selbst diese Abfrage noch eleganter formulieren.