FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: okay2000 am 26 Oktober 2014, 17:10:04

Titel: Zwei HM-HM-CC-RT-DN mit dummy steuern [gelöst]
Beitrag von: okay2000 am 26 Oktober 2014, 17:10:04
Hallo,

nach zwei Wochen rumprogrammieren in meinem FHEM-Projekt (mit einigen Teilerfolgen :)) versuche ich nun, über einen DUMMY zwei HM-Heizungsthermostate zu steuern. Leider verstehe ich nicht, wie ich die mit dem DUMMY "Heizung_Slider" die Temperatur an die beiden  Regler übergeben muss.

Mit "set CUL_HM_HM_CC_RT_DN_28B9D6_Clima desired-temp 22.0"  kann ich ja die Temperatur setzen. Ich habe schon mit NOTIFY herumgespielt - leider ohne Erfolg. Ich habe folgendes probiert:

define WZ_Temperatur notify room Heizung_Slider set CUL_HM_HM_CC_RT_DN_28B9D6_Clima desired-temp &EVENT;; set CUL_HM_HM_CC_RT_DN_28B9C6_Clima desired-temp &EVENT

Das hat aber so nicht funktioniert  ::)

Hier ein Auszug meiner Config:

define Heizung_Slider dummy
attr Heizung_Slider group Heizungsregler
attr Heizung_Slider room 03_Heizung
attr Heizung_Slider setList state:18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0
attr Heizung_Slider webCmd state

define HM_RT_WZ_rechts CUL_HM 28B9D6
attr HM_RT_WZ_rechts IODev HMLAN1
attr HM_RT_WZ_rechts actCycle 000:10
attr HM_RT_WZ_rechts actStatus alive
attr HM_RT_WZ_rechts autoReadReg 4_reqStatus
attr HM_RT_WZ_rechts expert 2_full
attr HM_RT_WZ_rechts firmware 1.3
attr HM_RT_WZ_rechts model HM-CC-RT-DN
attr HM_RT_WZ_rechts room 03_Heizung
attr HM_RT_WZ_rechts serialNr LEQ0401454
attr HM_RT_WZ_rechts subType thermostat
attr HM_RT_WZ_rechts webCmd getConfig:clear msgEvents:burstXmit

define CUL_HM_HM_CC_RT_DN_28B9D6_Clima CUL_HM 28B9D604
attr CUL_HM_HM_CC_RT_DN_28B9D6_Clima model HM-CC-RT-DN
attr CUL_HM_HM_CC_RT_DN_28B9D6_Clima peerIDs 00000000,

define HM_RT_WZ_links CUL_HM 28B9C6
attr HM_RT_WZ_links IODev HMLAN1
attr HM_RT_WZ_links actCycle 000:10
attr HM_RT_WZ_links actStatus alive
attr HM_RT_WZ_links autoReadReg 4_reqStatus
attr HM_RT_WZ_links expert 2_full
attr HM_RT_WZ_links firmware 1.3
attr HM_RT_WZ_links model HM-CC-RT-DN
attr HM_RT_WZ_links room 03_Heizung
attr HM_RT_WZ_links serialNr LEQ0401470
attr HM_RT_WZ_links subType thermostat
attr HM_RT_WZ_links webCmd getConfig:clear msgEvents:burstXmit

define CUL_HM_HM_CC_RT_DN_28B9C6_Clima CUL_HM 28B9C604
attr CUL_HM_HM_CC_RT_DN_28B9C6_Clima model HM-CC-RT-DN
attr CUL_HM_HM_CC_RT_DN_28B9C6_Clima peerIDs 00000000,


Ich würde mich freuen, wenn mir jemand auf die Sprünge helfen würde. Tagelanges googeln und lesen im Forum hat mir nicht weitergeholfen.
Wahrscheinlich sind es nur 1-2 richtige Zeilen ...

Gruß, Olaf



Das Problem ist gelöst:

define WZ_Temperatur notify Heizung_Slider set CUL_HM_HM_CC_RT_DN_28B9D6_Clima desired-temp &EVENT;; set CUL_HM_HM_CC_RT_DN_28B9C6_Clima desired-temp &EVENT

lautet der richtige Befehl. Das "room" musste weggelassen werden!
Titel: Antw:Zwei HM-HM-CC-RT-DN mit dummy steuern
Beitrag von: Puschel74 am 26 Oktober 2014, 17:17:17
Hallo,

&EVENT ist sowieso falsch - wenn dann $EVENT.
Edith: Das hätte dir aber ein Blick ins FHEM-Logfile verraten müssen  ;)

Es gibt aber bereits einige Beispiele mit notify und Lösungen die du nur abwandeln brauchst.
Auch hier im Anfängerbereich.

Grüße
Titel: Antw:Zwei HM-HM-CC-RT-DN mit dummy steuern
Beitrag von: okay2000 am 26 Oktober 2014, 17:42:50
Hallo,

ich hatte anfangs auch $EVENT in der Config drin. Hatte so viel ausprobiert, dass ich mich dann beim Schreben des Artikels verschrieben habe  ::)

Hab´s aber ´rausbekommen. Ich hatte  define WZ_Temperatur notify room Heizung_Slider ... geschrieben. Ich habe nun das room weggelassen und schon gehts  :) Ich weiss auch nicht mehr, wie ich auf dieses room gekommen bin ...

Danke trotzdem!
Titel: Antw:Zwei HM-HM-CC-RT-DN mit dummy steuern
Beitrag von: Puschel74 am 26 Oktober 2014, 17:46:15
Hallo,

Stimmt, hatte ich auch übersehen  ::)
Dann noch bitte die korrekte Lösung im ersten Beitrag hinterlassen und den Beitrag mit Gelöst markieren.
Danke.

Grüße
Titel: Antw:Zwei HM-HM-CC-RT-DN mit dummy steuern [gelöst]
Beitrag von: Motivierte linke Hände am 26 Januar 2015, 08:19:44
Ich versuche mal, diesen alten Fred wiederzubeleben, anstatt einen neuen zum selben Thema zu eröffnen.

Zunächst mal der Hinweis, falls noch jemand beim Suchen hierauf stoßen sollte: In der Lösung in Post #1 steht noch &EVENT, es muss aber wohl $EVENT heißen.

Auch das führt mich allerdings noch nicht zum Ziel.

Mein notify sieht so aus:

Hzg_WohnzimmerAlle {
  set Hzg_Wohnzimmer1_Clima desired-temp $EVENT;
  set Hzg_Wohnzimmer2_Clima desired-temp $EVENT;
  set Hzg_Wohnzimmer3_Clima desired-temp $EVENT;
}


Das führt allerdings zu folgender Fehlermeldung:

2015.01.26 08:10:20 3: Set_Temperatur_Wohnzimmer return value: Bareword "desired" not allowed while "strict subs" in use at (eval 87) line 2.
Bareword "desired" not allowed while "strict subs" in use at (eval 87) line 3.
Bareword "desired" not allowed while "strict subs" in use at (eval 87) line 4.


Edith sagt: So funktioniert es ohne Fehlermeldung:

Hzg_WohnzimmerAlle {
  { fhem ("set Hzg_Wohnzimmer1_Clima desired-temp $EVENT")};
  { fhem ("set Hzg_Wohnzimmer2_Clima desired-temp $EVENT")};
  { fhem ("set Hzg_Wohnzimmer3_Clima desired-temp $EVENT")};
}
Titel: Antw:Zwei HM-HM-CC-RT-DN mit dummy steuern [gelöst]
Beitrag von: nesges am 26 Januar 2015, 10:16:55
Zitat von: Motivierte linke Hände am 26 Januar 2015, 08:19:44Mein notify sieht so aus:

Im folgenden zeigst du ein Stück Pseudo-Perl-Code, von dem nicht klar ist, wo du ihn untergebracht hast. Zeig bitte die vollständige, konkrete Umsetzung. Das macht's wesentlich einfacher :-)

ZitatHzg_WohnzimmerAlle {
  set Hzg_Wohnzimmer1_Clima desired-temp $EVENT;
  set Hzg_Wohnzimmer2_Clima desired-temp $EVENT;
  set Hzg_Wohnzimmer3_Clima desired-temp $EVENT;
}

Der Code ist eine Mischung aus Perl und FHEM-Syntax. Egal wo's so notiert ist, kann das nicht funktionieren.

ZitatEdith sagt: So funktioniert es ohne Fehlermeldung:
Hzg_WohnzimmerAlle {
  { fhem ("set Hzg_Wohnzimmer1_Clima desired-temp $EVENT")};
  { fhem ("set Hzg_Wohnzimmer2_Clima desired-temp $EVENT")};
  { fhem ("set Hzg_Wohnzimmer3_Clima desired-temp $EVENT")};
}

Das ist jetzt reiner Perl-Code. Der Unterschied: Statt direkt "set ..." zu benutzen, benutzt du jetzt die Perl-Funktion fhem() um die Anweisungen unterzubringen. Du könntest dir die geschweiften Klammern um jede einzelne Zeile aber sparen und das ganze evtl. durch Verwendung einer allgemeineren devspec verkürzen. Siehe http://fhem.de/commandref_DE.html#devspec dazu. Wenn du's damit auf eine einzige Zeile reduziert hast, kannst du dir wahrscheinlich auch die ganze Funktion sparen und's direkt am notify in FHEM-Syntax notieren.

IOW: Du hast ein einfaches Problem sehr kompliziert umgesetzt. Evtl. solltest du nochmal einen Blick in den Einsteiger-Guide werfen (Seite 19 beschreibt dein Problem).
Titel: Antw:Zwei HM-HM-CC-RT-DN mit dummy steuern [gelöst]
Beitrag von: strauch am 26 Januar 2015, 11:19:05
Darf ich mal ganz doof Fragen warum du kein ClimaTeam gemachst hast, wenn die eh alle im Wohnzimmer sind?
Titel: Antw:Zwei HM-HM-CC-RT-DN mit dummy steuern [gelöst]
Beitrag von: Motivierte linke Hände am 26 Januar 2015, 18:50:03
@nesges: Danke. Ich werde nochmal nachlesen.

Was ich gerade nicht wollte, war die Darstellung in einer Zeile, weil es - für mich - unübersichtlich ist; zum einen am Tablet (ohne Cursor-Tasten...) Und zum anderen gerade wenn ich mir das das nächste mal in 5 Jahren anschaue, lehrt mich die Erfahrung, dass nur lesbarer Code dann noch verstanden wird. Außerdem gab auch die Schreibweise in einer Zeile bei mir eine Fehlermeldung, weswegen ich es überhaupt auseinanderzunehmen angefangen habe, um es besser zu verstehen.

Die Schreibweise oben ist die, die mir das Webinterfache von FHEM für einen notify angibt. C&P aus dem Webinterface, in der cfg soll man ja nicht direkt editieren.  :)

@strauch: ClimaTeam habe ich nicht gemacht, weil der Dummy genutzt werden soll, um über fhem (Floorplan) die Temperatur zu setzen. Und lt. http://www.fhemwiki.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat (http://www.fhemwiki.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat) wirkt ClimaTeam nicht über Fernbedienungen und die Homematic-Zentrale (also hier fhem). Außerdem sind die Heizungen so weit auseinander, dass meine Frau gerne nur eine Heizung hochdreht... Mit ClimaTeam würden sich wohl direkt alle verstellen, wenn ich das richtig verstanden habe.

Wenn ich hier was falsch verstanden haben sollte, lerne ich aber natürlich gerne dazu!