FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Flipps am 04 März 2018, 23:56:37

Titel: Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Flipps am 04 März 2018, 23:56:37
Hi zusammen, steh gewaltig auf dem Schlauch...
Ich möchte gerne meine Frostschutz Anlage über wachen, dies wollte ich mit einem Sonoff Pow realisieren.
Sonoff geflasht und angelernt.
defmod Frostschutzpumpe MQTT_DEVICE
attr Frostschutzpumpe IODev myBroker
attr Frostschutzpumpe room TEST
attr Frostschutzpumpe stateFormat ENERGY_Power
attr Frostschutzpumpe subscribeReading_energyJson /Blitz-Sauber/Technik/Frostschutz/Pumpe/tele/SENSOR

setstate Frostschutzpumpe 4
setstate Frostschutzpumpe 2018-03-04 23:45:49 ENERGY_Current 0.06
setstate Frostschutzpumpe 2018-03-04 23:45:49 ENERGY_Factor 0.32
setstate Frostschutzpumpe 2018-03-04 23:45:49 ENERGY_Period 0
setstate Frostschutzpumpe 2018-03-04 23:45:49 ENERGY_Power 4
setstate Frostschutzpumpe 2018-03-04 23:45:49 ENERGY_Today 0.023
setstate Frostschutzpumpe 2018-03-04 23:45:49 ENERGY_Total 0.023
setstate Frostschutzpumpe 2018-03-04 23:45:49 ENERGY_Voltage 230
setstate Frostschutzpumpe 2018-03-04 23:45:49 ENERGY_Yesterday 0
setstate Frostschutzpumpe 2018-03-04 23:45:49 Time 2018-03-04T23:45:49
setstate Frostschutzpumpe 2018-03-04 23:45:49 energyJson {"Time":"2018-03-04T23:45:49","ENERGY":{"Total":0.023,"Yesterday":0.000,"Today":0.023,"Period":0,"Power":4,"Factor":0.32,"Voltage":230,"Current":0.060}}
setstate Frostschutzpumpe 2018-03-04 23:45:49 transmission-state incoming publish received



Jetzt wollte ich wenn ein bestimmter Schwellenwert unterschritten wird einen Dummy schalten den ich dann hinterher in der Tablet Ui weiterverarbeiten möchte. Dazu hab ich mir einen DOIF angelegt, leider Schaltet der aber nur in eine Richtung.
Hier noch der DOIF
defmod Frostschutzpumpe_DOIF_1 DOIF ([Frostschutzpumpe:state:d] <1)  (set Pumpe_an off) DOELSE (set Pumpe_an on)
attr Frostschutzpumpe_DOIF_1 do always
attr Frostschutzpumpe_DOIF_1 room TEST

setstate Frostschutzpumpe_DOIF_1 cmd_1
setstate Frostschutzpumpe_DOIF_1 2018-03-04 23:50:49 Device Frostschutzpumpe
setstate Frostschutzpumpe_DOIF_1 2018-03-04 23:50:49 cmd 1
setstate Frostschutzpumpe_DOIF_1 2018-03-04 23:50:49 cmd_event Frostschutzpumpe
setstate Frostschutzpumpe_DOIF_1 2018-03-04 23:50:49 cmd_nr 1
setstate Frostschutzpumpe_DOIF_1 2018-03-04 23:50:49 state cmd_1
setstate Frostschutzpumpe_DOIF_1 2018-03-04 23:50:49 warning condition c01: Argument "" isn't numeric in numeric lt (<)\




Ich habe jetzt nach langer suche was mit split gelesen, ich kann schon verstehen das der DOIF in dem Fall nur Zahlen verarbeiten kann aber ich sehe hier keine Buchstaben oder ähnliches die da den Fehler reinhauen könnten, aber richtig weiter geholfen hat mir das leider auch nicht:(
Hat vielleicht einer einen Tip für mich?

Edit:
Vielleicht mache ich das hier jetzt auch zu Kompliziert, ich möchte einen Dicken Grünen Punkt wenn  Über 1 Watt  und einen Dicken Roten Punkt wenn die Pumpe unter 1 Watt fällt, vielleicht noch den Wert dabei.
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Ellert am 05 März 2018, 06:12:59
Ich kenne die Besonderheiten von Sonoff nicht.

Wenn Du nur einen Status für FTUI benötigst keinen Dummy, dann kannst Du DOIF direkt in FTUI verwenden, siehe Attribute cmdState und stateFormat.
Statt auf state kannst Du in der Bedingung auf ENERGY_Power triggern.
do always sollte nicht notwendig sein, da sonst bei jeder Aktualisierung von Frostschutzpumpe ausgelöst wird.
Wenn Du keine Einschaltschwelle verwendest könnte es um den Wert 1 herum zum Flattern kommen, je nach Wiederholgenauigkeit des Messwertes. Also mit DOELSEIF statt DOELSE eine Einschaltschwelle formulieren.
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Flipps am 05 März 2018, 07:33:26
Moin, danke für die Antwort.
Den Energy_Power state hatte ich auch schon, ich dachte nur ich könnte das Problem so umgehen...
Im richtigem Betrieb hab ich was an die 1000 als wert, da würde ich dann ein einschaltwert von 500 einstellen, momentan ist eine Led Lampe als Testobjekt angeschlossen...
Das do always war auch nur ein Test, der Sonoff sendet alle 5 Minuten alle Werte auf einmal... Das müsste auch ohne funktionieren...
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Frank_Huber am 05 März 2018, 08:01:31
Moin Moin,

setstate Frostschutzpumpe_DOIF_1 2018-03-04 23:50:49 warning condition c01: Argument "" isn't numeric in numeric lt (<)\

sagt mir Du solltest es mal so versuchen:

defmod Frostschutzpumpe_DOIF_1 DOIF ([Frostschutzpumpe:state:d] < 1)  (set Pumpe_an off) DOELSE (set Pumpe_an on)
attr Frostschutzpumpe_DOIF_1 do always


Dir fehlt da ein Leerzeichen.
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Flipps am 05 März 2018, 08:27:42
Okay ich bin mir zwar sicher das ich das schon probiert habe, werde es aber heute nachmittag nohcmal testen, habe auch schon <= 3  durch aber da schreibt er mir auch den Fehler... ich vermute mal das der POW irgendwas sendet was dem DOIF nicht gefällt...
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Frank_Huber am 05 März 2018, 08:32:29
da fällt mir grad noch auf, in deinem List gibt es kein Reading "state" und das Reading "ENERGY_Power" hat direkt die Dezimalwerte.

also evtl so:
defmod Frostschutzpumpe_DOIF_1 DOIF ([Frostschutzpumpe:ENERGY_Power] < 1)  (set Pumpe_an off) DOELSE (set Pumpe_an on)
attr Frostschutzpumpe_DOIF_1 do always


würde aber noch einen Schwellwert einbauen, sonst könnte es das flattern anfangen im Grenzbereich.

also evtl so, je nachdem wie schnell die Temperatur steigt:
defmod Frostschutzpumpe_DOIF_1 DOIF ([Frostschutzpumpe:ENERGY_Power] < 1)  (set Pumpe_an off) DOELSEIF ([Frostschutzpumpe:ENERGY_Power] > 2) (set Pumpe_an on)
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Flipps am 05 März 2018, 09:02:10
Die habe ich beide genau so durch, da das nicht geklappt habe hab ich das mit denattr Frostschutzpumpe stateFormat ENERGY_Power vesucht aber leider auch ohne erfolg. werde aber alles nochmal Probieren :-)
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Frank_Huber am 05 März 2018, 10:11:01
definiere mal meinen Vorschlag mit Schwellwert und poste ein List der Geräte.
also "list  Frostschutzpumpe"
und "list Frostschutzpumpe_DOIF_1"
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Flipps am 05 März 2018, 10:19:44
Mach ich heute nachmittag 8)
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Ellert am 05 März 2018, 12:48:04
Zitat von: Flipps am 05 März 2018, 08:27:42
Okay ich bin mir zwar sicher das ich das schon probiert habe, werde es aber heute nachmittag nohcmal testen, habe auch schon <= 3  durch aber da schreibt er mir auch den Fehler... ich vermute mal das der POW irgendwas sendet was dem DOIF nicht gefällt...

Hier: ich vermute mal das der POW irgendwas sendet was dem DOIF nicht gefällt...

Na, dann poste mal einen dazu passenden Mitschnitt des Eventmonitors.

Und vieles kannst auch vorbereitend machen und dann alle notwendigen Informationen bei der Fragestellung gleich mitliefern, siehe https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche
Titel: Antw:Dummy Schalten bei unterschreiten der Stromaufnahme.
Beitrag von: Flipps am 05 März 2018, 14:09:18
Also:
Vielen Dank an euch :-)
hab alles nochmal gelöscht und neu angelegt mit dem Code von Frank, ich hatte den Doif so in der art schonmal versucht aber da hatte ich einen Tipfehler drin der tatsächlich das Ganze Ding lahmgelegt hat.
Scheint jetzt zu funktionieren.
Beim nächsten Fehler gibts direkt alle Daten :-) Entschuldigt bitte.