FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Vorhand am 02 Januar 2013, 11:09:07

Titel: Ausfallerkennung der Heizung
Beitrag von: Vorhand am 02 Januar 2013, 11:09:07
Hallo,

leider erkenne ich einen Ausfall der Heizung erst wenn es zu kühl wird. Bei einer Fußbodenheizung ist das 2h zu spät.
Zur Erkennung des Ausfalls hab ich mir die Unterschreitung der Vorlauftemperatur z.B. < 27°C ausgedacht - kommt schnell.
Die Messung erfolgt mit DS18x20 über eine Fritzbox 7390.
Zur Signalisierung soll der Kronleuchter im Wohnzimmer angehen - ist sehr selten an.

Diese Zeile für das notify habe ich mir aus dem Forum zusammengelesen:

define HeizungFehler notify HkVL:temperature.* { fhem("set FS20_WzKronleuchter on") if ($defs{'HkVL'}{STATE} =~ m/.*Cool.*/) }

Leider funktioniert es nicht. Der Alarm "Cool" kommt - sieht man am roten Dreieck.
Was stimmt an dieser Definition nicht?

Danke und noch alles Gute im Neuen Jahr!
Grüße
Titel: Aw: Ausfallerkennung der Heizung
Beitrag von: ilmtuelp0815 am 02 Januar 2013, 18:33:20
Hi Klaus!
Ich kann leider bei der Lösung nicht helfen, aber in diese Rubrik sollen eigentlich nur funktionierende Codeschnipsel rein.
Deine Anfrage sollte besser in die Anfänger-Rubrik.
Titel: Aw: Ausfallerkennung der Heizung
Beitrag von: Zrrronggg! am 03 Januar 2013, 15:54:17
Zu wenig Infos.


Zitat
define 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.



Titel: Aw: Ausfallerkennung der Heizung
Beitrag von: Vorhand am 03 Januar 2013, 17:51:12
...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
Titel: Aw: Ausfallerkennung der Heizung
Beitrag von: Zrrronggg! am 03 Januar 2013, 18:39:24
Eigentlich hast du ja die Hälfte meiner Fragen gar nicht beantwortet.
Zitat
DS18x20 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:

Zitat

define 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
Zitat
define 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

Zitat
define 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.

Titel: Aw: Ausfallerkennung der Heizung
Beitrag von: Vorhand am 04 Januar 2013, 16:59:59
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
Titel: Aw: Ausfallerkennung der Heizung
Beitrag von: Zrrronggg! am 04 Januar 2013, 18:47:57


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.

Zitat
define 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?

Zitat
Ich schrieb, dass Loggen und daraus Kurven schreiben funktioniert.


Ja? Wo schriebst du das? Ich kann das in diesem Thread gerade nicht finden...