Hi
Irgendwie finde ich einfach nicht die richtigen Attribute
Mein Problem ist wenn der Doif auslöst dauert es bis der Stromzähler neue werte liefert.
Bis dahin hat aber der Doif schon wieder ausgelöst springt zu weit usw.
3 Heizspiralen jede hat 1000 W sollen nacheinander geschaltet werden wenn Verbrauch ca -1000 sind.
Stromzähler liefert alle 15s den Verbrauch.
Ich hoffe es ist verständlich.
DOELSEIF ([Strom:power] < -1200 && [Heizung] eq "off") (set HM_2B9AF3_Sw_02 on, set Heizung 1)
DOELSEIF ([Strom:power] < -1100 && [Heizung] eq "1") (set HM_2B9AF3_Sw_03 on, set Heizung 2)
DOELSEIF ([Strom:power] < -1100 && [Heizung] eq "2") (set HM_2B9AF3_Sw_04 on, set Heizung 3)
DOELSEIF ([Strom:power] > -50 && [Heizung] eq "3") (set HM_2B9AF3_Sw_04 off, set Heizung 2)
DOELSEIF ([Strom:power] > -50 && [Heizung] eq "2") (set HM_2B9AF3_Sw_03 off, set Heizung 1)
DOELSEIF ([Strom:power] > -50 && [Heizung] eq "1") (set HM_2B9AF3_Sw_02 off, set Heizung off)
Zitat von: Crawler am 17 Mai 2016, 23:45:12Irgendwie finde ich einfach nicht die richtigen Attribute
Welche hast du denn verwendet?
Im Übrigen: es wäre besser zu lesen (besonders auf Handys!), wenn du die einzelnen DOIF-Zweige untereinander schreiben würdest:
([Strom:power] < -1200 && [Heizung] eq "off") (set HM_2B9AF3_Sw_02 on, set Heizung 1)
DOELSEIF ([Strom:power] < -1100 && [Heizung] eq "1") (set HM_2B9AF3_Sw_03 on, set Heizung 2)
DOELSEIF ([Strom:power] < -1100 && [Heizung] eq "2") (set HM_2B9AF3_Sw_04 on, set Heizung 3)
DOELSEIF ([Strom:power] > -50 && [Heizung] eq "3") (set HM_2B9AF3_Sw_04 off, set Heizung 2)
DOELSEIF ([Strom:power] > -50 && [Heizung] eq "2") (set HM_2B9AF3_Sw_03 off, set Heizung 1)
DOELSEIF ([Strom:power] > -50 && [Heizung] eq "1") (set HM_2B9AF3_Sw_02 off, set Heizung off)
Wait waitsame usw eigentlich hatte ich alle schon mal in der Hand aber nicht die richtige Kombination gefunden
Gesendet von meinem SM-G900F mit Tapatalk
Eigentlich willst du [Heizung] nicht triggern, sondern nur abfragen, [?Heizung] dürfte helfen.
Heizung ist ein dummy damit ich weiß in welcher Stufe er gerade steht
Das Doif schaltet also auf cmd 1 wenn die Heizung vorher aus war und Stromverbrauch - 1200
das 2te cmd wenn die Heizung stufe 1 schon an ist und Stromverbrauch immer noch unter -1000
Ändert nix an meiner Aussage. Und aller 15 sek. wird erneut geprüft und hoch oder runtergeschaltet.
Ein Triggern auf Heizung (inkl. wait, selftrigger o.ö.) bringt nix, da der Wert für [Strom:Power] in der Zwischenzeit nicht aktualisiert wird. Also einfach die 15s "aussitzen".
ohne Heizung zu triggern weiß Doif nicht welche Stufe gerade aktiv ist und welche als nächstes dran kommt also komme ich daran nicht vorbei
sonst müsste ich die Schalterzustände prüfen würde aber das gleiche sein.
Doif schaltet auf 1 merkt das Schalter 1 und Verbrauch <1000 Doif schaltet nach wait auf 2 usw
Zitat von: Crawler am 18 Mai 2016, 22:03:17ohne Heizung zu triggern weiß Doif nicht welche Stufe gerade aktiv ist
Doch, mittels Abfrage des Status mit [?Heizung], wobei eine Änderung nicht das
DOIF auslöst. Das erfolgt nur durch den Stromzähler [Strom:Power]. Ist hier völlig ausreichend, weil der Stromzähler eh nicht zwischendurch aktualisiert.
Okay verstanden
als das ? sorgt dafür das erst wieder die Bedingungen geprüft werden wenn der Zähler sich ändert ::)
Danke werde ich morgen testen :)
? (http://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Stati_ohne_Trigger)
http://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Stati_ohne_Trigger
Lese das hier mal. Da steht drin was das ? genau macht.
Funktioniert leider immer noch nicht
kann es sein das DOIF nicht mit den negativen Zahlen arbeiten kann?
habe 1x beobachtet wie strom bei -1091 war und DOIF auf von CMD 1 auf CMD 3 geschaltet hat. was aber wieder der logik strom < -1100 ist.
([Strom:power] < -1200 && [?Heizung] eq "off") (set HM_2B9AF3_Sw_02 on, set Heizung 1)
DOELSEIF ([Strom:power] < -1100 && [?Heizung] eq "1") (set HM_2B9AF3_Sw_03 on, set Heizung 2)
DOELSEIF ([Strom:power] < -1100 && [?Heizung] eq "2") (set HM_2B9AF3_Sw_04 on, set Heizung 3)
DOELSEIF ([Strom:power] > -50 && [?Heizung] eq "3") (set HM_2B9AF3_Sw_04 off, set Heizung 2)
DOELSEIF ([Strom:power] > -50 && [?Heizung] eq "2") (set HM_2B9AF3_Sw_03 off, set Heizung 1)
DOELSEIF ([Strom:power] > -50 && [?Heizung] eq "1") (set HM_2B9AF3_Sw_02 off, set Heizung off)
hab mal ein Logfile gemacht scheinbar zählt er immer nur von 1-6 durch
attr wait probehalber gesetzt auf 16:16:16:16:16:16
Zitat2016-05-19_14:09:34 Strom power: -3071.81
2016-05-19_14:09:34 Solar_Heizung wait_timer: no timer
2016-05-19_14:09:34 Solar_Heizung cmd_nr: 1
2016-05-19_14:09:34 Solar_Heizung cmd: 1
2016-05-19_14:09:34 Solar_Heizung cmd_event: Strom
2016-05-19_14:09:34 Solar_Heizung cmd_1
2016-05-19_14:09:34 Solar_Heizung cmd_nr: 2
2016-05-19_14:09:34 Solar_Heizung cmd: 2
2016-05-19_14:09:34 Solar_Heizung cmd_event: Strom
2016-05-19_14:09:34 Solar_Heizung cmd_2
2016-05-19_14:09:42 Solar_Heizung wait_timer: no timer
2016-05-19_14:09:44 Solar_Heizung wait_timer: 19.05.2016 14:10:00 cmd_3 Strom
2016-05-19_14:09:44 Strom power: -854.3
2016-05-19_14:09:54 Strom power: -806.43
2016-05-19_14:10:00 Solar_Heizung wait_timer: no timer
2016-05-19_14:10:00 Solar_Heizung cmd_nr: 3
2016-05-19_14:10:00 Solar_Heizung cmd: 3
2016-05-19_14:10:00 Solar_Heizung cmd_event: Strom
2016-05-19_14:10:00 Solar_Heizung cmd_3
2016-05-19_14:10:04 Solar_Heizung wait_timer: 19.05.2016 14:10:20 cmd_4 Strom
2016-05-19_14:10:04 Strom power: 310.62
2016-05-19_14:10:14 Strom power: 289.29
2016-05-19_14:10:20 Solar_Heizung wait_timer: no timer
2016-05-19_14:10:20 Solar_Heizung cmd_nr: 4
2016-05-19_14:10:20 Solar_Heizung cmd: 4
2016-05-19_14:10:20 Solar_Heizung cmd_event: Strom
2016-05-19_14:10:20 Solar_Heizung cmd_4
2016-05-19_14:10:24 Solar_Heizung wait_timer: 19.05.2016 14:10:40 cmd_5 Strom
2016-05-19_14:10:24 Strom power: -786.46
2016-05-19_14:10:34 Strom power: -825
2016-05-19_14:10:40 Solar_Heizung wait_timer: no timer
2016-05-19_14:10:40 Solar_Heizung cmd_nr: 5
2016-05-19_14:10:40 Solar_Heizung cmd: 5
2016-05-19_14:10:40 Solar_Heizung cmd_event: Strom
2016-05-19_14:10:40 Solar_Heizung cmd_5
2016-05-19_14:10:44 Solar_Heizung wait_timer: 19.05.2016 14:11:00 cmd_2 Strom
2016-05-19_14:10:44 Strom power: -1925.77
2016-05-19_14:10:54 Strom power: -1937.17
2016-05-19_14:11:00 Solar_Heizung wait_timer: no timer
2016-05-19_14:11:00 Solar_Heizung cmd_nr: 2
2016-05-19_14:11:00 Solar_Heizung cmd: 2
2016-05-19_14:11:00 Solar_Heizung cmd_event: Strom
2016-05-19_14:11:00 Solar_Heizung cmd_2
2016-05-19_14:11:04 Solar_Heizung wait_timer: 19.05.2016 14:11:20 cmd_3 Strom
2016-05-19_14:11:04 Strom power: -813.97
2016-05-19_14:11:14 Strom power: -810.6
2016-05-19_14:11:20 Solar_Heizung wait_timer: no timer
2016-05-19_14:11:20 Solar_Heizung cmd_nr: 3
2016-05-19_14:11:20 Solar_Heizung cmd: 3
2016-05-19_14:11:20 Solar_Heizung cmd_event: Strom
2016-05-19_14:11:20 Solar_Heizung cmd_3
2016-05-19_14:11:24 Solar_Heizung wait_timer: 19.05.2016 14:11:40 cmd_4 Strom
2016-05-19_14:11:24 Strom power: 305.78
2016-05-19_14:11:34 Strom power: 310.99
2016-05-19_14:11:40 Solar_Heizung wait_timer: no timer
2016-05-19_14:11:40 Solar_Heizung cmd_nr: 4
2016-05-19_14:11:40 Solar_Heizung cmd: 4
2016-05-19_14:11:40 Solar_Heizung cmd_event: Strom
2016-05-19_14:11:40 Solar_Heizung cmd_4
2016-05-19_14:11:44 Solar_Heizung wait_timer: 19.05.2016 14:12:00 cmd_5 Strom
2016-05-19_14:11:44 Strom power: -790.34
Scheinbar wait falsch verstanden ::)
Ohne wait das gleiche
Zitat16-05-19_14:17:00 Solar_Heizung wait_timer: no timer
2016-05-19_14:17:00 Solar_Heizung cmd_nr: 4
2016-05-19_14:17:00 Solar_Heizung cmd: 4
2016-05-19_14:17:00 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:00 Solar_Heizung cmd_4
2016-05-19_14:17:04 Solar_Heizung cmd_nr: 5
2016-05-19_14:17:04 Solar_Heizung cmd: 5
2016-05-19_14:17:04 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:04 Solar_Heizung cmd_5
2016-05-19_14:17:04 Solar_Heizung cmd_nr: 6
2016-05-19_14:17:04 Solar_Heizung cmd: 6
2016-05-19_14:17:04 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:04 Solar_Heizung cmd_6
2016-05-19_14:17:04 Strom power: -706.46
2016-05-19_14:17:14 Solar_Heizung cmd_nr: 1
2016-05-19_14:17:14 Solar_Heizung cmd: 1
2016-05-19_14:17:14 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:14 Solar_Heizung cmd_1
2016-05-19_14:17:14 Strom power: -2909.81
2016-05-19_14:17:14 Solar_Heizung cmd_nr: 2
2016-05-19_14:17:14 Solar_Heizung cmd: 2
2016-05-19_14:17:14 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:14 Solar_Heizung cmd_2
2016-05-19_14:17:14 Solar_Heizung cmd_nr: 3
2016-05-19_14:17:14 Solar_Heizung cmd: 3
2016-05-19_14:17:14 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:14 Solar_Heizung cmd_3
2016-05-19_14:17:24 Solar_Heizung cmd_nr: 4
2016-05-19_14:17:24 Solar_Heizung cmd: 4
2016-05-19_14:17:24 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:24 Solar_Heizung cmd_4
2016-05-19_14:17:24 Strom power: 387.63
2016-05-19_14:17:24 Solar_Heizung cmd_nr: 5
2016-05-19_14:17:24 Solar_Heizung cmd: 5
2016-05-19_14:17:24 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:24 Solar_Heizung cmd_5
2016-05-19_14:17:34 Solar_Heizung cmd_nr: 6
2016-05-19_14:17:34 Solar_Heizung cmd: 6
2016-05-19_14:17:34 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:34 Solar_Heizung cmd_6
2016-05-19_14:17:34 Solar_Heizung cmd_nr: 1
2016-05-19_14:17:34 Solar_Heizung cmd: 1
2016-05-19_14:17:34 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:34 Solar_Heizung cmd_1
2016-05-19_14:17:34 Strom power: -1849.42
2016-05-19_14:17:34 Solar_Heizung cmd_nr: 2
2016-05-19_14:17:34 Solar_Heizung cmd: 2
2016-05-19_14:17:34 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:34 Solar_Heizung cmd_2
2016-05-19_14:17:34 Solar_Heizung cmd_nr: 3
2016-05-19_14:17:34 Solar_Heizung cmd: 3
2016-05-19_14:17:34 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:34 Solar_Heizung cmd_3
2016-05-19_14:17:44 Solar_Heizung cmd_nr: 4
2016-05-19_14:17:44 Solar_Heizung cmd: 4
2016-05-19_14:17:44 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:44 Solar_Heizung cmd_4
2016-05-19_14:17:44 Strom power: 408.09
2016-05-19_14:17:44 Solar_Heizung cmd_nr: 5
2016-05-19_14:17:44 Solar_Heizung cmd: 5
2016-05-19_14:17:44 Solar_Heizung cmd_event: Strom
2016-05-19_14:17:44 Solar_Heizung cmd_5