Zu wenig Infos.
Zitatdefine HeizungFehler notify HkVL:temperature.* { fhem("set FS20_WzKronleuchter on") if ($defs{'HkVL'}{STATE} =~ m/.*Cool.*/) }
erscheint mir bisschen kompliziert. Welche Zustände kann "HkVL" den annehmen?
Einerseits offebar irgendwas mit "temperatur...", aber andereseits "...Cool...". Ich vermute da irgendwo das Problem.
Wie ist das definiert, wie wird das getriggert?
Was ist "DS18x20" für ein Sensor und was misst der und macht dann wann was mit HkVL?
Da ich das alles nicht weiss mag ich falsch liegen, aus dem Bauch raus würde ich ansonsten in die Richtung
define HeizungFehler notify HkVL:Cool set FS20_WzKronleuchter on
denken.
...danke für den Versuch.
Hab's probiert - leider nicht geklappt.
Der DS18x20 ist ein DS18B20. HkVL ist die Temperaturmessung HeizkesselVorLauf.
Übrigens: pah - der 1wire guru - schreibt, dass der Alarm nicht direkt auswertbar ist. Man muss schon das Perl-Konstrukt anwenden um den Status abzufragen.
Was mach' ich falsch in dieser Zeile?
define HeizungFehler notify HkVL:temperature.* { fhem("set FS20_WzKronleuchter on") if ($defs{'HkVL'}{STATE} =~ m/.*Cool.*/) }
Gruß Klaus
Eigentlich hast du ja die Hälfte meiner Fragen gar nicht beantwortet.
ZitatDS18x20 ist ein DS18B20
Och Mönsch... das macht mich doch nun echt nicht schlauer.
Aber gut: Was ist den der DS18B20 für ein Sensor? Wie ist er an FHEM angebunden? Welche Zustände kennt er und wie erfährt FHEM davon?
Wie verändert der den Wert von HkVL?
Ich habe aber das Gefühl, das dein Problem anders gelagert ist und wenn ich recht habe verstehst du die Fragen gar nicht richtig.
Also:
Zitatdefine HeizungFehler notify HkVL:temperature.*
Macht nur etwas, wenn es ein Dummy oder Device gibt, das HkVL heisst und im Falle des Falles den Wert "temperature.* " annimmt.
Ich nehme an, du glaubst, das einen Temperaturänderung am "DS18B20 " irgendwie Zustand von HkVL ändert und dann willst du diese Änderung auswerten.
Viele Devices werden auchvon FHEM direkt abgefragt, also z.b. FS30 oder HM Fernbedienungen, Sensoren und Schalter.
Wenn du also z.b. ein FS20 Thermometer hast, dann sendet das auf einem vorher definierten Kanal z.B. ein ON, und damit kannst du dann eine define... notivy triggern.
Ich habe bei mir ein ähnliches Problem z.b. mit einem FS20 UTS gelöst. Das sendet ein ON auf einem seiner Kanäle, wenn die Heizwassertemperatur unter 5 Grad fällt.
(Ziel ist es zu verhindern, das die Heizung einfrieren könnte, wenn die im Winterurlaub z.b. nicht an ist und es sehr kalt wird)
So geht das aber bei HkVL bzw dem "DS18B20 " offenbar nicht.
Mal angenommen der "DS18B20 " sei ein 1wire Device, dann muss du in FHEM erstmal irgendwas machen, was regelmaessig den Wert abfragt, und dann damit irgendeine FHEM Dummyvariable verfüllt.
Wenn
Zitatdefine HeizungFehler notify HkVL:temperature.* { fhem("set FS20_WzKronleuchter on") if ($defs{'HkVL'}{STATE} =~ m/.*Cool.*/) }
der einzige Code ist, der das machen soll, dann geht das natürlich nicht:
Ich habe so ein bisschen das Gefühl, du willst das die Aktion auslöst, wen en Test wahr wird, dieser Test wird aber nur gemacht, wenn die Aktion auslöst.
Ich habe keine Ahnung, wie man 1wire devices überhaupt abfragt, kann also nicht mal sagen, ob
Zitat($defs{'HkVL'}{STATE} =~ m/.*Cool.*/)
überhaupt sinnvolle Ergebnisse liefert. Aber selbst wenn, würde NIE irgendwas ausgelöst, weil sich HkVL nicht ändert.
Um das noch mal klar zu machen, versuche ich mal die Bedeutung von
Zitatdefine HeizungFehler notify HkVL:temperature.* { fhem("set FS20_WzKronleuchter on") if ($defs{'HkVL'}{STATE} =~ m/.*Cool.*/) }
quais "in Deutsch" hinzuschreiben:
Definere eine Aktion die "HeizungFehler " heisst.
Diese Aktion soll auslösen, wenn die Variable "HkVL" den Wert ÄNDERT und der geänderte Wert mit
"temperatur" anfängt und dahinter irgendwas anderes (oder auch nichts weiter) steht.
Wenn diese Auslösung kommt. DANN schalte den FS20_WzKronleuchter an, WENN der Ausdruck
($defs{'HkVL'}{STATE} =~ m/.*Cool.*/)
wahr ist.
So. Jetzt frag dich mal, ob diese Aktion Überhaupt jemals auslöst.
Ja, natürlich wird der 1wire-Sensor abgefragt. Ich schrieb, dass Loggen und daraus Kurven schreiben funktioniert.
Der HkVL wurde zuvor definiert mit:
define HkVL OWTHERM DS18B20 2732F0010000
attr HkVL stateAH <span style="color:red">▴
attr HkVL stateAL <span style="color:red">▾
attr HkVL tempHigh 70
attr HkVL tempLow 28
Grüße Klaus
Bitte nimms mir nicht übel, aber du beantwortest meine Fragen nicht. Dann kann ich nur mutmassen und raten und so, das ist nicht so richtig zielführend.
Ich fragte z.b.:
Welche Zustände kennt er und wie erfährt FHEM davon?
Wie verändert der den Wert von HkVL?
Diese Fragen sind nach wie vor nicht beantwortet.
Zitatdefine HkVL OWTHERM DS18B20 2732F0010000
Und wie nimmt dann HkVL einen Wert an der da heisst "temperature<irgendwas>!
So wie ich das verstehe (Leider muss ich hier erneut raten)
nimmt HkVL einen Zahlenwert an, der der Temperatur des Sensors entspricht, oder?
Das heisst HkVL kann z.b. 30 sein oder 58 oder 71.
Stimmts?
Wenn das so ist, wieso sollte dann
define HeizungFehler notify HkVL:temperature.* ...
jemals auslösen?
ZitatIch schrieb, dass Loggen und daraus Kurven schreiben funktioniert.
Ja? Wo schriebst du das? Ich kann das in diesem Thread gerade nicht finden...