Gelöst: Threshold mit mehr als 2 Sensoren/Readings ?

Begonnen von locodriver, 05 Dezember 2013, 20:49:22

Vorheriges Thema - Nächstes Thema

locodriver

Hallo, ich habe gestern das erste Mal threshold verwendet, das sieht so aus:

define BD_Luft_auto THRESHOLD BD_Regler:humidity:5:73 AND BD_Fenster:state:closed BD_Luefter_Sw_01|set @ on|set @ off|1

und soll im Bad den Lüfter bei 73% ein- und 68% ausschalten - aber nur wenn der Fensterkontakt geschlossen ist.

Ich möchte aber noch einen Zeitraum (nur zwischen 8 Uhr und 20 Uhr) angeben, in dem der Lüfter nur laufen darf; evtl. soll auch noch ein Dummy als Automatik-ein/aus-Schalter dazukommen.
Laut Doku kann man ja nur zwei Bedingungen im threshold-Modul verknüpfen, hat schon jemand die zweite Bedingung durch eine Dummy ersetzt, welcher vorher von mehreren variablen Größen gesetzt wurde?

etwa so: Luefterauto=ein wenn (Zeit gt 8:00 and Zeit lt 20:00 and BD_Fenster eq closed and Autoschalter eq ein)

und dann weiter:define BD_Luft_auto THRESHOLD BD_Regler:humidity:5:73 AND Luefterauto:state:ein BD_Luefter_Sw_01|set @ on|set @ off|1

Außerdem hätte ich gerne einen log-Eintrag, wenn der Lüfter ein- bzw. ausschaltet.

Danke für Tipps in die richtige Richtung.

Uwe
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Damian

Hallo Uwe,

damit dein Lüfter nur zwischen 8:00 und 20:00 Uhr läuft, kannst du Folgendes definieren:

define BD_Luft_auto THRESHOLD BD_Regler:humidity:5 AND BD_Fenster:state:closed BD_Luefter_Sw_01|set @ on|set @ off|1

define HC_Luft Heating_Control BD_Luft_auto 08:00|73 20:00|105 set @ desired %


Die Kombination mit einem zusätzlichen Dummy sollte mit structure gehen. Siehe Commandref von structure.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

locodriver

@Damian:
Ich habe nicht gewusst, dass man HC "missbrauchen" kann :).

Die "105" stellt dann den - normal nicht zu erreichenden - Feuchtigkeitswert von 105% dar? Damit wird 20 Uhr dann ausgeschaltet - oder?

Den Dummy kann man doch dann lt. Ref. auch als Bedingung dem HC mitgeben?

Werde ich mal versuchen, zusammen zu basteln.
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Damian

Zitat von: locodriver am 06 Dezember 2013, 11:28:14
@Damian:
Ich habe nicht gewusst, dass man HC "missbrauchen" kann :).

Die "105" stellt dann den - normal nicht zu erreichenden - Feuchtigkeitswert von 105% dar? Damit wird 20 Uhr dann ausgeschaltet - oder?

Den Dummy kann man doch dann lt. Ref. auch als Bedingung dem HC mitgeben?

Werde ich mal versuchen, zusammen zu basteln.

Du kannst auch neuerdings den weekdaytimer nehmen, was aber nichts anderes ist.

105-5=100 wird als Feuchtigkeit hoffentlich bei dir nie erreicht;)

Den Dummy kannst du mit deinem Fensterkontakt in einer structure zusammenfassen, die du dann mit AND beim THRESHOLD-Modul angibst. In der Commandref von THRESHOLD habe ich ein Beispiel mit structure und THRESHOLD angegeben (für mehrere Fensterkontakte).

Dummy als Bedingung bei HC angeben wird in diesem Fall nicht funktionieren, weil die Kontrolle des Schaltens beim THRESHOLD liegt.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

locodriver

@Damian

Gibt es überhaupt einen funktionellen Unterschied zwischen WDT und HC, oder ist HC als Bezeichnung nur noch ein Relikt, um die Kompatibilität zu älteren Installationen zu erhalten, damit die User nicht alles ändern müssen?

Mit deiner Hilfe sieht es jetzt so bei mir aus:

define BD_Luft_auto THRESHOLD BD_Regler:humidity:4 AND BD_Fenster:state:closed BD_Luefter_Sw_01|set @ on|set @ off|1
attr BD_Luft_auto icon icoLuefter
attr BD_Luft_auto room 004Bad
attr BD_Luft_auto state_format _m _dv


define HC_Luft Heating_Control BD_Luft_auto 08:00|71 20:00|105 set @ desired %
attr HC_Luft room 004Bad
attr HC_Luft windowSensor BD_Fenster


Der Dummy wird von der Weboberfläche oder einem 6-fach WM55 getriggert:

define BD_Ventauto_aus notify BD_T6_Btn_03.Long.1-.* set Luefterautomatik off
attr BD_Ventauto_aus room 004Bad

define BD_Ventauto_ein notify BD_T6_Btn_04.Long.1-.* set Luefterautomatik on
attr BD_Ventauto_ein room 004Bad


define Luefterautomatik dummy
attr Luefterautomatik alias Ventilatorauto
attr Luefterautomatik devStateIcon Ein:switch.on Aus:switch.off
attr Luefterautomatik eventMap on:Ein off:Aus
attr Luefterautomatik room 004Bad,010Wohnung
attr Luefterautomatik webCmd Aus:Ein
# attr Luefterautomatik fp_ETW 956,263,2,Luefterauto


Ich wollte den Dummy bei Theshold als zweite Bedingung (anstelle des Fensters) einbauen, das hat aber nicht funktioniert. Das Fenster ist ja jetzt in HC enthalten. Mit der Structure habe ich mich noch nicht befasst. Wenn ich das Fenster bei HC habe, dann brauche ich doch auch keine Structure, oder?

Uwe
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Damian

#5
Zitat von: locodriver am 08 Dezember 2013, 14:59:53
@Damian

oder ist HC als Bezeichnung nur noch ein Relikt, um die Kompatibilität zu älteren Installationen zu erhalten, damit die User nicht alles ändern müssen?
ja

Und hier der Code mit structure:

define BD_Luft_auto structure Luft_auto BD_Fenster Luefterautomatik
attr BD_Luft_auto clientstate_behavior relative
attr BD_Luft_auto clientstate_priority closed open

attr Luefterautomatik Luft_auto_map on:closed off:open

define BD_Luft_auto THRESHOLD BD_Regler:humidity:4 AND BD_Luft_auto:state:closed BD_Luefter_Sw_01|set @ on|set @ off|1



So sollte dein Lüfter nur angehen, wenn Fenster geschlossen und Luefterautomatik on und vorgegebene Luftfeuchtigkeit überschritten. Umgekehrt geht der Lüfter sofort aus, wenn Fenster geöffnet oder Luefterautomatik off.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

locodriver

Hallo Damian,

mit deiner Hilfe geht es voran  :D.

Ich glaube, die Structure muss einen anderen Namen haben (doppelt sich mit THRESHOLD). Was "macht" das "Luft_auto" in der struct-def., ich habe da keine richtige Erklärung gefunden?

Struct. sieht jetzt so aus:

define BD_Luft_auto_struc structure Luft_auto BD_Fenster Luefterautomatik
attr BD_Luft_auto_struc clientstate_behavior relative
attr BD_Luft_auto_struc clientstate_priority closed open


define BD_Luft_auto THRESHOLD BD_Regler:humidity:4 AND BD_Luft_auto_struc:state:closed BD_Luefter_Sw_01|set @ on|set @ off|1
attr BD_Luft_auto icon icoLuefter
attr BD_Luft_auto room 004Bad
attr BD_Luft_auto state_format _m _dv


Testen kann ich erst morgen, da muss ich dann die Feuchtigkeitsgrenzwerte anpassen, damit ich nicht vorher noch eine Sauna aus dem Bad machen muss.

Uwe.

fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Damian

#7
Zitat von: locodriver am 09 Dezember 2013, 18:57:58
Hallo Damian,

mit deiner Hilfe geht es voran  :D.

Ich glaube, die Structure muss einen anderen Namen haben (doppelt sich mit THRESHOLD). Was "macht" das "Luft_auto" in der struct-def., ich habe da keine richtige Erklärung gefunden?

Man muss der structure einen Typ vergeben. Über diesen Typ kannst du dann die Zustände umdefinieren, wie jetzt bei deiner Luefterautomatik:

attr Luefterautomatik Luft_auto_map on:closed off:open

Das habe ich aber alles nur aus der Commandref von structure.  ;)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

locodriver

#8
Zitat von: Damian am 09 Dezember 2013, 19:15:21

Das habe ich aber alles nur aus der Commandref von structure.  ;)


Das hat sich mir so nicht erschlossen.

Heute früh ging um acht der Lüfter los, also aufgestanden und Fenster und Dummy gechecked - leider ging der Lüfter nicht aus. Offenbar ist entweder in der Structure oder in der Einbindung in Threshold noch ein Fehler?

Das

attr Luefterautomatik Luft_auto_map on:closed off:open

habe ich mit drin. Muss mal die Stati und logs kontrollieren...

Uwe

Ergänzung: Ich habe mal die Stucture mit allen vier möglichen Kombinationen von Dummy und Fenster durchprobiert, der Status bleibt immer "closed"?
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Damian

Zitat von: locodriver am 10 Dezember 2013, 13:26:18
Das hat sich mir so nicht erschlossen.

Heute früh ging um acht der Lüfter los, also aufgestanden und Fenster und Dummy gechecked - leider ging der Lüfter nicht aus. Offenbar ist entweder in der Structure oder in der Einbindung in Threshold noch ein Fehler?

Das

attr Luefterautomatik Luft_auto_map on:closed off:open

habe ich mit drin. Muss mal die Stati und logs kontrollieren...

Uwe

Ergänzung: Ich habe mal die Stucture mit allen vier möglichen Kombinationen von Dummy und Fenster durchprobiert, der Status bleibt immer "closed"?

Es kann sein, weil du schon mal ein Mapping durchgeführt hast, dass  du wegen:

attr Luefterautomatik eventMap on:Ein off:Aus


statt auf on auf Ein und bzw. Aus mappen musst.

Also:

attr Luefterautomatik Luft_auto_map Ein:closed Aus:open

Ziel der Übung muss sein, dass structure auf closed geht wenn alle closed sind und auf open wenn einer der beiden open ist.

Gruß

Damian


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

locodriver

Ich glaub' jetzt habe ich es:
Ich habe mal in der Structure die Stati der Sensoren einzeln ausgewertet und angepasst. Danach dann beide wieder zusammengefasst und dann den "clientstate_behavior" auf absolut gesetzt. Jetzt kommt in der Auswertung entweder "unknown" oder "closed". "Unknown" ist unkritisch, da ja nur auf "closed" geprüft wird.

Hier nochmal der komplette Code:

define BD_Luft_auto_struc structure Luft_auto BD_Fenster Luefterautomatik
attr BD_Luft_auto_struc clientstate_behavior absolute
attr BD_Luft_auto_struc clientstate_priority closed open
attr BD_Luft_auto_struc room 004Bad


define BD_Luft_auto THRESHOLD BD_Regler:humidity:4 AND BD_Luft_auto_struc:state:closed BD_Luefter_Sw_01|set @ on|set @ off|1
attr BD_Luft_auto icon icoLuefter
attr BD_Luft_auto room 004Bad
attr BD_Luft_auto state_format _m _dv


define HC_Luft Heating_Control BD_Luft_auto 08:00|71 20:00|105 set @ desired %
attr HC_Luft room 004Bad

define Luefterautomatik dummy
attr Luefterautomatik Luft_auto BD_Luft_auto_struc
attr Luefterautomatik Luft_auto_map on:closed off:open
attr Luefterautomatik alias Ventilatorauto
attr Luefterautomatik devStateIcon Ein:switch.on Aus:switch.off
attr Luefterautomatik eventMap on:Ein off:Aus
attr Luefterautomatik room 004Bad,010Wohnung
attr Luefterautomatik webCmd Aus:Ein


Damian, danke für die Tipps.

Uwe

fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster