Boost Taste nutzen beim HM Wandthermostat HM-TC-IT-WM-W-EU

Begonnen von Sonic, 04 März 2019, 19:13:50

Vorheriges Thema - Nächstes Thema

Sonic

Liebe Forumgemeinde,
nach Stundenlangem suchen und probieren komme ich zu der bitteren Erkenntnis, das meine Kenntnisse einfach nicht ausreichen.
Ich habe folgendes Problem:

Ich möchte gerne den Taster Boost auf dem HM-TC-IT-WM-W-EU dazu nutzen, meinen HM Actor für 200 sec. einzuschalten. Ich habe festgestellt,
wenn ich den Taster Drücke bekomme ich im Event Monitor den Eintrag: CUL_HM Bad_Actor_Hzg timedOn:off

Somit habe ich folgenden Eintrag generiert:

## Heizung mit Boost Taster Manuel für 200 Sec einschalten
define Heizung_Boost notify Bad_Thermostat:Bad_Actor_Hzg.*timedOn:off { \
   my $hm = sprintf("%02d:%02d:%02d", $hour, $min, $sec);; \
   my $Bedingung1 = Value("Unterkuehlungsschutz_Bad") eq "on";;\
    if( $hm gt "00:01:00" || $hm lt "21:00:00" ) \
   { \
    if ( $Bedingung1 ) { fhem ("set Bad_Actor_Hzg on 200") } \
    } \
}

Leider funktioniert das nicht.
Ich muss dazu erklären, Bad_Thermostat habe ich umbenannt aus urspr. dem Kanal Climate
Hierzu generell die Frage, kann ich ein notify auf einen Eintrag im Logfile setzen ?
Oder muss es zwingend ein Event sein ?

Beides habe ich versucht und funktioniert nicht.
Wenn ich trigger Heizung_Boost zum Test eingebe kommt die Meldung:
please define Heizung_Boost first.

Ich bitte schon jetzt um Nachsicht. Zerfleischt mich bitte nicht 8)
Wie gesagt, ich habe wirklich versucht mir selbst zu helfen.
Ich würde mich über Hilfe sehr freuen.

danke im voraus
Gruss aus dem Allgäu
KLAUS

betateilchen

zuviele Fehler auf einmal...

1. trigger verwendet man nicht mit dem Namen des notify, sondern mit dem Namen des devices, das normalerweise den event erzeugen würde.

2. ein notify triggert immer auf einen event. Um das Anlegen des notify zu erleichtern, gibt es im Event-Monitor extra einen Button, der die Arbeit für Dich erledigt

Bei mir liefert ein TC übrigens keinen timedOn Event beim drücken auf den Boost-Button. Aber der Climate Channel liefert etwas, auf das man reagieren könnte:

define n_TC_Climate notify TC_Climate:controlMode:.boost {}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sonic

Hallo Betateilchen,

vielen Dank für den Tipp.
Ich werde es gleich testen und dann berichten.

Sonic

#3
Hallo Betateilchen:

Mein Code sieht nun so aus:

define n_TC_Climate notify Bad_Thermostat:controlMode:.boost {} \
my $hm = sprintf("%02d:%02d:%02d", $hour, $min, $sec);; \
   my $Bedingung1 = Value("Unterkuehlungsschutz_Bad") eq "on";;\
    if( $hm gt "04:00:00" || $hm lt "22:00:00" ) \
   { \
    if ( $Bedingung1 ) { fhem ("set Bad_Actor_Hzg on-for-timer 200") } \
    } \
}

--------------------------------------------------
1. da ich den TC_Climate umbenannt habe auf Bad_Thermostat müsste es so stimmen ? Richtig ?
2. wie muss dann der Trigger Befehl zum test lauten ? trigger Bad_Thermostat:boost ? Richtig ?

nochmal vielen Dank im voraus

Sonic

Mein Dank an Betateilchen,

nun funktioniert es so wie es soll.

Vielleicht kann es jemand brauchen.
Ich kann mit der Boost Taste des Homematic Wandthermostat, Zeitgesteuert einen Heizer schalten.

define HZ_Bad_frueh notify Bad_Thermostat:measured-temp.* {\
  my $hm = sprintf("%02d:%02d:%02d", $hour, $min, $sec);; \
  my $Bedingung1 = ReadingsVal("Bad_Thermostat","measured-temp",20) < 17.5;;\
  my $Bedingung2 = Value("Bad_Actor_Hzg") eq "off";;\
  my $Bedingung3 = Value("TagNacht") eq "Tag";;\
  my $Bedingung4 = ($wday == 1 || $wday == 2 || $wday == 3 || $wday == 4 || $wday == 5 );;\
  my $Bedingung5 = Value("Unterkuehlungsschutz_Bad") eq "on";;\
   if( $hm gt "04:00:00" && $hm lt "08:40:00" ) \
  { \
    if ( $Bedingung1 && $Bedingung2 && $Bedingung3 && $Bedingung4 && $Bedingung5 ) { fhem ("set Bad_Actor_Hzg on-for-timer 8192") } \
  } \
}
setuuid HZ_Bad_frueh 5c7bbed3-f33f-e773-9859-4e7aa57d31f1f913