Hauptmenü

Probleme mit notifi

Begonnen von Markus, 16 Januar 2013, 16:31:04

Vorheriges Thema - Nächstes Thema

Markus

Hallo
Ich ärgere mich schon seit Tagen mit dieser blöden Abfrage herum und Finde den Fehler nicht!
es zünden immer alle notifys und die Heizung reagiert trotzdem nicht!
Was mache ich Falsch?

Hier meine .cfg


define Heizung FS20 0714 32
attr Heizung dummy 1
define Heizung_Ein at *07:00:00 set Heizung on
define Heizung_Aus at *20:00:00 set Heizung off
define FileLog_Heizung FileLog ./log/Heizung-%Y.log Heizung
attr FileLog_Heizung logtype text
attr FileLog_Heizung room Logs

define Heizen FS20 0714 31
attr Heizen dummy 1
#attr Heizen setList Aus Kuhl Normal Warm Heis
attr Heizen eventMap off:Aus dim18%:Kuhl dim50%:Normal dim75%:Warm on:Heis
attr Heizen webCmd Aus:Kuhl:Normal:Warm:Heis

define Thermostat_Wohnzimmer_Soll dummy
define ThermostatBad_Soll dummy
define ThermostatSchlaf_Soll dummy
define Thermostat_Vorraum_Soll dummy



# Aus
define Heizen_Aus notify Heizen:off \
set Thermostat_Wohnzimmer desired-temp 6.0;;set Thermostat_Wohnzimmer_Soll 6.0;;\
set ThermostatBad desired-temp 6.0;;set ThermostatBad_Soll 6.0;;\
set ThermostatSchlaf desired-temp 6.0;;set ThermostatSchlaf_Soll 6.0;;\
set Thermostat_Vorraum desired-temp 6.0;;set Thermostat_Vorraum_Soll 6.0

# Nachtabsenkung
define Heizen_Nacht notify Heizung:off \
set Thermostat_Wohnzimmer desired-temp 17.0;;set Thermostat_Wohnzimmer_Soll 17.0;;\
set ThermostatBad desired-temp 17.0;;set ThermostatBad_Soll 17.0;;\
set ThermostatSchlaf desired-temp 17.0;;set ThermostatSchlaf_Soll 17.0;;\
set Thermostat_Vorraum desired-temp 17.0;;set Thermostat_Vorraum_Soll 17.0

# Kuhl
define Heizen_Kuhl notify Heizen.* {if (Value("Heizen") eq "dim18%" \
&& Value("Heizung") eq "on") \
{fhem "set Thermostat_Wohnzimmer desired-temp 17.5"} \
{fhem "set Thermostat_Wohnzimmer_Soll 17.5"} \
{fhem "set ThermostatBad desired-temp 17.0"} \
{fhem "set ThermostatBad_Soll 17.0"} \
{fhem "set ThermostatSchlaf desired-temp 18.0"} \
{fhem "set ThermostatSchlaf_Soll 18.0"} \
{fhem "set Thermostat_Vorraum desired-temp 17.0"} \
{fhem "set Thermostat_Vorraum_Soll 17.0"} \
}

# Normal
define Heizen_Normal notify Heizen.* {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \
{fhem "set Thermostat_Wohnzimmer desired-temp 22.0"} \
{fhem "set Thermostat_Wohnzimmer_Soll 22.0"} \
{fhem "set ThermostatBad desired-temp 19.0"} \
{fhem "set ThermostatBad_Soll 19.0"} \
{fhem "set ThermostatSchlaf desired-temp 19.0"} \
{fhem "set ThermostatSchlaf_Soll 19.0"} \
{fhem "set Thermostat_Vorraum desired-temp 20.0"} \
{fhem "set Thermostat_Vorraum_Soll 20.0"} \
}

# Warm
define Heizen_Warm notify Heizen.* {if (Value("Heizen") eq "dim75%" \
&& Value("Heizung") eq "on") \
{fhem "set Thermostat_Wohnzimmer desired-temp 23.0"} \
{fhem "set Thermostat_Wohnzimmer_Soll 23.0"} \
{fhem "set ThermostatBad desired-temp 23.0"} \
{fhem "set ThermostatBad_Soll 23.0"} \
{fhem "set ThermostatSchlaf desired-temp 20.0"} \
{fhem "set ThermostatSchlaf_Soll 20.0"} \
{fhem "set Thermostat_Vorraum desired-temp 21.0"} \
{fhem "set Thermostat_Vorraum_Soll 21.0"} \
}

# Heis
define Heizen_Heis notify Heizen.* {if (Value("Heizen") eq "on" \
&& Value("Heizung") eq "on") \
{fhem "set Thermostat_Wohnzimmer desired-temp 25.0"} \
{fhem "set Thermostat_Wohnzimmer_Soll 25.0"} \
{fhem "set ThermostatBad desired-temp 25.0"} \
{fhem "set ThermostatBad_Soll 25.0"} \
{fhem "set ThermostatSchlaf desired-temp 23.0"} \
{fhem "set ThermostatSchlaf_Soll 23.0"} \
{fhem "set Thermostat_Vorraum desired-temp 22.0"} \
{fhem "set Thermostat_Vorraum_Soll 22.0"} \
}

define w_Thermostat_Wohnzimmer watchdog Thermostat_Wohnzimmer:\
set_desired-temp.* 00:02:20 Thermostat_Wohnzimmer_Climate:CommandAccepted:.yes { \
      Log 1, ">>>>>>>>> w_Thermostat_Wohnzimmer desired temp - missing response.";;\
      fhem("set Thermostat_Wohnzimmer desired-temp ".Value("Thermostat_Wohnzimmer_Soll"));;\
}
define n_Thermostat_Wohnzimmer_err notify Thermostat_Wohnzimmer:(MISSING.ACK.*|.*NACK.*) {\
      Log 1, ">>>>>>>>> n_Thermostat_Wohnzimmer desired temp - missing ack/nack.\n";;\
      fhem ("set Thermostat_Wohnzimmer desired-temp ".Value("Thermostat_Wohnzimmer_Soll"));;\
}

define w_ThermostatBad watchdog ThermostatBad:set_desired-temp.* 00:02:30 ThermostatBad_Climate:CommandAccepted:.yes { \
      Log 1, ">>>>>>>>> w_ThermostatBad desired temp - missing response.";;\
      fhem("set ThermostatBad desired-temp ".Value("ThermostatBad_Soll"));;\
}
define n_ThermostatBad_err notify ThermostatBad:(MISSING.ACK.*|.*NACK.*) {\
      Log 1, ">>>>>>>>> n_ThermostatBad desired temp - missing ack/nack.\n";;\
      fhem ("set ThermostatBad desired-temp ".Value("ThermostatBad_Soll"));;\
}

define w_ThermostatSchlaf watchdog ThermostatSchlaf:set_desired-temp.* 00:02:40 ThermostatSchlaf_Climate:CommandAccepted:.yes { \
      Log 1, ">>>>>>>>> w_ThermostatSchlaf desired temp - missing response.";;\
      fhem("set ThermostatSchlaf desired-temp ".Value("Thermostat_Schlaf_Soll"));;\
}
define n_ThermostatSchlaf_err notify ThermostatSchlaf:(MISSING.ACK.*|.*NACK.*) {\
      Log 1, ">>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.\n";;\
      fhem ("set ThermostatSchlaf desired-temp ".Value("ThermostatSchlaf_Soll"));;\
}

define w_Thermostat_Vorraum watchdog Thermostat_Vorraum:set_desired-temp.* 00:02:50 Thermostat_Vorraum_Climate:CommandAccepted:.yes { \
      Log 1, ">>>>>>>>> w_Thermostat_Vorraum desired temp - missing response.";;\
      fhem("set Thermostat_Vorraum desired-temp ".Value("Thermostat_Vorraum_Soll"));;\
}
define n_Thermostat_Vorraum_err notify Thermostat_Vorraum:(MISSING.ACK.*|.*NACK.*) {\
      Log 1, ">>>>>>>>> n_Thermostat_Vorraum desired temp - missing ack/nack.\n";;\
      fhem ("set Thermostat_Vorraum desired-temp ".Value("Thermostat_Vorraum_Soll"));;\
}


und die Meldung im Log


2013.01.16 16:00:22 2: FS20 set Heizen dim50%
2013.01.16 16:00:22 2: dummy set Thermostat_Wohnzimmer_Soll 25.0
2013.01.16 16:00:22 2: CUL_HM set ThermostatBad desired-temp 25.0 rxt:12
2013.01.16 16:00:22 2: dummy set ThermostatBad_Soll 25.0
2013.01.16 16:00:22 2: CUL_HM set ThermostatSchlaf desired-temp 23.0 rxt:12
2013.01.16 16:00:22 2: dummy set ThermostatSchlaf_Soll 23.0
2013.01.16 16:00:22 2: CUL_HM set Thermostat_Vorraum desired-temp 22.0 rxt:12
2013.01.16 16:00:22 2: dummy set Thermostat_Vorraum_Soll 22.0
2013.01.16 16:00:22 2: dummy set Thermostat_Wohnzimmer_Soll 17.5
2013.01.16 16:00:23 2: CUL_HM set ThermostatBad desired-temp 17.0 rxt:12
2013.01.16 16:00:23 2: dummy set ThermostatBad_Soll 17.0
2013.01.16 16:00:23 2: CUL_HM set ThermostatSchlaf desired-temp 18.0 rxt:12
2013.01.16 16:00:23 2: dummy set ThermostatSchlaf_Soll 18.0
2013.01.16 16:00:23 2: CUL_HM set Thermostat_Vorraum desired-temp 17.0 rxt:12
2013.01.16 16:00:23 2: dummy set Thermostat_Vorraum_Soll 17.0
2013.01.16 16:00:23 2: dummy set Thermostat_Wohnzimmer_Soll 22.0
2013.01.16 16:00:23 2: CUL_HM set ThermostatBad desired-temp 19.0 rxt:12
2013.01.16 16:00:23 2: dummy set ThermostatBad_Soll 19.0
2013.01.16 16:00:23 2: CUL_HM set ThermostatSchlaf desired-temp 19.0 rxt:12
2013.01.16 16:00:23 2: dummy set ThermostatSchlaf_Soll 19.0
2013.01.16 16:00:23 2: CUL_HM set Thermostat_Vorraum desired-temp 20.0 rxt:12
2013.01.16 16:00:23 2: dummy set Thermostat_Vorraum_Soll 20.0
2013.01.16 16:00:23 2: dummy set Thermostat_Wohnzimmer_Soll 23.0
2013.01.16 16:00:24 2: CUL_HM set ThermostatBad desired-temp 23.0 rxt:12
2013.01.16 16:00:24 2: dummy set ThermostatBad_Soll 23.0
2013.01.16 16:00:24 2: CUL_HM set ThermostatSchlaf desired-temp 20.0 rxt:12
2013.01.16 16:00:24 2: dummy set ThermostatSchlaf_Soll 20.0
2013.01.16 16:00:24 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12
2013.01.16 16:00:24 2: dummy set Thermostat_Vorraum_Soll 21.0
date: invalid date '+%d.%m.%y 0:00'
Use of uninitialized value $TelNewMessages in concatenation (.) or string at ./FHEM/99_ShowFritzBoxUtils.pm line 89.
Use of uninitialized value $FritzLANActiveDevices in concatenation (.) or string at ./FHEM/99_ShowFritzBoxUtils.pm line 103.
2013.01.16 16:01:04 1: >>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.

2013.01.16 16:01:04 2: CUL_HM set ThermostatSchlaf desired-temp 20.0 rxt:12

2013.01.16 16:02:55 1: >>>>>>>>> n_Thermostat_Vorraum desired temp - missing ack/nack.

2013.01.16 16:02:55 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12
2013.01.16 16:03:10 2: dummy set Markus_Handy Anwesend
2013.01.16 16:03:10 2: dummy set Markus on
2013.01.16 16:03:11 2: dummy set Kleiner_Touch_PC Anwesend
2013.01.16 16:03:11 2: dummy set Nas Anwesend
2013.01.16 16:03:16 1: >>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.

2013.01.16 16:03:16 2: CUL_HM set ThermostatSchlaf desired-temp 20.0 rxt:12

2013.01.16 16:05:36 1: >>>>>>>>> n_Thermostat_Vorraum desired temp - missing ack/nack.

2013.01.16 16:05:36 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12
2013.01.16 16:05:56 3: Watchdog w_ThermostatSchlaf triggered
2013.01.16 16:05:56 1: >>>>>>>>> w_ThermostatSchlaf desired temp - missing response.
2013.01.16 16:05:56 3: set ThermostatSchlaf desired-temp  : desired-temp requires parameter: temp

2013.01.16 16:06:16 1: >>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.

2013.01.16 16:06:16 2: CUL_HM set ThermostatSchlaf desired-temp 20.0 rxt:12

2013.01.16 16:08:02 1: >>>>>>>>> n_Thermostat_Vorraum desired temp - missing ack/nack.


2013.01.16 16:09:01 1: >>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.

2013.01.16 16:09:01 2: CUL_HM set ThermostatSchlaf desired-temp 20.0 rxt:12

2013.01.16 16:10:13 1: >>>>>>>>> n_Thermostat_Vorraum desired temp - missing ack/nack.

2013.01.16 16:10:13 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12

2013.01.16 16:11:33 1: >>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.

2013.01.16 16:11:33 2: CUL_HM set ThermostatSchlaf desired-temp 20.0 rxt:12

2013.01.16 16:13:03 3: Watchdog w_Thermostat_Vorraum triggered
2013.01.16 16:13:03 1: >>>>>>>>> w_Thermostat_Vorraum desired temp - missing response.
2013.01.16 16:13:03 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12

2013.01.16 16:13:15 1: >>>>>>>>> n_Thermostat_Vorraum desired temp - missing ack/nack.

2013.01.16 16:13:15 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12
2013.01.16 16:13:50 1: >>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.

2013.01.16 16:13:50 2: CUL_HM set ThermostatSchlaf desired-temp 20.0 rxt:12

2013.01.16 16:15:52 1: >>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.

2013.01.16 16:15:52 2: CUL_HM set ThermostatSchlaf desired-temp 20.0 rxt:12
2013.01.16 16:16:01 1: >>>>>>>>> n_Thermostat_Vorraum desired temp - missing ack/nack.

2013.01.16 16:16:01 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12

2013.01.16 16:18:34 1: >>>>>>>>> n_Thermostat_Vorraum desired temp - missing ack/nack.

2013.01.16 16:18:34 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Zrrronggg!

Du bis ja ein kleines bisschen unspezifisch, was dein Problem ist und überlässt uns durch lesen deiner Logfiles rauszufinden, was du überhaupt meinen könntest.

Das macht keiner gerne.


Auf den ersten blick sehe ich aber zumndest dieses Probem:

2013.01.16 16:10:13 2: CUL_HM set Thermostat_Vorraum desired-temp 21.0 rxt:12
2013.01.16 16:11:33 1: >>>>>>>>> n_ThermostatSchlaf desired temp - missing ack/nack.


Das ist ein Problem auf der Funkschicht, nicht in FHEM.
Konkret sind die HM-Termostate vielleicht nicht richtig gepaired oder ausserhalb der Funkreichweite.




FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Markus

@ Zrrronggg!
sorry so war das nicht gemeint! Dachte nur es wäre einfacher den Fehler zu identifizieren.

Also es geht mir um das Notify!
Konkret habe ich mir 5 Taster gebastelt: Heizen / Aus:Kuhl:Normal:Warm:Heis

Die Abfrage erfolgt mittels Notify.
Wenn ich aber jetzt einen Taster drücke werden immer alle zugehörigen Notifis ausgelöst und somit das falsche eingestellt

zb: Ich drücke auf Normal dann sollte das entsprechende Notify zünden aber nicht alle.

Auszug aus der .cfg

attr Heizen eventMap off:Aus dim18%:Kuhl dim50%:Normal dim75%:Warm on:Heis
attr Heizen webCmd Aus:Kuhl:Normal:Warm:Heis

# Normal
define Heizen_Normal notify Heizen.* {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \
{fhem "set Thermostat_Wohnzimmer desired-temp 22.0"} \
{fhem "set Thermostat_Wohnzimmer_Soll 22.0"} \
{fhem "set ThermostatBad desired-temp 19.0"} \
{fhem "set ThermostatBad_Soll 19.0"} \
{fhem "set ThermostatSchlaf desired-temp 19.0"} \
{fhem "set ThermostatSchlaf_Soll 19.0"} \
{fhem "set Thermostat_Vorraum desired-temp 20.0"} \
{fhem "set Thermostat_Vorraum_Soll 20.0"} \
}
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Puschel74

Nimmt Heizen den Wert dim50% an oder Normal oder Dim50% oder dim 50% oder Dim 50 %?
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

ERSTMAL machen wir was anderes:

define Heizen_Normal notify Heizen.* {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \

macht höchstwahrscheinlich *nicht* was du meinst das es macht.

Heizen.* löst nämlich bei allen Events aus die mit "Heizen" anfangen, und nicht etwa (wie du vermutlich willst) mit allen Werten, die "Heizen" annehmen kann.

notify Heizen.*

wird ausgelöst durch alle Werteänderungen in "Heizen" aber AUCH durch alle Werteänderungenen in "Heizen2" oder "Heizen_unten" oder "Heizen_heis"...

D.H.
define Heizen_Normal notify Heizen.* {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \

Triggert sich sogar selbst (!)

denn Heizen.* wird auch durch Heizen_Normal ausgelöst.


Was du meinst ist:

define Heizen_Normal notify Heizen:.* {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \

Das ist aber nicht nötig, da reicht

define Heizen_Normal notify Heizen {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \

da das schon bei jeder Änderung auslöst.


Dieses kleine Problem sollte zu allerlei lustigen Auslösungskaskaden führen.

Zwar sollte
{if (Value("Heizen") eq "dim50%" && Value("Heizung") eq "on")
dann trotzdem noch verhindern, dass die Tempänderungen ausgeführt werden, aber mit dem Konstrukt wie du es jetzt hast
müssten wir die gegenseitigen Trigger komplett betrachten um zu verstehen was (der Geier) da alles passieren kann.

Die Mühe machen wir uns erstmal nicht.


Also
define Heizen_Normal notify Heizen.* {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \

durch

define Heizen_Normal notify Heizen {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \


Ersetzen (und den anderen auch sinngemäss) und dann sehen wir mal weiter.






FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Puschel74

No comment.
Right - geht schneller ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

Ich hätte das auch übersehen, wenn ich nicht das Konstrukt

define act_on_Bewegung notify Bewegung.*:bewegung { if ("lalala

 in meiner Alarmanlage verwendet hätte, das eben bei Bewegung_WZ und Bewegung_Bad etc auslöst.

Nur EINEN Punkt vergessen und Vollchaos. :-)
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Markus

OK Danke erst mal!

Leider bin ich noch nicht weiter gekommen.

Also Heizen nimt den wert dim50% an.

2013.01.16 20:40:11 2: FS20 set Heizen dim50%

Diese zwei Möglichkeiten funktionieren beide nicht :-)

define Heizen_Normal notify Heizen:.* {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \

define Heizen_Normal notify Heizen {if (Value("Heizen") eq "dim50%" \
&& Value("Heizung") eq "on") \

es lösen immer alle Notifis aus.
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Dietmar63

Ich habe keine Lösung für Dein Problem mit dem notifi.

ich wollte aber so wie Du verschiedene Temperaturen automatisch einstellen können.
Deshalb habe ich ein neues Modul Heating_Control erstellt mit dem das alles ganz einfach ist.
Wir sind noch nicht ganz fertig, Tobias hat mir geholfen - aber es wird ganz einfach funktionieren, trotzdem sehr flexibel sein:

Link

Dietmar
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Zrrronggg!

Du hast alle anderen notifys auch angepasst, also nicht nur

define Heizen_Normal

richtig?


Diese Konstrukte hier

define w_Thermostat_Wohnzimmer watchdog Thermostat_Wohnzimmer:\
set_desired-temp.* 00:02:20 Thermostat_Wohnzimmer_Climate:CommandAccepted:.yes { \
Log 1, ">>>>>>>>> w_Thermostat_Wohnzimmer desired temp - missing response.";;\
fhem("set Thermostat_Wohnzimmer desired-temp ".Value("Thermostat_Wohnzimmer_Soll"));;\
}

verstehe ich übrigens nicht. Wozu sollen die beiden Semikolons am Ende dienen und was macht das überhaupt?
Wenn das ACK nicht kommt in 2 Minuten die SOLL Temp nachstellen?

Weiter:

define Heizen_Warm notify Heizen.* {if (Value("Heizen") eq "dim75%" \
&& Value("Heizung") eq "on") \
{fhem "set Thermostat_Wohnzimmer desired-temp 23.0"} \
{fhem "set Thermostat_Wohnzimmer_Soll 23.0"} \
{fhem "set ThermostatBad desired-temp 23.0"} \
{fhem "set ThermostatBad_Soll 23.0"} \
{fhem "set ThermostatSchlaf desired-temp 20.0"} \
{fhem "set ThermostatSchlaf_Soll 20.0"} \
{fhem "set Thermostat_Vorraum desired-temp 21.0"} \
{fhem "set Thermostat_Vorraum_Soll 21.0"} \
}


ist auch noch überkompliziert.

Mal angenommen, die Thermostaten wie oben genannt sind alle, die du hast, und wenn du die "Soll"-dummies umbenennst nach Schema
ThermostatSollBad  anstatt   ThermostatBad_Soll

dann würde auch

define Heizen_Warm notify Heizen {if (Value("Heizen") eq "dim75%" && Value("Heizung") eq "on")  {fhem "set Thermostat.* desired-temp 23.0 ;; set ThermostatSoll 23.0 "} }

reichen.

Mit anderen Worten: Deine Sachen kommen mir an vielen Fällen übermässig komplex und aufwändig vor.
Das soll keine Vorwurf sein, kann man machen wie mal will und das hat sicher auch irgendwo Vorteile oder Gründe die ich nicht kenne.  
Nur macht das die Sache etwas unübersichtlich.


Ich müsste durchaus etwas Zeit investieren, um rauszufinden, was der ganze Kram macht und welche Zustände der annimmt.
So richtig habe ich da keine Lust zu (sei nicht böse bitte).

Ich möchte dir Vorschlagen, den Kram erstmal zu vereinfachen.

Kommentiere doch ein z.b. mal alles ausser "Warm" und "Normal" aus. Kommentier auch die SOLL-Geschichten aus und die ganzen Watchdogs .


Vereinfache "warm" und "Normal" zu

define Heizen_Warm notify Heizen {if (Value("Heizen") eq "dim75%" && Value("Heizung") eq "on")  {fhem "set Thermostat.* desired-temp 23.0"} }
und
define Heizen_Normal notify Heizen {if (Value("Heizen") eq "dim50%" && Value("Heizung") eq "on")  {fhem "set Thermostat.* desired-temp 22.0"} }


und probiere dann, ob dim75% beide auslöst oder nicht.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Puschel74

Ich will mich ja nicht einmischen - was ich aber schon mache.

Ich würd nicht unbedingt reele FHT´s setzen damit sondern erstmal nen Dummy.
Wenn das regexp resp. der Vergleich wirklich beide auslöst und das einige Male so hin und her geht wird sich der CUx vermutlich schön bedanken und mit einem LOVF seinen Dienst erstmal
einstellen ;-)
Also nur so - kann jeder machen wie er will natürlich.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

define Heizen_Warm notify Heizen {if (Value("Heizen") eq "dim75%" && Value("Heizung") eq "on") {fhem ("set Thermostat.* desired-temp 23.0 ;; set ThermostatSoll.* 23.0 ") } }

natürlich.

Aber zum testen wie gesagt die SOLL-Geschichten ruhig erstmal weglassen, also:

define Heizen_Warm notify Heizen {if (Value("Heizen") eq "dim75%" && Value("Heizung") eq "on") {fhem ("set Thermostat.* desired-temp 23.0")} }
und
define Heizen_Normal notify Heizen {if (Value("Heizen") eq "dim50%" && Value("Heizung") eq "on") {fhem ("set Thermostat.* desired-temp 22.0")} }


Nochwas: Wenn du das nicht so wie ich vorschlug zusammenfassen willst oder kannst, z.B. weil es noch mehr Thermostaten gibt, dann verwende vielleicht anstatt

{fhem "set Thermostat_Wohnzimmer desired-temp 23.0"} \
{fhem "set Thermostat_Wohnzimmer_Soll 23.0"} \
{fhem "set ThermostatBad desired-temp 23.0"} \

kürzer

{fhem ("set Thermostat_Wohnzimmer desired-temp 23.0 ;; set Thermostat_Wohnzimmer_Soll 23.0 ;; set ThermostatBad desired-temp 23.0")}

Eigentlich müsste sogar gehen:

{fhem ("set Thermostat_Wohnzimmer desired-temp,Thermostat_Wohnzimmer_Soll,ThermostatBad desired-temp 23.0")}

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

Zitat von: Puschel74 schrieb am Mi, 16 Januar 2013 22:14Ich will mich ja nicht einmischen - was ich aber schon mache.

Ich würd nicht unbedingt reele FHT´s setzen damit sondern erstmal nen Dummy.
Wenn das regexp resp. der Vergleich wirklich beide auslöst und das einige Male so hin und her geht wird sich der CUx vermutlich schön bedanken und mit einem LOVF seinen Dienst erstmal
einstellen ;-)
Also nur so - kann jeder machen wie er will natürlich.

Grüße


Reale FHTs (flöt) hat er glaube ich nicht:

 CUL_HM set ThermostatBad desired-temp 25.0 rxt:12

Bei HM hat er zum Glück wesentlich mehr Zeit bis LOVF.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Puschel74

Ah ok.
Wieder was gelernt dabei und auch was überlesen.
Aber besser ersteres ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Markus

Hallo und Danke für die vielen Antworten!!

Das Funktioniert sehr gut!

define Heizen_Kuhl notify Heizen {if (Value("Heizen") eq "Kuhl" && Value("Heizung") eq "on") \
{fhem ("set Thermostat_Wohnzimmer desired-temp 17.0 ;; set Thermostat_Wohnzimmer_Soll 17.0")} }

Wie man sieht reagiert notify auf "Kuhl" hab gestern im log geschaut da steht "dim18%"

das Funktioniert leider nicht:
{fhem ("set Thermostat_Wohnzimmer desired-temp,Thermostat_Wohnzimmer_Soll,ThermostatBad desired-temp 23.0")}


Warum Kürzer? Nur wegen der Übersichtlichkeit oder wird fhem auch schneller?

ZitatDeine Sachen kommen mir an vielen Fällen übermässig komplex und aufwändig vor.
Das soll keine Vorwurf sein, kann man machen wie mal will und das hat sicher auch irgendwo Vorteile oder Gründe die ich nicht kenne.
Nur macht das die Sache etwas unübersichtlich.
Leider kann ich es nicht anders bin halt auch erst Anfänger :-(
Das ganze dient eigentlich dazu das es warm wird wen jemand Zuhause ist und Nachts oder wen niemand Zuhause ist soll es kühl werden. Und damit der WAF etwas steigt gibt es im Floorplan noch die Funktion Warm und Sehr warm einzustellen.

Ich weiß das ich Probleme mit dem Funk habe die HomeMatic Thermostate akzeptieren sehr oft die die Kommandos nicht und dann bleibt es Kalt. Sehr schlechter WAF.
Aber ich dachte das ist Normal und deshalb sende ich das Kommando öfters.

Diesen Code habe ich im Wiki Gefunden und soll einfach die Temperatur nochmals senden falls nicht angekommen.
define w_Thermostat_Wohnzimmer watchdog Thermostat_Wohnzimmer:\
set_desired-temp.* 00:02:20 Thermostat_Wohnzimmer_Climate:CommandAccepted:.yes { \
Log 1, ">>>>>>>>> w_Thermostat_Wohnzimmer desired temp - missing response.";;\
fhem("set Thermostat_Wohnzimmer desired-temp ".Value("Thermostat_Wohnzimmer_Soll"));;\
}
define n_Thermostat_Wohnzimmer_err notify Thermostat_Wohnzimmer:(MISSING.ACK.*|.*NACK.*) {\
Log 1, ">>>>>>>>> n_Thermostat_Wohnzimmer desired temp - missing ack/nack.\n";;\
fhem ("set Thermostat_Wohnzimmer desired-temp ".Value("Thermostat_Wohnzimmer_Soll"));;\
}


Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Zrrronggg!

ZitatWarum Kürzer? Nur wegen der Übersichtlichkeit oder wird fhem auch schneller?

Vielleicht ein bisschen, aber eher nicht spürbar. Es geht nur um den Aufwand beim Schreiben und die Lesbarkeit.

Allerdings sind insbesondere manche komplizierter Konstruktionen auch schwer zu debuggen, weil man die kaum lesen kann.
Ich habe aber sicher auch bei mir Kram drin, bei dem eine  alter Hase sagen wüde: Wat soll dat denn, das kannst du auch so und so machen.

Ich verstehe also schon, dass man das macht, was man eben kennt. Leider gibt es im Wiki einige Codeschnipsel, die unkommentiert sind und zum Teil eher aufwändige Lösungen für ein Problem darbieten.
Oft sind die Lösungen perfekt, wärend einfache Lösungen als unelegant abglehnt werden, obwohl sie leichter verstehbar sind.


Beispiel:

Wenn ich meine, ich müsste an die Thermostate sicherehitshalber in 2 Minuten die Tempänderung nochmal, senden würde ich einfach schreiben:

define Heizen_Kuhl notify Heizen {if (Value("Heizen") eq "Kuhl" && Value("Heizung") eq "on") \
{fhem ("set Thermostat_Wohnzimmer desired-temp 17.0 ;; define Temp_Wohnzimmer_erneut at +00_02_00 set Thermostat_Wohnzimmer desired-temp 17.0")} }


Das ist natürlich hochgradig unlegant, z.b. weil das unkonditioniert ist, der zweite Behfehl also immer kommt, auch wenn der erst erfolgreich war UND weil auch nur ein weiters Mal versucht wird die Temperatur zu stellen. Das ist Trecker-Tech, stumpfes: "Ich sende das eben  in 2 Minuten nochmal, fertich."

ABER es ist einfach zu lesen und zu verstehen. Weil es unkonditioniert ist hat es keine Nebeneffekte und kann nicht z.B. durch ungenaue notify Formulierungen oder RegExps irgendwie wildlaufen.
Die Lösung die du aus dem Wiki gezogen hast verstehe ICH zumindest nicht im Detail vollständig. Und daher kann ICH auch nicht sagen, was das Teil unter Umständen alles macht oder nicht macht. Sie benötigt ausserdem  je Termostat eine zusätzliche Dummyvariabel (xy_SOLL), die ausserdem jedes mal befüllt werden muss.

D.H. diese Lösung ist sicher wesentlich akkuraterals meine, verdreifacht aber den Code und macht die Sache gerade für Anfänger im Grunde undebuggbar... wie du ja jetzt weisst.

Ich weiss aus eigner Erfahrung, dass Heizung und WAF ein Riesenthema ist. Meine Fau friert immer und meint, die eigentliche Lösung bestehe darin, das Haus durchgängig auf 25 Grad zu heizen.
Auch bei mir dreht es sich in punkto FHEM im Grunde nur da drum, möglichst unauffällig zu regeln, dass ich nicht an Heizkosten verarme oder vorher den Hitzetod sterbe. (Es gibt Tage, da laufe ich in der Unterhose durch die Wohnung, weil mir sonst zu warm ist.)

ZitatIch weiß das ich Probleme mit dem Funk habe die HomeMatic Thermostate akzeptieren sehr oft die die Kommandos nicht und dann bleibt es Kalt. Sehr schlechter WAF.
Aber ich dachte das ist Normal und deshalb sende ich das Kommando öfters.

Wie gesagt: Kann man machen, aber ich würde es erstmal wesentlich simpler wie oben vorgestellt machen.  
Wichtiger ist aber: Nein, das ist nicht normal. Gerade HM ist eigentlich recht zuverlässig, wenn da regelmässig Tempänderungen nicht durchgehen, hast du womöglich ein Problem auf der Funkeben,
wie ich schon mal ganz am Anfang dieses Thread erwähnte. Da solltest du zuerst dran arbeiten.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Markus

Super Danke!
Ich werde dann erstmals mit diesem Code weiterarbeiten denn verstehe ich wenigstens:
{fhem ("set Thermostat_Wohnzimmer desired-temp 17.0 ;; define Temp_Wohnzimmer_erneut at +00_02_00 set Thermostat_Wohnzimmer desired-temp 17.0")} }

ZitatIch weiss aus eigner Erfahrung, dass Heizung und WAF ein Riesenthema ist. Meine Fau friert immer und meint, die eigentliche Lösung bestehe darin, das Haus durchgängig auf 25 Grad zu heizen.
Auch bei mir dreht es sich in punkto FHEM im Grunde nur da drum, möglichst unauffällig zu regeln, dass ich nicht an Heizkosten verarme oder vorher den Hitzetod sterbe. (Es gibt Tage, da laufe ich in der Unterhose durch die Wohnung, weil mir sonst zu warm ist.)
Ha ja das kenne ich am liebsten waren ihr die alten Ventile die immer ganz auf wahren und ich in der Unterhose vorm Fernseher saß und trotzdem schwitzte.

Zitathast du womöglich ein Problem auf der Funkeben,
wie ich schon mal ganz am Anfang dieses Thread erwähnte. Da solltest du zuerst dran arbeiten.
Ja das gehe ich gleich mal an, allerdings habe ich irgendwann gelesen das die Thermostate immer Schlafen um Strom zu sparen und nur alle 4 Minuten Aufwachen...


Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Zrrronggg!

ZitatJa das gehe ich gleich mal an, allerdings habe ich irgendwann gelesen das die Thermostate immer Schlafen um Strom zu sparen und nur alle 4 Minuten Aufwachen...

Ja, das stimmt (obwohl ich dachte, dass es 2 Minuten sind). Das ist aber egal, denn deine Funkschnitstelle (CUL oder HMLAN Konfigurator) speichert den Kram solange zwischen. D.H. darum musst du dir keine Gedanken machen.
Du musst eben nur berücksichtigen, das eine Temperaturänderung eben nicht SOFORT übermittelt wird.

So gesehen ist


{fhem ("set Thermostat_Wohnzimmer desired-temp 17.0 ;; define Temp_Wohnzimmer_erneut at +00_02_00 set Thermostat_Wohnzimmer desired-temp 17.0")} }

vielleicht ein bischen kurz und sollten lieber 4 oder 5 Minuten sein.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Fennek

Hi Markus,

auch bei mir steht und fällt der WAF für fhem mit dem Heizungsthema. Seid dem Austausch der mechanischen
Thermostate konnte ich, unter heftigsten Widerstand, unsere Raumtemperaturen wenigstens auf 23°C senken und
damit dem Hitzekoma entfliehen.

So nun was zum Funkthema.

Sie Dir mal die Devicereadings von dem TC an, der vom CUNO am weitesten entfernt ist.
Dort findest Du den CUNO01_RSSI, der die empfangene Feldstärke vom CUNO wiederspiegelt.
Meine TC's laufen stabil bis -75, was in meiner Bausubstanz etwa 40m entspricht. Desweiteren ist auch die Entfernung
TC -> VD zu berücksichtigen. Noch ein nicht zu unterschätzendes Teil ist die Antenne und die Ausrichtung.
Ich bin kein RF-Experte habe aber feststellen müssen das sie mehr horizontal als vertikal abstrahlen, man müsste mal
die Datenblätter konsultieren.
Mein Aufbau sieht momentan so aus und läuft stabil:

1 x FB 7390 im Untergeschoss mit HMLAN und eine, über das neue WDS-Verfahren, verbundene im Obergeschoss mit CUNO.

Anfangs hatte ich so meine Probleme mit dem reconnecten von dem HMLAN-Adapter der mein LAN lam legte.
Dadurch sank der WAF gegen 0 weil auch mein IP-TV ausfiel, ihr könnt euch ja vorstellen was das bedeutet.:-)
 
Aber dank Martin und nachdem ich sämtliche Timerkritischen Prozesse (lanping, WOL ... )vebannt habe herrscht wieder Frieden.

vielleicht hilft Dir das etwas weiter.
FHEM Cubietruck mit 50GB SSD
HMLAN: TC,VD,DN,DIM,SW,SEC,TH
HUEBridge, HUEDevice:LCT,LLC
Sonos: 5xPL1,2xPB,2xSUB
iBeacon's

borsti67

Zitat von: Markus schrieb am Do, 17 Januar 2013 10:45das Funktioniert leider nicht:
{fhem ("set Thermostat_Wohnzimmer desired-temp,Thermostat_Wohnzimmer_Soll,ThermostatBad desired-temp 23.0")}

Kann ja auch nicht - nach SET kommt die Komma-getrennte Liste der Aktoren, dann der zu sendende Befehl.
Also muss " desired-temp" (einschließlich des Leerzeichens) da in der Mitte weg. Dann sollte auch das funktionieren.
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

Markus

DEanke für die vielen Antworten!
das mit dem CUNO01_RSSI war ein guter tipp, werd ich jetzt mal genauer beobachten, zur zeit liege ich zwischen -76 und 80 je eine 12er Wand und max 8m entvernung:-(

Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Zrrronggg!

Mehr oder weniger normal Werte, könnten eventuell ein bisschen besser sein.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL