HomeMatic Heizungssteuerung bei Anwesenheit

Begonnen von Timothy, 19 Dezember 2013, 10:31:53

Vorheriges Thema - Nächstes Thema

Timothy

Ein freundliches Hallo in die Runde!

Ich bin ein Anfänger auf dem FHEM gebiet, habe aber schon viele Beiträge durchgelesen und auch immer fleißig die Suchfunktion genutzt. Doch leider stehe ich grad vor einem problem und komme leider alleine nicht weiter:

In meiner Umgebung habe ich mehrere HomeMatic Heizkörperregler, ein HM-LAN, FHEM auf einem Raspberry PI und eine Fritzbox 7390 laufen. Die Fritzbox gibt nur einen Presence status, alles andere ist auf dem Raspberry programmiert. Nun zu meinem Problem:
Ich möchte gerne die Heizung bei Abwesenheit meiner Tochter ausschalten. Wenn ich folgenden Code verwende funktioniert es zwar, jedoch bekommt der Regler jedes mal bei der Presence abfrage den Befehl zu schalten, was einen manuellen Temperaturwechsel nicht möglich macht:


define Mona_absent notify .*Presence_Mona.*:absent set CUL_HM_HM_CC_RT_DN_222FC6_Clima controlManu off
define Mona_present notify .*Presence_Mona.*:present set CUL_HM_HM_CC_RT_DN_222FC6_Clima controlMode auto


Daraufhin wollte ich eine Abfrage starten, welche den aktuellen status abfragt und dann erst schaltet, sofern der Regler falsch steht:


define Mona_absent notify .*Presence_Mona.*:absent {\
  if (ReadingsVal("CUL_HM_HM_CC_RT_DN_222FC6_Clima","state","mode: auto") eq "mode: auto") {\
  fhem("set CUL_HM_HM_CC_RT_DN_222FC6_Clima controlManu off");;\
  }\
}

define Mona_present notify .*Presence_Mona.*:present {\
  if (ReadingsVal("CUL_HM_HM_CC_RT_DN_222FC6_Clima","state","mode: manu") eq "mode: manu") {\
  fhem("set CUL_HM_HM_CC_RT_DN_222FC6_Clima controlMode auto");;\
  }\
}


Den Code habe ich aus einer anderen Webseite, der damit irgend einen Wasserstand abgefragt hatte. nach meinem Verständnis sollte das auch so funktionieren, da ich an einer anderen stelle das Licht (Lichterkette in ein paar Weidenzweigen) auf unserer Treppe schalte:


#Treppe bei Anwesenheit Aus- und Anschalten
define Bewohner_absent notify .*Presence_Bewohner.*:absent {\
  if (ReadingsVal("Treppe","state","on") eq "on") {\
  fhem("set Treppe off");;\
  }\
}

define Bewohner_present notify .*Presence_Bewohner.*:present  {\
  if (ReadingsVal("Treppe","state","off") eq "off") {\
  fhem("set Treppe on");;\
  }\
}


Das funktioniert mit der "Treppe", leider aber nicht mit den Heizkörpern.


Hat einer von euch eine Idee was ich falsch gemacht habe und mag mir vielleicht helfen?

Vielen Dank bereits im Voraus

Puschel74

Hallo,

bitte in Zukunft die Code-Tags verwenden (Beitrag editieren).
Die Helfer sollen ja auch erkennen wo der Text aufhört und der Code anfängt und sich nicht das auch noch zusammen suchen müssen.

ZitatDen Code habe ich aus einer anderen Webseite, der damit irgend einen Wasserstand abgefragt hatte.
irgend einen ist schonmal gut.

Zitatnach meinem Verständnis sollte das auch so funktionieren,
Wenn das so funktionieren würde hättest du ja nicht gepostet - oder?

Schau mal ins FHEM-LogFile und mach den Event monitor auf und schau mal was do durch die Luft schwirrt.
Gib auch deinen Heizkörpern Namen - CUL_HM_HM_CC_RT_DN_222FC6_Clima werde ich sicher nicht prüfen ob das überall richtig geschrieben ist.
Zitat"Treppe"
hier gehts ja auch.
Mit Namen macht ihr Euch und uns das Leben leichter - das ist keine Gängelung oder "Belehrung".

Grüsse

P.S.: Den Event monitor nur öffnen und dann warten - nicht zigmal klicken. Die Daten kommen schon.
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.

Timothy

Danke für den Tipp und die Antwort!

Hier der Auszug aus dem Event Monitor:

2013-12-19 13:42:38 CUL_HM Heizung_Mona battery: ok
2013-12-19 13:42:38 CUL_HM Heizung_Mona batteryLevel: 3 V
2013-12-19 13:42:38 CUL_HM Heizung_Mona measured-temp: 20.1
2013-12-19 13:42:38 CUL_HM Heizung_Mona desired-temp: 19
2013-12-19 13:42:38 CUL_HM Heizung_Mona actuator: 18 %
2013-12-19 13:42:38 CUL_HM Heizung_Mona_Clima motorErr: communicationERR
2013-12-19 13:42:38 CUL_HM Heizung_Mona_Clima measured-temp: 20.1
2013-12-19 13:42:38 CUL_HM Heizung_Mona_Clima desired-temp: 19
2013-12-19 13:42:38 CUL_HM Heizung_Mona_Clima ValvePosition: 18 %
2013-12-19 13:42:38 CUL_HM Heizung_Mona_Clima mode: auto
2013-12-19 13:42:38 CUL_HM Heizung_Mona_Clima T: 20.1 desired: 19 valve: 18 %


Ich habe jetzt "CUL_HM_HM_CC_RT_DN_222FC6" durch "Heizung_Mona" ersetzt.

Einen Steuerbefehl (set) habe ich nicht im Event Monitor gefunden...

De_Bö

Versuch mal statt:

if (ReadingsVal("Heizung_Mona_Clima","state","mode: manu") eq "mode: manu")
if (ReadingsVal("Heizung_Mona_Clima","state","mode: manu") eq "mode: manu")

das hier:

if (ReadingsVal("Heizung_Mona_Clima","mode","manu") eq "manu")