FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: TNT0068 am 25 August 2014, 13:22:46

Titel: HM-CC-RT-DN Reading Gruppe
Beitrag von: TNT0068 am 25 August 2014, 13:22:46
Hallo zusammen,
ich habe 4 HM-CC-RT-DN,
Um nur die Temperatur aus den Räumen zuhaben. Habe ich mir eine Reading gruppe gebaut, die einfach nach dem Kürzel _Clima im namen sucht und das Ergebnis dan sortiert nach Raum ausgibt. Leider werden immer 3 Temperaturen pro Gerät ausgegeben. Leider finde ich die Lösung nicht :(

Gruß Micha


define Temperatur readingsGroup .*:*_Clima,measured-temp
attr Temperatur alias Temperatur
attr Temperatur group Temperatur
attr Temperatur icon sani_heating
attr Temperatur mapping %ROOM
attr Temperatur room Allgemeine Informationen
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: ph1959de am 25 August 2014, 13:39:35
... und bei den vielen Beispielen zu readingsGroup im Wiki (http://www.fhemwiki.de/wiki/ReadingsGroup) ist auch nichts dabei, was Dich weiterbringt?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: TNT0068 am 25 August 2014, 14:23:10
leider nein :(
Ich weiß nicht warum Pro Device 3 Daten ausgelesen werden.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: frank am 25 August 2014, 14:33:07
ZitatLeider werden immer 3 Temperaturen pro Gerät ausgegeben.
deine definition sucht alle devices (.* vor dem doppelpunkt) mit dem reading measured-temp. wenn es beim rt genauso ist wie bei meinem hm-cc-tc, dann hast du pro realem gerät 3 entitys mit dem reading measured-temp. zb device-channel, weather-channel und clima-channel. das musst du also auf die devices beschränken, die du haben möchtest.

ausserdem suchst du nach devices mit dem reading "*_clima".

gruss frank
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: strauch am 25 August 2014, 14:34:29
Zitat von: TNT0068 am 25 August 2014, 13:22:46
define Temperatur readingsGroup .*:*_Clima,measured-temp

Müsste das nichtdefine Temperatur readingsGroup .*Clima,measured-temp heißen? Das Clima ist ja kein State/Reading.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: TNT0068 am 25 August 2014, 14:49:37
Den Ansatz hatte ich auch schon, leider werden dann keine Daten ausgelesen.
Ja der HM-CC-RT-DN hat auch mehrere Channels.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: frank am 25 August 2014, 14:57:51
warum sagst du nicht, wie die devices heissen, in denenen du das reading measured-temp auslesen möchtest? dann könnte man dir ja vielleicht auch weiter helfen.  ???
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: TNT0068 am 25 August 2014, 15:00:37
die Devices heißen
Bad_Heizung_Clima
Kueche_Heizung_Clima
Wohnzimmer_Heizung_Clima
Schlafzimmer_Heizung_Clima

ist bei den HM-CC-RT-DN der Channel Nummer 4.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: strauch am 25 August 2014, 15:03:31
Ach misst sorry hab nen Fehler reingebaut
define Temperatur readingsGroup .*Clima:measured-temp
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: frank am 25 August 2014, 15:04:45
define Temperatur readingsGroup (Bad|Kueche|Wohnzimmer|Schlafzimmer)_Heizung_Clima:measured-temp
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: TNT0068 am 25 August 2014, 15:16:19
bei beiden Lösungen werden leider die Räume nicht mehr angezeigt. Aber da muss ich mal etwas schauen.
Danke für eure Hilfe.

@Frank mit den direkten Namen hatte ich auch schon dran gedacht wollte die Gruppe aber nicht so statisch haben. Wenn ich jetzt noch ein Device dazu hole muss ich die Gruppe auch noch ändern. Das wollte ich eigentlich vermeiden aber sind 2 min mehr Aufwand und einmal noch was für die Doku
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: strauch am 25 August 2014, 15:28:08
Für die Räume brauchst du ja das Mapping:

attr Temperatur readingsGroup mapping %ROOM
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: TNT0068 am 25 August 2014, 15:44:16
das hatte ich schon drin :)
Aber den Channel hatte ich Hidden gesetzt, nun den Räumen zugeordnet und nun sieht es schon gut aus.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Newbie am 25 August 2014, 18:34:36
Hallo,

hab´s bei mir so gelöst

define HM_Heizung readingsGroup <%sani_heating_temp>,<Isttemperatur>,<Solltemperatur>,<Ventilstellung> .*.Thermostat:measured-temp,desired-temp,actuator,valve
attr HM_Heizung alias Heizung
attr HM_Heizung group Heizung
attr HM_Heizung mapping %ROOM
attr HM_Heizung nameStyle style="color:red"
attr HM_Heizung noheading 1
attr HM_Heizung notime 1
attr HM_Heizung room Home
attr HM_Heizung style style="font-size:20px;;border:0px;;background:none;;box-shadow:none"
attr HM_Heizung valueColumns { eventdescription => 'colspan="4"' }
attr HM_Heizung valueFormat {"measured-temp" => "%.1f °C", "desired-temp" => "%.1f °C","actuator"=> "%.0f %%", "desired-temp.off" => "%s"}
attr HM_Heizung valueStyle style="text-align:middel"



sieht dann so aus (siehe Bilddatei)


vg Jens


Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: frank am 25 August 2014, 18:51:58
Zitatattr HM_Heizung valueStyle style="text-align:middel"
entweder middle, aber center wäre hier wohl effektiver.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Newbie am 25 August 2014, 19:27:12
Hallo Frank,

der Punkt geht eindeutig an dich. Danke
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 27 August 2014, 07:16:40
Ich würd mich hier doch gerne auch mal beteiligen. Momentan bastel ich auch an einer Gruppe für die HM-CC-RT-DN.

meine Definition ist dabei:

define rg_Thermostate readingsGroup <>,<Soll->,<Ist->,<Regler>,<Modus>,<Lock>,<Bat->,<Tages->,<Werktag>,<>,<Samstag>,<>\
<>,<Temperatur>,<Temperatur>,<>,<>,<>,<teri>,<Temperatur>,<start>,<ende>,<start>,<ende>\
.*_Clima:desired-temp,measured-temp,ValvePosition,controlMode,R-globalBtnLock@{getDevice($DEVICE)},battery@{getDevice($DEVICE)},R-dayTemp,<{getTime($DEVICE."_Clima","R_2_tempListMon","start")}>,<{getTime($DEVICE."_Clima","R_2_tempListMon","end")}>,<{getTime($DEVICE."_Clima","R_0_tempListSat","start")}>,<{getTime($DEVICE."_Clima","R_0_tempListSat","end")}>
attr rg_Thermostate commands { 'controlMode' => 'trigger ntfy_toggleControlMode $DEVICE', 'R-globalBtnLock' => 'trigger ntfy_toggleBtnLock $DEVICE'}
attr rg_Thermostate nameStyle style="font-weight:bold"
attr rg_Thermostate room Hausmeisterklitsche
attr rg_Thermostate valueFormat { 'desired-temp' => "%0.1f &deg;;C", 'measured-temp' => "%0.1f &deg;;C", 'ValvePosition' => "%0.1f %%" }
attr rg_Thermostate valueIcon { 'controlMode.auto' => 'sani_heating_automatic@green','controlMode.set_auto' => 'sani_heating_automatic@orange','controlMode.manual' => 'sani_heating_manual@red','controlMode.set_manual' => 'sani_heating_manual@orange', 'battery.ok' => 'batterie@green', 'battery.low' => 'batterie@red'}

define ntfy_toggleControlMode notify ntfy_toggleControlMode {toggleMode($EVENT)}

define ntfy_toggleBtnLock notify ntfy_toggleBtnLock {toggleLock($EVENT)}


In den myUtils habe ich dann noch folgendes:

sub getDevice($){
my $device = shift;
return InternalVal($device,"device","error");
}

sub toggleLock($){
my $device = shift;
my $lockState = ReadingsVal($device,"R-globalBtnLock","error");

if ($lockState eq "on "){
  {fhem("set $device regSet globalBtnLock off")}
  {fhem ("set $device getConfig")}}
elsif ($lockState eq "off "){
  {fhem("set $device regSet globalBtnLock on")}
  {fhem ("set $device getConfig")}}
else
{return $lockState.$device};
}

sub toggleMode($){
my $device = shift;
my $Mode = ReadingsVal($device,"controlMode","error");

if ($Mode eq "manual")
  {fhem("set $device controlMode auto")}
elsif ($Mode eq "auto")
  {fhem("set $device controlMode manual")}
elsif ($Mode eq "set_manual")
  {fhem("set $device controlMode auto")}
elsif ($Mode eq "set_auto")
  {fhem("set $device controlMode manual")};
}

sub getTime($$$){
my $device = shift;
my $reading = shift;
my $status = shift;
my $timeTable = ReadingsVal($device,$reading,"error Reading");  my $time = "error Return";

if ($status eq "start")
  {$time = substr $timeTable, 0, 5}
elsif ($status eq "end")
  {$time = substr $timeTable, 11, 5}

return $time;
}


Bisher ist damit möglich beim klick auf Modus den contolMode zwischen auto/manuel zu togglen, sowie beim klick auf Lock den globalBtnLock zu togglen.

Der nächste Schritt besteht hier nun darin, dass es möglich sein soll, die
- Tagestemperatur, Wochentag- start und ende, Samstag start und ende
in der Readingsgroup neu zu setzten und einen neuen Wochenplan auf das Device zu übertragen.

Mein Ansatz geht dabei dahin, dass ich über setreading die neuen Werte in das Device schreibe und einen Button hinzufüge mit dem ich dann über ein Perl-Script die Werte auslese und neu übertrage.

Wünsche noch einen Schönen Tag.

Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 28 August 2014, 11:50:45
Nun ist es soweit erst mal fertig. Die Möglichkeiten sind:
- ControlMode durch klick auf Icon zwischen manual/auto umzuschalten
- globalBtnLock durch klick auf Icon zwischen on/off umschalten
- Wochenplan für jedes Device seperat durch klick auf Icon setzen

Was mich noch stört:
- in der DEF der ReadingsGroup muss ich zwischendurch impossible@{$DEVICE} setzten, da sonst $DEVICE als das letzte durch @ abgefragt Device ist
- die ganze Seite wird neu geladen, wenn die Temperatur per DropDown geändert wird

Das ganze wird bei uns in Büroräumen eingesetzt, deswegen wird pro Tag nur ein einschalt, ausschalt Zeitpunkt benötigt.

Hier nun der Code:

define rg_Thermostate readingsGroup <>,<Soll->,<Ist->,<Regler>,<Modus>,<Lock>,<Bat->,<Tages->,<>,<Werktag>,<>,<>,<>,<Samstag>,<>,<>,<>,<Wochenplan>\
<>,<Temperatur>,<Temperatur>,<>,<>,<>,<teri>,<Temperatur>,<>,<start>,<>,<ende>,<>,<start>,<>,<ende>,<>,<schreiben>\
.*_Clima:desired-temp,measured-temp,ValvePosition,controlMode,R-globalBtnLock@{getDevice($DEVICE)},battery@{getDevice($DEVICE)},imposible@{$DEVICE},<{getDayTemp($DEVICE)}>,state@d_dayTemp,impossible@{$DEVICE},<{getTime($DEVICE,"R_2_tempListMon","start")}>,state@d_workdayStart,impossible@{$DEVICE},<{getTime($DEVICE,"R_2_tempListMon","end")}>,state@d_workdayEnd,impossible@{$DEVICE},<{getTime($DEVICE,"R_0_tempListSat","start")}>,state@d_saturdayStart,impossible@{$DEVICE},<{getTime($DEVICE,"R_0_tempListSat","end")}>,state@d_saturdayEnd,impossible@{$DEVICE},<%system_fhem_update>
attr rg_Thermostate commands { 'controlMode' => 'trigger ntfy_toggleControlMode $DEVICE',  'R-globalBtnLock' => 'trigger ntfy_toggleBtnLock $DEVICE',  'state' => 'state:',  'rg_Thermostate.system_fhem_update' => 'trigger ntfy_setTimeTable $DEVICE'}
attr rg_Thermostate nameStyle style="font-weight:bold"
attr rg_Thermostate room Hausmeisterklitsche
attr rg_Thermostate sortDevices 1
attr rg_Thermostate valueFormat { 'desired-temp' => "%0.1f &deg;;C", 'measured-temp' => "%0.1f &deg;;C", 'ValvePosition' => "%0.1f %%" }
attr rg_Thermostate valueIcon { 'controlMode.auto' => 'sani_heating_automatic@green','controlMode.set_auto' => 'sani_heating_automatic@orange','controlMode.manual' => 'sani_heating_manual@red','controlMode.set_manual' => 'sani_heating_manual@orange', 'battery.ok' => 'batterie@green', 'battery.low' => 'batterie@red', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off ' => 'secur_open@orange'}

define d_dayTemp dummy
attr d_dayTemp room Hausmeisterklitsche
attr d_dayTemp setList state:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
attr d_dayTemp webCmd state

define d_workdayStart dummy
attr d_workdayStart room Hausmeisterklitsche
attr d_workdayStart setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_workdayStart webCmd state

define d_workdayEnd dummy
attr d_workdayEnd room Hausmeisterklitsche
attr d_workdayEnd setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_workdayEnd webCmd state

define d_saturdayStart dummy
attr d_saturdayStart room Hausmeisterklitsche
attr d_saturdayStart setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_saturdayStart webCmd state

define d_saturdayEnd dummy
attr d_saturdayEnd room Hausmeisterklitsche
attr d_saturdayEnd setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_saturdayEnd webCmd state

define ntfy_toggleControlMode notify ntfy_toggleControlMode {toggleMode($EVENT)}
attr ntfy_toggleControlMode room Hausmeisterklitsche

define ntfy_toggleBtnLock notify ntfy_toggleBtnLock {toggleLock($EVENT)}
attr ntfy_toggleBtnLock room Hausmeisterklitsche

define ntfy_setTimeTable notify ntfy_setTimeTable {setTimeTable($EVENT)}
attr ntfy_setTimeTable room Hausmeisterklitsche


und die myUtils:

sub getDevice($){
my $device = shift;
return InternalVal($device,"device","error");
}

sub toggleMode($){
my $device = shift;
my $Mode = ReadingsVal($device,"controlMode","error");

if ($Mode eq "manual")
  {fhem("set $device controlMode auto")}
elsif ($Mode eq "auto")
  {fhem("set $device controlMode manual")}
elsif ($Mode eq "set_manual")
  {fhem("set $device controlMode auto")}
elsif ($Mode eq "set_auto")
  {fhem("set $device controlMode manual")};
}

sub toggleLock($){
my $device = shift;
my $lockState = ReadingsVal($device,"R-globalBtnLock","error");

if ($lockState eq "on "){
  {fhem("set $device regSet globalBtnLock off")}
  {fhem ("set $device getConfig")}}
elsif ($lockState eq "off "){
  {fhem("set $device regSet globalBtnLock on")}
  {fhem ("set $device getConfig")}}
elsif ($lockState eq "on"){
  {fhem("set $device regSet globalBtnLock off")}
  {fhem ("set $device getConfig")}}
elsif ($lockState eq "off"){
  {fhem("set $device regSet globalBtnLock on")}
  {fhem ("set $device getConfig")}}
else
  {return $lockState.$device};
}

sub getDayTemp($){
my $device = shift;
my $timeTable = ReadingsVal($device,"R_2_tempListMon","error Reading");
my $dayTemp = substr $timeTable, 17, 5;

return ($dayTemp." °C");
}

sub getTime($$$){
my $device = shift;
my $reading = shift;
my $status = shift;
my $timeTable = ReadingsVal($device,$reading,"error Reading");
my $time = "error Return";

if ($status eq "start")
  {$time = substr $timeTable, 0, 6}
elsif ($status eq "end")
  {$time = substr $timeTable, 11, 6}

return $time;
}

sub setTimeTable($){
my $device = shift;
my $dayTemp = ReadingsVal("d_dayTemp","state","dt error");
my $nightTemp = "17.0";
my $startWorkday = ReadingsVal("d_workdayStart","state","eds error");
my $endWorkday = ReadingsVal("d_workdayEnd","state","wde error");
my $startSaturday = ReadingsVal("d_saturdayStart","state","sds error");
my $endSaturday = ReadingsVal("d_saturdayEnd","state","sde error");
my $startSunday = "00:00";
my $endSunday = "00:00";

{ fhem ("set $device tempListMon prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListTue prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListWed prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListThu prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListFri prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListSat prep $startSaturday $nightTemp $endSaturday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListSun exec $startSunday $nightTemp $endSunday $dayTemp 24:00 $nightTemp")};
}


Vielleicht kann es ja noch wer gebrauchen. Ansonsten bin ich dankbar, wenn mir einer dabei Hilft die Sachen, die mich noch stören zu beseitigen.

Grüße

Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: justme1968 am 28 August 2014, 12:59:03
das problem mit dem refresh durch das drop down menü ist ein allgemeines in fhem. bis vor kurzem war auch der slider betroffen. da hat rudi es geändert. ich finde aber den thread gerade nicht.

wenn sonst alles funktioniert wäre dein code vielleicht etwas für die readingsGroup seite im wiki.

das mit dem $DEVICE habe ich nicht verstanden. kannst du mal ein Beispiel machen?

gruss
  andre
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 28 August 2014, 13:06:07
Mit dem $DEVICE ist es so:
define rg_dummy Readingsgroup dummy1:state,state@dummy2,<{$DEVICE}>
sollte dann so aussehen:
dummy1 state1 state2 dummy2

obwohl $DEVICE dummy1 zurück geben sollte.

Das wird hier die nächsten Wochen getestet, und wenn nichts mehr geändert werden muss, stelle ich es ins Wiki.

Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 23 September 2014, 10:24:42
hallo,

ich beschäftige mich noch nicht sehr lange mit Fhem, finde das Beispiel aber sehr interessant.

Leider bekomme ich die Abfragen nicht wie gewünscht hin.
Die Funktion getDevice($DEVICE) läuft soweit. Wenn ich jetzt allerdings battery@getDevice($DEVICE)) abfragen möchte, dann bekomme ich keinen Rückgabewert.

Mit <{ReadingsVal(getDevice($DEVICE),"battery","error")}> funktionierts. Habe ich da irgendwo was übersehen?

Gruß Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 23 September 2014, 12:37:23
Hallo Michael,

versuch es mal mit geschweiften Klammern

battery@{getDevice($DEVICE)}


Vielleicht weiß ja aber jemand, warum es mit

battery@{InternalVal($DEVICE,"device","")}

nicht geht.

Gruß
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 23 September 2014, 12:51:45
hi,

klappt leider nicht.

das @ bewirkt doch, dass ein Array ausgelesen wird, oder?

Ist denn das $DEVICE standardmäßig ein Array oder muss das noch irgendwo definiert werden?

Gruß Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 23 September 2014, 16:55:23
Hallo Michael,

über das @ kannst du meines Wissens nach ein Reading von einem anderen Device auslesen, in diesem Fall 'battery' $DEVICE sollte immer das Device vom Anfang der Zeile sein sollte, was aber nicht immer der Fall ist, siehe http://forum.fhem.de/index.php/topic,26479.msg195515.html#msg195515

Zeig doch mal bitte deine komplette DEF der Readingsgroup.

Gruß
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 23 September 2014, 23:53:38
hi,

die DEF ist aus Beitrag 17 von diesem Thread kopiert.

Wobei ich z.B. ControlMode durch mode ersetzen musste, da bei mir das Reading ControlMode nicht existiert.

<>,<Soll->,<Ist->,<Regler>,<Modus>,<Lock>,<Bat->,<Tages->,<>,<Werktag>,<>,<>,<>,<Samstag>,<>,<>,<>,<Wochenplan>
<>,<Temperatur>,<Temperatur>,<>,<>,<>,<teri>,<Temperatur>,<>,<start>,<>,<ende>,<>,<start>,<>,<ende>,<>,<schreiben>
.*_Clima:desired-temp,measured-temp,ValvePosition,mode,<{ReadingsVal(getDevice($DEVICE),"R-btnLock","error_R-btnLock")}>,battery@getDevice($DEVICE),impossible@{$DEVICE},{getDayTemp($DEVICE)},state@d_dayTemp,impossible@{$DEVICE},<{getTime($DEVICE,"R_2_tempListMon","start")}>,state@d_workdayStart,impossible@{$DEVICE},<{getTime($DEVICE,"R_2_tempListMon","end")}>,state@d_workdayEnd,impossible@{$DEVICE},<{getTime($DEVICE,"R_0_tempListSat","start")}>,state@d_saturdayStart,impossible@{$DEVICE},<{getTime($DEVICE,"R_0_tempListSat","end")}>,state@d_saturdayEnd,impossible@{$DEVICE},<%system_fhem_update>


Bis Modus klappt das alles wunderbar (da frage ich ja auch nur das aktuelle Device (Sprich den Channel _Clima) ab). Den Status von R-btnLock (wird bei dir als R-globalBtnLock bezeichnet) bekomme ich auch noch abgefragt. Sobald ich aber ein @verwende bekomme ich nichts zurück.

Mit allem was hinter dem Battery-Status kommt habe ich mich noch nicht beschäftigt, da ich den Rest erstmal am laufen haben wollte.

Kann es vielleicht auch daran liegen, dass wir unterschiedliche Programmstände haben?

Vielen Dank schonmal für die Hilfe!

Gruß Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 24 September 2014, 10:18:39
sry, es lag wirklich an ner alten Version von fhem.

da ich über LTE mit dem Internet verbunden bin hat der das Update nicht hinbekommen. Ich hab dann versucht das Update alternativ einzuspielen, das hat aber anscheinend auch nicht richtig funktioniert.

ich bin dann auf den Post

http://forum.fhem.de/index.php/topic,20469.msg190753.html#msg190753

gestoßen, hab die httpUtils geändert und siehe da, es funktioniert!

Vielen Dank für die Mühe!

Gruß Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: knochenmuehle am 25 September 2014, 22:20:08
@igami mit Sonntag wäre es perfekt

Gruß
Andreas
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 25 September 2014, 23:27:46
Ich hab den Sonntag mit drin. Den code dafür kann ich morgen wohl eben Posten.
Gruß Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: knochenmuehle am 26 September 2014, 05:53:04
ok elsi89 mach mal
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 September 2014, 08:12:40
Das Layout war das von uns in der Firma. Zu hause habe ich einfach Wochenende zusammengefasst und aus Platzgründen jedes Device zweizeilig gemacht. Kann ich Nachher mal posten.

Gruß
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 26 September 2014, 08:20:54
so, hier der versprochene Code

einmal für die fhem.cfg
define rg_Thermostate readingsGroup <>,<Soll->,<Ist->,<Regler>,<Modus>,<Lock>,<Bat->,<Tages->,<>,<Werktag>,<>,<>,<>,<Samstag>,<>,<>,<>,<Sonntag>,<>,<>,<>,<Wochenplan>\
<>,<Temperatur>,<Temperatur>,<>,<>,<>,<teri>,<Temperatur>,<>,<start>,<>,<ende>,<>,<start>,<>,<ende>,<>,<start>,<>,<ende>,<>,<schreiben>\
.*_Clima:desired-temp,measured-temp,ValvePosition,controlMode,R-globalBtnLock@{getDevice($DEVICE)},battery@{getDevice($DEVICE)},imposible@{$DEVICE},<{getDayTemp($DEVICE)}>,state@d_dayTemp,impossible@{$DEVICE},<{getTime($DEVICE,"R_2_tempListMon","start")}>,state@d_workdayStart,impossible@{$DEVICE},<{getTime($DEVICE,"R_2_tempListMon","end")}>,state@d_workdayEnd,impossible@{$DEVICE},<{getTime($DEVICE,"R_0_tempListSat","start")}>,state@d_saturdayStart,impossible@{$DEVICE},<{getTime($DEVICE,"R_0_tempListSat","end")}>,state@d_saturdayEnd,impossible@{$DEVICE},<{getTime($DEVICE,"R_1_tempListSun","start")}>,state@d_sundayStart,impossible@{$DEVICE},<{getTime($DEVICE,"R_1_tempListSun","end")}>,state@d_sundayEnd,impossible@{$DEVICE},<%system_fhem_update>
attr rg_Thermostate commands { 'controlMode' => 'trigger ntfy_toggleControlMode $DEVICE',  'R-globalBtnLock' => 'trigger ntfy_toggleBtnLock $DEVICE',  'state' => 'state:',  'rg_Thermostate.system_fhem_update' => 'trigger ntfy_setTimeTable $DEVICE'}
attr rg_Thermostate nameStyle style="font-weight:bold"
attr rg_Thermostate sortDevices 1
attr rg_Thermostate valueFormat { 'desired-temp' => "%0.1f &deg;;C", 'measured-temp' => "%0.1f &deg;;C", 'ValvePosition' => "%0.1f %%" }
attr rg_Thermostate valueIcon { 'controlMode.auto' => 'sani_heating_automatic@green','controlMode.set_auto' => 'sani_heating_automatic@orange','controlMode.manual' => 'sani_heating_manual@red','controlMode.set_manual' => 'sani_heating_manual@orange', 'battery.ok' => 'batterie@green', 'battery.low' => 'batterie@red', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off ' => 'secur_open@orange'}
attr rg_Thermostate valueStyle { if($READING eq "measured-temp" && $VALUE >= 19){ 'style="color:green;;font-weight:bold"' }elsif( $READING eq "measured-temp" && $VALUE < 19 ){ 'style="color:lightblue;;font-weight:bold"' }elsif( $READING eq "measured-temp" && $VALUE > 23 ){ 'style="color:red;;font-weight:bold"' }else{ 'style="color:gray;;font-weight:bold"' }}

define d_dayTemp dummy
attr d_dayTemp room Unsorted
attr d_dayTemp setList state:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
attr d_dayTemp webCmd state

define d_workdayStart dummy
attr d_workdayStart room Unsorted
attr d_workdayStart setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_workdayStart webCmd state

define d_workdayEnd dummy
attr d_workdayEnd room Unsorted
attr d_workdayEnd setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_workdayEnd webCmd state

define d_saturdayStart dummy
attr d_saturdayStart room Unsorted
attr d_saturdayStart setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_saturdayStart webCmd state

define d_saturdayEnd dummy
attr d_saturdayEnd room Unsorted
attr d_saturdayEnd setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_saturdayEnd webCmd state

define d_sundayStart dummy
attr d_sundayStart room Unsorted
attr d_sundayStart setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_sundayStart webCmd state

define d_sundayEnd dummy
attr d_sundayEnd room Unsorted
attr d_sundayEnd setList state:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00,
attr d_sundayEnd webCmd state

define ntfy_toggleControlMode notify ntfy_toggleControlMode {toggleMode($EVENT)}

define ntfy_toggleBtnLock notify ntfy_toggleBtnLock {toggleLock($EVENT)}

define ntfy_setTimeTable notify ntfy_setTimeTable {setTimeTable($EVENT)}


und die 99_myUtils:
sub getDevice($){
my $device = shift;
return InternalVal($device,"device","error");
}

sub toggleMode($){
my $device = shift;
my $Mode = ReadingsVal($device,"controlMode","error");

if ($Mode eq "manual")
  {fhem("set $device controlMode auto")}
elsif ($Mode eq "auto")
  {fhem("set $device controlMode manual")}
elsif ($Mode eq "set_manual")
  {fhem("set $device controlMode auto")}
elsif ($Mode eq "set_auto")
  {fhem("set $device controlMode manual")};
}

sub toggleLock($){
my $device = shift;
my $lockState = ReadingsVal($device,"R-globalBtnLock","error");

if ($lockState eq "on "){
  {fhem("set $device regSet globalBtnLock off")}
  {fhem ("set $device getConfig")}}
elsif ($lockState eq "off "){
  {fhem("set $device regSet globalBtnLock on")}
  {fhem ("set $device getConfig")}}
elsif ($lockState eq "on"){
  {fhem("set $device regSet globalBtnLock off")}
  {fhem ("set $device getConfig")}}
elsif ($lockState eq "off"){
  {fhem("set $device regSet globalBtnLock on")}
  {fhem ("set $device getConfig")}}
else
  {return $lockState.$device};
}

sub getDayTemp($){
my $device = shift;
my $timeTable = ReadingsVal($device,"R_2_tempListMon","error Reading");
my $dayTemp = substr $timeTable, 17, 5;

return ($dayTemp." °C");
}

sub getTime($$$){
my $device = shift;
my $reading = shift;
my $status = shift;
my $timeTable = ReadingsVal($device,$reading,"error Reading");
my $time = "error Return";

if ($status eq "start")
  {$time = substr $timeTable, 0, 6}
elsif ($status eq "end")
  {$time = substr $timeTable, 11, 6}

return $time;
}
sub setTimeTable($){
my $device = shift;
my $dayTemp = ReadingsVal("d_dayTemp","state","dt error");
my $nightTemp = "15.0";
my $startWorkday = ReadingsVal("d_workdayStart","state","eds error");
my $endWorkday = ReadingsVal("d_workdayEnd","state","wde error");
my $startSaturday = ReadingsVal("d_saturdayStart","state","sds error");
my $endSaturday = ReadingsVal("d_saturdayEnd","state","sde error");
my $startSunday = ReadingsVal("d_sundayStart","state","snds error");
my $endSunday = ReadingsVal("d_sundayEnd","state","snde error");

{ fhem ("set $device tempListMon prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListTue prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListWed prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListThu prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListFri prep $startWorkday $nightTemp $endWorkday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListSat prep $startSaturday $nightTemp $endSaturday $dayTemp 24:00 $nightTemp")};
{ fhem ("set $device tempListSun exec $startSunday $nightTemp $endSunday $dayTemp 24:00 $nightTemp")};
}
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: moemoe am 26 September 2014, 09:42:13
Zitat von: elsi89 am 26 September 2014, 08:20:54
so, hier der versprochene Code

Kannst du da evtl. noch einen Screenshot dazupacken, das macht es immer anschaulicher.

Danke :)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Lukas am 28 September 2014, 12:17:20
bin noch Anfänger,
den Code soweit eingetragen, aber irgendwas fehlt mir. Die einzelnen Werte werden gar nicht dargestellt und die Oberfläche sieht anders aus.
Müsste ich nicht noch etwas nachinstallieren? (s. Screenshot)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 28 September 2014, 12:37:11
Hast du die aktuelle version installiert?
Ansonsten gib mal Update Check und danach Update ein

Spontan würde ich aber sagen dass du kein device ausliest.
Gruß Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Lukas am 28 September 2014, 13:15:37
habe gerade update gemacht, es gab wirklich was neues für die readings, aber das Ergebnis sieht nicht anders aus.
Insgesamt habe ich 9 CC-RT-DN's (im Anhang ist ein Beispiel)
Kann das sein, dass mir zuerst eine Fronted fehlt wie hier:
http://www.fhemwiki.de/wiki/Neues_Charting_Frontend
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: moemoe am 28 September 2014, 13:22:16
Kein Wunder dass du nichts siehst - zumindest falls du die Config 1:1 übernommen hast:

.*_Clima: – aber du hast kein Device, das auf _Clima endet.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 28 September 2014, 13:22:36
Hi
Die Readingsgroup laut Code fragt Channel 4 an (*._Clima).
Du hast den umbenannt.
Entweder ergänzt du beim Namen ein "_Clima" (was ich tun würde)
Oder du passt die Definition der readingsgroup an.
Dann musst du das nur so wählen, dass allgemeingültig für alle Geräte ist
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Lukas am 28 September 2014, 13:49:13
autsch!   :-[
nach dem Umbenennen hat's auch geklappt  ;D
Vielen Dank!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: olli84 am 28 September 2014, 22:49:35
Hallo,

habe gerade auch mal die Version mit Sonntag probiert.

Leider erscheinen bei mri keine drop-down felder - kann mir jemand helfen?

Vielen Dank!
Olli

Edit: Erledigt, einmal die Dummys durchschalten und schon tauchen die drop-downs auf... :)

Edit2: Jemand eine Idee wie ich in die readingsgroup noch den Boost-Button (schnell aufheizen) reinbekomme?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 29 September 2014, 05:02:04
Hier noch einmal eine kompaktere Version:


<>,<Ist-,>,<Regler>,<Batterie>,<Tages->,<Werktag>,<>,<Wochenende>,<>,<Wochenplan>
<>,<Solltemperatur>,<Lock>,<Modus>,<Temperatur>,<start>,<ende>,<start>,<ende>,<schreiben>
.*_Clima:measured-temp,ValvePosition,batteryLevel@{getDevice($DEVICE)},imposible@{$DEVICE},<{getDayTemp($DEVICE)}>,<{getTime($DEVICE,"R_2_tempListMon","start")}>,<{getTime($DEVICE,"R_2_tempListMon","end")}>,<{getTime($DEVICE,"R_0_tempListSat","start")}>,<{getTime($DEVICE,"R_0_tempListSat","end")}>,state@{getDevice($DEVICE)},<br>,impossible@{$DEVICE},desired-temp,R-globalBtnLock@{getDevice($DEVICE)},imposible@{$DEVICE},controlMode,state@d_dayTemp,state@d_workdayStart,state@d_workdayEnd,state@d_saturdayStart,state@d_saturdayEnd,imposible@{$DEVICE},<%system_fhem_update>


Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 30 September 2014, 21:30:08
Wow! Gefällt mir gut - bin gerade am Nachbauen. Habe jedoch Max! Heizkörperthermostate.

Werden die Werte in den jeweiligen Thermostaten umgehend geändert, sobald eines dieser Drop-Down Felder geändert wird, oder kann man ein paar der Werte auf einmal verändern und zum Schluß dann gemeinsam an die Thermostate übertragen?

Gruß,
Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l2r am 01 Oktober 2014, 15:10:17
das übertragen geschieht erst mit Klick auf Zeitplan schreiben. (da hängt die Funktion setTimeTable($)) dran.

gruß Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 02 Oktober 2014, 19:37:47
Hallo Michael,

wie Michael schon sagt, werden die Werte erst beim drücken auf 'Wochenplan schreiben', hier als fhem update Icon eingebunden geschrieben. Bei meiner Variante verwende ich aber nur einen Dummy für die Dropdowns alles Devices. Heißt ich kann einen Zeitplan eintragen und dann bei alles Devices die es haben sollen auf schreiben klicken.

Grüße
Igami aka Michael (ganz schön viele hier :D)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: olli84 am 09 Oktober 2014, 10:22:32
seit neuestem habe ich mit der bisher super funktionierenden readingsGroup Probleme:

Bitte schaut euch mal die Anhänge an. Ich habe in der letzten Zeit nichts an der readingsGroup geändert.

Was soll das mit dem "Created by potrace 1.8, written by Peter Selinger 2001-2007 "

Die weisse Schrift ist so gewollt. :D
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: olli84 am 09 Oktober 2014, 19:17:35
Jetzt antworte ich mal meinem eigenem Problem:

Den obigen Test habe ich auf der Arbeit gemacht. Dort habe ich einen Internet Explorer.

Hier daheim funktioniert es mit Chrome oder Firefox einwandfrei. Egal ob LAN oder Internet.

Komisch.  8)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 10 Oktober 2014, 19:49:52
Das hatte wir ja schon mehrfach, dass Firefox und Derivate besser funktionieren als der Internet Explorer...
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 30 Oktober 2014, 20:16:11
Was haltet ihr von folgendem Layout?
Noch okay oder schon zu gequetscht?

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 03 November 2014, 21:13:08
Igami,

gefällt mir gut, wollte gerade die erste Version nachbasteln und bin dann erst später über dein letztes Posting vom 30.10. gestolpert. Du könntest bitte Mal den kompletten Code einstellen, weil ich leider den Überblick verloren habe :-(

Ich habe die Max! HK-Thermostate, die sich, was die Zeitpläne angeht, wohl ein wenig anders als die HM Teile verhalten, ich gehe zumindest davon aus.

Meine Definition sieht so aus:

Internals:
   CFGFN      /opt/fhem/FHEM/obergeschoss.cfg
   DEF        HeatingThermostat 0c8125
   HEALTH_MONITORED_BY myDeviceMonitor
   HEALTH_STATE dead
   HEALTH_TIME 2014-11-03 20:39:48
   IODev      cm
   LASTInputDev cm
   MSGCNT     35
   NAME       HeizungEltern
   NR         333
   RSSI       -50
   STATE      18.5 °C
   TYPE       MAX
   addr       0c8125
   backend    cm
   cm_MSGCNT  35
   cm_TIME    2014-11-03 19:34:47
   dstsetting 1
   mode       1
   rferror    0
   type       HeatingThermostat
   Readings:
     2014-09-11 17:32:28   TimeInformationHour 0
     2014-11-03 19:34:47   battery         ok
     2014-09-12 13:54:58   comfortTemperature 21
     2014-11-03 19:34:47   desiredTemperature 18.5
     2014-11-02 20:11:59   desiredtemp_new 00
     2014-09-12 13:54:58   ecoTemperature  17
     2014-09-13 09:47:38   firmware        1.0
     2014-09-13 09:47:38   groupid         0
     2014-09-12 13:54:58   maximumTemperature on
     2014-09-11 17:37:46   measurementOffset 0
     2014-09-12 17:35:26   minimumTemperature 5.0
     2014-11-03 19:34:47   mode            manual
     2014-11-03 19:34:40   msgcnt          183
     2014-11-03 19:34:47   state           18.5 °C
     2014-11-03 12:34:23   temperature     19.2
     2014-09-13 09:47:38   testresult      160
     2014-11-03 19:34:47   valveposition   13
     2014-09-12 14:18:12   weekprofile-0-Sat-temp 17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-0-Sat-time 00:00-06:00  /  06:00-22:00  /  22:00-00:00
     2014-11-03 20:55:34   weekprofile-1-Sun-temp 17.0 °C  /  22.0 °C
     2014-11-03 20:55:34   weekprofile-1-Sun-time 00:00-08:00  /  08:00-00:00
     2014-09-12 14:18:12   weekprofile-2-Mon-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-2-Mon-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 14:18:12   weekprofile-3-Tue-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-3-Tue-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 14:18:12   weekprofile-4-Wed-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-4-Wed-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 14:18:12   weekprofile-5-Thu-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-5-Thu-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 14:18:12   weekprofile-6-Fri-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-6-Fri-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 15:19:04   windowOpenDuration 0
     2014-09-12 15:19:13   windowOpenTemperature 5.0
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      cm
   alias      Heizung Eltern
   device_timeout 65
   group      Obergeschoss
   icon       sani_heating
   room       Eltern


wobei ich momentan noch nicht so den Plan habe, wie ich die einzelnen Wochenprofile einstellen kann. Ein Beispiel ist wohl set HeizungEltern weekProfile Sun 17,08:00,22 und stellt dann am Thermostat die folgenden Werte ein:

weekprofile-1-Sun-temp 17.0 °C  /  22.0 °C
weekprofile-1-Sun-time 00:00-08:00  /  08:00-00:00


Ich würde gerne je Wochentag für zwei unterschiedliche Zeitintervalle unterschiedliche Temperaturen einstellen können. Bspw.:
1) Montag 00:00 bis 16:00 Uhr -> 18 °C
2) Montag 16:00 bis 20:00 Uhr -> 21 °C
3) Montag 20:00 bis 00:00 Uhr -> 18 °C

Ich habe dies erreicht mit dem folgenden Befehl: set HeizungEltern weekProfile Mon 18,16:00,21,20:00,18,00:00 wobei eigentlich der dritte Temperaturwert sich autom. einstellen sollte. Tat er aber nicht, ich musste es vorgeben indem ich noch ,18,00:00 angefügt habe. Denke Mal, das könnte man aber in der Endausbaustufe mit der Endezeit 20:00 Uhr von 2) und der Startzeit von 1) automatisch zusammenstückeln.

Ergebnis:
weekprofile-2-Mon-temp 18.0 °C  /  21.0 °C  /  18.0 °C
weekprofile-2-Mon-time 00:00-16:00  /  16:00-20:00  /  20:00-00:00


Nichtsdestotrotz fehlt mir momentan der Ansatz dies in eine readingsGroup einzubauen.

Du hast in der ersten Version noch mit Dummy-Werte (Stichwort: room Hausmeisterklitsche) gearbeitet, irgendetwas mit define d_dayTemp dummy
attr d_dayTemp room Hausmeisterklitsche
attr d_dayTemp setList state:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
attr d_dayTemp webCmd state


Ist dies immer noch Bestandteil deiner jetzigen Lösung? Wenn ja, wie bekommt man diese Werte je Wochentag mit zwei unterschiedlichen Anfangs- und Endezeit in die readingsGroup und dann noch je Thermostat?

Viele Fragen und viel Verwirrung, momentan noch. Vielleicht könntest du, wie bereits gefragt, Mal deine momentan Lösung (komplett) einstellen? Ich denke das würde bereits einige der Fragen beantworten.

Danke,
Michael

Edit: und was mir momentan mehr Kopfzerbrechen bereitet: ich kann die derzeit eingestellten Werte nicht auslesen, die bspw. für den Montag eingestellt sind:

weekprofile-2-Mon-temp 18.0 °C  /  21.0 °C  /  18.0 °C
weekprofile-2-Mon-time 00:00-16:00  /  16:00-20:00  /  20:00-00:00


Zum einen habe ich noch keinen "Befehl" gefunden, der mir die Readings für diese beiden Zeile liefert und was wahrscheinlich noch ein etwas größeres Problem wird, die einzelnen Werte der beiden Zeile können x-beliebige Werte haben, etwas sowas wie 
weekprofile-4-Wed-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
weekprofile-4-Wed-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00


Ok, Plan ist, nur drei Werte je Tag einzustellen und zurück zu bekommen, wie am Beispiels des Montags oben. Für eine Initial-Darstellung in der readingsGroup wird's wohl problematisch werden, wenn drei Werte erwartet werden, aber per Default der Thermostat möglicherweise fünf hat.
???[/code]
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 03 November 2014, 21:29:48
Vom 30.10. gibt es noch keinen Code, ist bisher nur ein Layout ohne Funktion, wenn ich die Woche über Zeit finde werde ich die noch fertig machen.
Es ist dabei geplant für jeden Raum ein dummy Device zu haben in dem die Wochenprogramme stehen, und nicht mehr wie in der ersten Version eins für alle.
Ich gucke mal ob ich es schaffe morgen einen CodeAnsatz zu posten.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 03 November 2014, 21:35:56
Ah, ich sehe gerade du hast noch vor meiner letzten Ändeurng gepostet.

Danke dir, mach dir keinen Stress meinetwegen, freue mich aber über jeden Codeschnipsel.

Schöne Grüße,
Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 04 November 2014, 13:59:40
Hallo Michael,

Wie versprochen hier nun das update, mittlerweile auch fast voll Funktionsfähig. Was noch nett wäre, beim klick auf den alias zum Device springen, und den Abstand zwischen den Spalten verringern.
rg_42

define rg_42 readingsGroup <>,Heizung@d_Label,<|>,Temperatur@d_Label,<|>,Status@d_Label,<|>,<Wochenplan>,<|>,Werktag@d_Label,<|>,Samstag@d_Label,<|>,Sonntag@d_Label,<|>,<Kommando>\
(CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima:battery@{rg($DEVICE."§device")},impossible@{$DEVICE},alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-globalBtnLock@{rg($DEVICE."§device")},<|>,<Vormittag>,<|>,weekday_am_start@{rg($DEVICE."§clima")},weekday_am_end@{rg($DEVICE."§clima")},<|>,saturday_am_start@{rg($DEVICE."§clima")},saturday_am_end@{rg($DEVICE."§clima")},<|>,sunday_am_start@{rg($DEVICE."§clima")},sunday_am_end@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,ValvePosition,<|>,<Nachmittag>,<|>,weekday_pm_start@{rg($DEVICE."§clima")},weekday_pm_end@{rg($DEVICE."§clima")},<|>,saturday_pm_start@{rg($DEVICE."§clima")},saturday_pm_end@{rg($DEVICE."§clima")},<|>,sunday_pm_start@{rg($DEVICE."§clima")},sunday_pm_end@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>

attr rg_42 commands {'desired-temp' => 'desired-temp:'  ,'dayTemp' => 'dayTemp:'  ,'controlMode' => 'trigger ntfy_rg $DEVICE controlMode'  ,'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock'  ,'weekday_am_start' => 'weekday_am_start:'  ,'weekday_am_end' => 'weekday_am_end:'  ,'saturday_am_start' => 'saturday_am_start:'  ,'saturday_am_end' => 'saturday_am_end:'  ,'sunday_am_start' => 'sunday_am_start:'  ,'sunday_am_end' => 'sunday_am_end:'  ,'rg_42.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable'  ,'rg_42.getConfig' => 'set $DEVICE getConfig'  ,'nightTemp' => 'nightTemp:'  ,'weekday_pm_start' => 'weekday_pm_start:'  ,'weekday_pm_end' => 'weekday_pm_end:'  ,'saturday_pm_start' => 'saturday_pm_start:'  ,'saturday_pm_end' => 'saturday_pm_end:'  ,'sunday_pm_start' => 'sunday_pm_start:'  ,'sunday_pm_end' => 'sunday_pm_end:'  ,'rg_42.burstXmit' => 'set $DEVICE burstXmit'  }
attr rg_42 group Visualisierung
attr rg_42 mapping {'desired-temp' => ''  ,'dayTemp' => ''  ,'weekday_am_start' => ''  ,'weekday_am_end' => ''  ,'saturday_am_start' => ''  ,'saturday_am_end' => ''  ,'sunday_am_start' => ''  ,'sunday_am_end' => ''  ,'nightTemp' => ''  ,'weekday_pm_start' => ''  ,'weekday_pm_end' => ''  ,'saturday_pm_start' => ''  ,'saturday_pm_end' => ''  ,'sunday_pm_start' => ''  ,'sunday_pm_end' => '' }
attr rg_42 nameStyle {($READING eq "Wochenplan"  ||$READING eq "Kommando"  )?'style="font-size:20px;;color:RoyalBlue;;text-align:center"' :($READING eq "Soll" ||$READING eq "Tag" ||$READING eq "Vormittag" ||$READING eq "%getConfig" ||$READING eq "Ist" ||$READING eq "Nacht" ||$READING eq "Ventil" ||$READING eq "Nachmittag"  )?'style="text-align:right"' :($READING eq "%system_fhem_update" ||$READING eq "%burstXmit"  )?'style="text-align:center"' :'style=""'}
attr rg_42 nonames 1
attr rg_42 room Hausmeisterklitsche
attr rg_42 sortDevices 1
attr rg_42 valueColumns { 'Heizung' => 'colspan="2"' , 'Temperatur' => 'colspan="4"' , 'Status' => 'colspan="2"' , 'Werktag' => 'colspan="2"' , 'Samstag' => 'colspan="2"' , 'Sonntag' => 'colspan="2"' , 'alias' => 'colspan="2"' }
attr rg_42 valueFormat { 'measured-temp' => "  %0.1f &deg;;C", 'ValvePosition' => "%0.1f %%" }
attr rg_42 valueIcon { 'controlMode.auto' => 'sani_heating_automatic@green','controlMode.set_auto' => 'sani_heating_automatic@orange','controlMode.manual' => 'sani_heating_manual@red','controlMode.set_manual' => 'sani_heating_manual@orange', 'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off ' => 'secur_open@orange'}
attr rg_42 valueStyle {($READING eq "Heizung" ||$READING eq "Temperatur" ||$READING eq "Status" ||$READING eq "Werktag" ||$READING eq "Samstag" ||$READING eq "Sonntag"  )?'style="font-size:20px;;color:RoyalBlue;;text-align:center"' :($READING eq "alias"  )?'style="font-size:11px;;font-weight:bold;;text-align:left"' :($READING eq "ValvePosition" &&$VALUE > 40  )?'style="font-weight:bold;;color:Red;;text-align:left"' :($READING eq "desired-temp" ||$READING eq "measured-temp"  )?'style="text-align:center"' :($READING eq "state" ||$READING eq "R-globalBtnLock" ||$READING eq "ValvePosition"  )?'style="text-align:left"' :'style="text-align:right"'}

d_Label

define d_Label dummy

default_climaControl

define default_climaControl dummy
attr default_climaControl comment d_climaControl_(.|.....) icon setList
attr default_climaControl group 08.0 Dummy
attr default_climaControl icon Icon_Fisch
attr default_climaControl room Vorgaben
attr default_climaControl setList dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 weekday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00

ntfy_setreading

define ntfy_setreading notify d_.* {\
if(\
($EVENT ~~ / /)\
and\
($EVENT !~ /: /)\
)\
{fhem("setreading $NAME $EVENT")}\
}
attr ntfy_setreading group Dummy
attr ntfy_setreading icon audio_mic
attr ntfy_setreading room Meta

ntfy_rg

define ntfy_rg notify ntfy_rg {rg($EVENT)}
attr ntfy_rg group readingsGroup
attr ntfy_rg icon audio_mic
attr ntfy_rg room Meta

Noch was für die myUtils
sub makefine

sub makefine{
#d_climaControl definieren und Initialisiern
my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)'));

foreach my $device (@devices){
my $room = AttrVal($device, 'room', 'undef');
if(!($room =~ /undef|CUL_HM/)){
  my $roomNumber = $room;
  $roomNumber =~ s/\D//g;
  my $climaControl = ('d_climaControl_'.$roomNumber);
  if(!(defined($defs{$climaControl}))){
   {fhem("define $climaControl dummy")}
   {fhem("setreading $climaControl dayTemp 21.0")}
   {fhem("setreading $climaControl nightTemp 17.0")}
   {fhem("setreading $climaControl saturday_am_end 12:00")}
   {fhem("setreading $climaControl saturday_am_start 06:30")}
   {fhem("setreading $climaControl saturday_pm_end 24:00")}
   {fhem("setreading $climaControl saturday_pm_start 24:00")}
   {fhem("setreading $climaControl sunday_am_end 24:00")}
   {fhem("setreading $climaControl sunday_am_start 24:00")}
   {fhem("setreading $climaControl sunday_pm_end 24:00")}
   {fhem("setreading $climaControl sunday_pm_start 24:00")}
   {fhem("setreading $climaControl weekday_am_end 18:00")}
   {fhem("setreading $climaControl weekday_am_start 06:30")}
   {fhem("setreading $climaControl weekday_pm_end 24:00")}
   {fhem("setreading $climaControl weekday_pm_start 24:00")}
   {fhem("attr $climaControl room $room")}
  }
}
}

#Attribute aus Vorgaben übernehmen
my @defaults = split('\n', fhem('LIST room=Vorgaben'));

foreach my $default (@defaults){
  my @attributes = split(' ', AttrVal($default,'comment','comment error'));
  my $wildcard =  $attributes[0];
  splice(@attributes,0,1);
   foreach my $attribut (@attributes){
    my $attrval = AttrVal($default, $attribut, 'attrval error');
    fhem("attr $wildcard $attribut $attrval")
   }
}

#alias als Reading hinzufügen
my @climas = split('\n', fhem('LIST (CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima'));

foreach my $clima (@climas){
  my $alias = AttrVal($clima,'alias',$clima);
  fhem("setreading $clima alias $alias")
}
}

sub rg

sub rg($){
my @input    = split(/[§\s]+/,shift);
my $device   = $input[0];
my $function = $input[1];


if($function eq "clima"){
my $room =  AttrVal($device, 'room', 'undef');
    $room =~ s/\D//g;

return(("d_climaControl_".$room));
}
elsif($function eq "device"){
return InternalVal($device,"device","device error");
}
elsif($function eq "controlMode"){
my $controlMode = ReadingsVal($device,"controlMode","controlMode error");

if($controlMode ~~ /manual/)
  {fhem("set $device controlMode auto")}
elsif($controlMode ~~ /auto/)
  {fhem("set $device controlMode manual")};
}
elsif($function eq "globalBtnLock"){
my $globalBtnLock = ReadingsVal($device,"R-globalBtnLock","globalBtnLock error");

if($globalBtnLock ~~ /off/){
  {fhem("set $device regSet globalBtnLock on")}
  {fhem ("set $device getConfig")}
}
elsif($globalBtnLock ~~ /on/){
  {fhem("set $device regSet globalBtnLock off")}
  {fhem ("set $device getConfig")}
};
}
elsif($function eq "setTimeTable"){
my $room         =  AttrVal(shift, 'room', 'undef');
   $room         =~ s/\D//g;
my $climaControl = ("d_climaControl_".$room);

my $dayTemp           = ReadingsVal( $climaControl, "dayTemp"          , 21.0    );
my $nightTemp         = ReadingsVal( $climaControl, "nightTemp"        , 17.0    );
my $workday_am_start  = ReadingsVal( $climaControl, "workday_am_start" , "06:30" );
my $workday_am_end    = ReadingsVal( $climaControl, "workday_am_end"   , "18:00" );
my $workday_pm_start  = ReadingsVal( $climaControl, "workday_pm_start" , "24:00" );
my $workday_pm_end    = ReadingsVal( $climaControl, "workday_pm_end"   , "24:00" );
my $saturday_am_start = ReadingsVal( $climaControl, "saturday_am_start", "06:30" );
my $saturday_am_end   = ReadingsVal( $climaControl, "saturday_am_end"  , "12:00" );
my $saturday_pm_start = ReadingsVal( $climaControl, "saturday_pm_start", "24:00" );
my $saturday_pm_end   = ReadingsVal( $climaControl, "saturday_pm_end"  , "24:00" );
my $sunday_am_start   = ReadingsVal( $climaControl, "sunday_am_start"  , "24:00" );
my $sunday_am_end     = ReadingsVal( $climaControl, "sunday_am_end"    , "24:00" );
my $sunday_pm_start   = ReadingsVal( $climaControl, "sunday_pm_start"  , "24:00" );
my $sunday_pm_end     = ReadingsVal( $climaControl, "sunday_pm_end"    , "24:00" );

{fhem("set $device tempListMon prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListTue prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListWed prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListThu prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListFri prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListSat prep $saturday_am_start $nightTemp $saturday_am_end $dayTemp $saturday_pm_start $nightTemp $saturday_pm_end $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListSun exec $sunday_am_start   $nightTemp $sunday_am_end   $dayTemp $sunday_pm_start   $nightTemp $sunday_pm_end   $dayTemp 24:00 $nightTemp")};
}
}

Nun noch die Label im d_label erzeugen

set d_Label Heizung Heizung
set d_Label Temperatur Temperatur
set d_Label Status Status
set d_Label Werktag Werktag
set d_Label Samstag Samstag
set d_Label Sonntag Sonntag

Und schon ist alles geschehen :)
Es ist zu beachten, dass bei uns alle Raume nummeriert sind und sich diese Nummerierung auch in den d_climaControl devices wieder findet, sollten bei dir keine Nummern in den Räumen vorkommen musst du den sub makefine auch noch anpassen, aber musst du eh, da du andere Thermostate hast.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 04 November 2014, 20:10:08
Wow, das ging aber fix und umfänglich - DANKE!

Ich werd's mir jetzt nach und nach Mal reinziehen und schauen was ich davon umbauen muss, damit's mit meinen Max! Thermostaten funktioniert.

Vielen Dank nochmals - wenn ich Fragen habe, dann würde ich mich hier wieder melden.

Grüße,
Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Peter_64 am 05 November 2014, 16:02:55
Hallo Igami,
habe auch mal versucht das ganze zum laufen zu bringen, irgend was passt nicht. Habe einen HM-CC-RT-DN Regler, der sich über FHEM steuern lässt. Wie ist das mit den Räumen und den Nummern gemeint ! Muss ich mein Devices_clima irgend wo angeben oder sollte das autom. mit dem Code (my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)')) eingelesen werden.

Hier mein Device noch

CUL_HM_HM_CC_RT_DN_2B8D64_Clima ist keinem Raum zugeteilt, könnte es daran liegen ?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 05 November 2014, 21:55:29
Hallo Peter,

hast du in der readingsgroup die zweite Zeile in der DEF?

Die Ansicht wird bei uns in der Firma eingesetzt, da haben wir entsprechend viele Devices, wie auf dem Screenshot zu sehen. Die Räume haben neben den Namen auch Nummern. Nach denen orientiere ich mich immer. Die Dummys zum Wochenplan setzen heißen also für den Raum
1.1.050:RoterSalon
d_climaControl_11050
Die Nummer ziehe ich mir dabei automatisch aus dem Raumnamen, wenn du keine Nummern in den Raumnamen hast, weil du nur 'Küche', 'Bad', etc hast, dann wird er die nicht anlegen, sofern du nicht die myUtils umschreibst.
Aber ich werde das bei mir demnächst auch zu Hause einsetzten, da muss ich dann eh noch dran rum schreiben.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: justme1968 am 05 November 2014, 22:37:00
wenn du so weit bist wäre es schön das ganze im wiki zu haben :)

gruss
  andre
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 06 November 2014, 05:35:37
Aye!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Peter_64 am 06 November 2014, 11:30:42
Hallo Igami,
besten Dank für die Info, dann werd ich mal warten bis Du soweit bist

Gruß


Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 06 November 2014, 12:02:11
Aber warum denn das? Ein bisschen umschreiben sollte doch nicht so schwer sein ;)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 09 November 2014, 20:52:49
Igami,

ich hätte da noch ein paar Fragen bezüglich des Codings, das du mir zur Verfügung gestellt hast.

Zum einen wegen der Definition von d_Label. Ich habe dies hier in meiner fhem.cfg (verkürzt):
define d_Label dummy
set d_Label Heizung Heizung
set d_Label Temperatur Temperatur
set d_Label Status Status
set d_Label Montag Montag

und zusätzlich, ebenfalls in der fhem.cfg (verkürzt):
define rg_heizungswerte2 readingsGroup <%sani_heating>,Heizung@d_Label,<|>,Temperatur@d_Label,<|>,Status@d_Label,<|>,<Wochenplan>,<|>,
Nur steht bei mir, wenn ich die readingsGroup anzeigen lasse, kein Text zwischen den | Zeichen. Wo hast du das Dummy Label definiert?

Dann noch eine Frage zum Ausschnitt aus der ersten Zeile deiner readingsGroup:
,<Kommando>\
(CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima


Das bedeutet doch eigentlich, dass alle Geräte des CULs mit dem Namen CUL_HM und vom Gerätetyp/-namen(?): HM_CC_RT_DN_ angezeigt werden?
Die Frage die sich mir zum einen hier stellt, nach CUL_HM steht noch ein Unterstrich: CUL_HM_, mein CUL für die Max! Thermostatet lauten schlichtweg auf CUL_MAX. Ich gehe davon aus, dass dies die Bezeichnung ist, die ich an dieser Stelle (ohen Unterstrich?) verwenden muss.

Gehe ich richtig davon aus, dass deine Geräte mit dem Namen HM_CC_RT_DN_ beginnen. Was bedeuten dann die vielen Punkte? Das sind meines Wissen RegEx Wildcards, oder? Damit haben deine Gerätenamen wohl noch 6 bzw. 10 folgende Buchstaben und enden jeweils auf _Clima. Stimmts?

Gleiches gilt dann wohl auch für das folgende Coding (Ausschnitt):

sub makefine{
#d_climaControl definieren und Initialisiern
my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)'));


Die letzte Zeile, nehme ich an, sucht sich zum CUL die entsprechenden Devices die auf den Namen HM_CC_RT_DN_......_Clima bzw. HM_CC_RT_DN_.........._Clima und dk_....._. lauten. Liege ich mit meiner Vermutung richtig?

Vielleicht wird es einfacher zu verstehen, wenn du mir mal zwei dieser Geräte Definitionen, die mit HM_CC_RT und dk_ beginnen, hier reinstellst?

Wäre prima, wenn du meine bisherigen Fragen beantworten könntest.

Edit: Ach ja noch eine Frage: die room Attribute enthalten bei dir auch nur Ziffern und keine anderweitigen Zeichen, also Buchstaben, damit du dir bspw. mit der folgenden Zeile
my $room = AttrVal($device, 'room', 'undef'); die korrekte Ziffer bersorgen kannst?

Danke,
Michael

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 09 November 2014, 21:02:16
Hi Michael,

durch

define ntfy_setreading notify d_.* {\
if(\
($EVENT ~~ / /)\
and\
($EVENT !~ /: /)\
)\
{fhem("setreading $NAME $EVENT")}\
}
attr ntfy_setreading group Dummy
attr ntfy_setreading icon audio_mic
attr ntfy_setreading room Meta

werden die Labels einfach mit set d_Label <Labelname> <Labelvalue> erzeugt.

(CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima
Ist nur für den Namen, Haben das | steht für ein or, der . für ein Zeichen, also
müssen die mit CUL_HM_ anfangen oder eben nix und danach kommt HM_CC_RT_DN_ gefolgt von 6 oder 10 Zeichen und endet auf _Clima. Ich weiß nicht mehr genau woran es liegt, dass wir so viele unterschiedlich Namen haben, ober ich da mal manuell was geänder habe oder im autocreate was verändert wurde.

beim makefine kommt das dk_....._. noch von unserer Klimaanlage, hat keine Bewandnis für dich.

Ich kann morgen mal Verschiedene Namen posten. Komme grad nicht an die config.

Grüße
Igami

PS: wiki Account ist schon beantragt
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 09 November 2014, 23:27:15
Hallo!
Ich habe versucht das Ganze für mich anzupassen, es hakt bei mir noch ein bischen s. Screenshot. Habe auch die CUL_HM_HM_CC_RT_DN Regler.
Meine Heizungsregler heissen z.B. 0.10.10_Thermostat_Flur (also als Alias). Sind alle in der Gruppe heizkoerper.
Leider bekomme ich die Namen nicht angezeigt. Die Dropdowns hinten gehen auch nicht.

Ich hab noch ein paar alte CUL_HM_HM_CC_TC Regler, bekommt man die ohne größere Anpassungen dazu?
Ich weiss nicht genau wie ich den Syntax machen soll dass er nach CUL_HM_HM_CC_RT_DN und nach CUL_HM_HM_CC_TC sucht.
Und würden das dann prinzipiell ohne größere Anpassungen mit den TCs gehen?

Danke für die tolle Arbeit!
Zentis
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 10 November 2014, 21:47:17
Igami,

ich bekomme leider immer noch keine Überschriften in der readingsGroup. Momentan habe ich diese Zeilen *vor* der Definition meiner readingsGoup in der fhem.cfg stehen:
define d_Label dummy

define not.setreading notify d_.* {\
if(\
($EVENT ~~ / /)\
and\
($EVENT !~ /: /)\
)\
{fhem("setreading $NAME $EVENT")}\
}

attr not.setreading group Dummy
attr not.setreading icon audio_mic
attr not.setreading room Meta

define not.rg notify not.rg {rg_heizung($EVENT)}
attr not.rg group readingsGroup
attr not.rg icon audio_mic
attr not.rg room Meta


set d_Label Heizung Heizung
set d_Label Temperatur Temperatur
set d_Label Status Status
set d_Label Montag Montag
set d_Label Dienstag Dienstag
set d_Label Mittwoch Mittwoch
set d_Label Donnerstag Donnerstag
set d_Label Freitag Freitag
set d_Label Samstag Samstag
set d_Label Sonntag Sonntag

Nur das Ganze wird irgendwie nicht durchlaufen.

Wenn ich hingegen manuell
Zitatset d_Label Heizung Heizung
eingebe, dann bekomme ich diese Überschrift für die Spalte Heizung in der readingsGroup angezeigt.

Wo genau hast du welche Teile deines Codings eingefügt. In der fhem.cfg?

Ein Teil kommt in die 99_MyUtils.cfg, das ist mir klar. Wobei mir aber auch hier noch nicht so ganz klar ist, wo und wann dieses Sub hier aufgerufen wird:
sub makefine{
#d_climaControl definieren und Initialisiern
my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)'));

foreach my $device (@devices){

Im Init-Teil der 99_MyUtils.pm?

Grüße,
Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 11 November 2014, 05:21:02
@Zentis: um nach CUL_HM_HM_CC_RT_DN und nach CUL_HM_HM_CC_TC zu suchen musst du

CUL_HM_HM_CC_(RT_DN|TC)

angeben.

@Roaster: die ganzen set d_Label Befehle müssen von Hand aufgerufen werden, eben so das {makefine} (siehe http://forum.fhem.de/index.php/topic,28329.msg212085.html#msg212085 (http://forum.fhem.de/index.php/topic,28329.msg212085.html#msg212085))
Ich habe das notify ganz normal mit define angelegt, allerdings mache ich das immer erst nur leer und bearbeite es dann in DEF.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 11 November 2014, 15:43:55
@Igami: danke für den Syntax!
kannst Du noch mal auf ein paar Randbedingungen eingehen?
Müssen die Regler in diesem Raum "Vorgaben" sein damit es funktioniert?
Ich habe verstanden, daß Du eine Nummer suchst, reicht da eine Nummer im Alias des Reglers?
Oder ein Raum / Gruppe mit der Nummer in der die Regler sind?
Ist das Format der Nummer egal oder muss ich das wenn ich nur 2-stellig bin anpassen?

Und dann alles manuell eingeben und nicht einfach in die fhem.config reinkopieren?!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 11 November 2014, 17:24:11
Zitat von: zentis666 am 11 November 2014, 15:43:55
Müssen die Regler in diesem Raum "Vorgaben" sein damit es funktioniert?
Nein, ich habe nur im Raum Vorgaben stehen nur Vorgaben für alle Devices drin, Icon, Group, etc. Und eben auch ein climaControl in dem die setList Werte stehen.

Zitat von: zentis666 am 11 November 2014, 15:43:55
Ich habe verstanden, daß Du eine Nummer suchst, reicht da eine Nummer im Alias des Reglers?
Oder ein Raum / Gruppe mit der Nummer in der die Regler sind?
Ist das Format der Nummer egal oder muss ich das wenn ich nur 2-stellig bin anpassen?
Es muss eine Nummer im Attribut room sein, sonst wird für alle Thermostate nur ein climaControl erzeugt.

Zitat von: zentis666 am 11 November 2014, 15:43:55
Und dann alles manuell eingeben und nicht einfach in die fhem.config reinkopieren?!
Alles manuell eingeben, ich halte auch nix davon die fhem.cfg direkt zu bearbeiten ;)
Allerding definiere ich mir die ganzen Sachen immer erst "leer" z.B.

define rg_42 readingsgroup <>

und editiere die dann ganz bequem über das DEF Feld.

Mir ist heute aufgefallen, dass ich aber noch einen Bock drin habe, ich habe einmal weekday und einmal workday verwendet, das müsste noch angepasst werden. Ich werde versuchen bald möglich den wiki Eintrag zu verfassen, sobald der Account freigeschaltet ist.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 11 November 2014, 21:44:09
Igami,

was genau macht diese Zeile hier
return InternalVal($device,"device","device error");
aus dem Sub:
sub rg_heizung($){
    my @input    = split(/[§\s]+/,shift);
    my $device   = $input[0];
    my $function = $input[1];
   
    Log 1, "rg_heizung (init), Device: $device, Function: $function";
   
    if($function eq "clima"){
        my $room =  AttrVal($device, 'room', 'undef');
        $room =~ s/\D//g;

        Log 1, "rg_heizung (clima), Room: $room";       
       
        return(("d_climaControl_".$room));
    }
    elsif($function eq "device"){
        return InternalVal($device,"device","device error");


Dies wird offensichtlich in der readingsGroup hier z.B. aufgerufen:
(CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima:battery@{rg($DEVICE."§device")}

Ich habe für meine Max! Thermostate Ähnliches probiert, aber ich bekomme immer nur "device error" zurück. Mein Coding:
Heizung(Eltern|):battery@{rg_heizung($DEVICE."§device")}
Ich habe den Eindruck, dass ich die interne Variable "device" bei meinen Geräten nicht habe. Wenn ich das richtig verstehe, da bin ich mir aber überhaupt nicht sicher, dann sollte da der Name des jeweiligen Geräts zurückgegeben werden.

List HeizungEltern gibt:
ZitatInternals:
   CFGFN      /opt/fhem/FHEM/obergeschoss.cfg
   DEF        HeatingThermostat 0c8125
   IODev      cm
   NAME       HeizungEltern
   NR         335
   STATE      18.0 °C
   TYPE       MAX
   addr       0c8125
   type       HeatingThermostat
   Readings:
     2014-11-09 21:15:55   TimeInformationHour 0
     2014-11-10 20:02:24   battery         ok
     2014-11-10 20:02:24   desiredTemperature 18.0
     2014-11-09 21:25:16   measurementOffset 0
     2014-11-10 20:02:24   mode            auto
     2014-11-11 19:35:18   msgcnt          8
     2014-11-10 20:02:24   state           18.0 °C
     2014-11-10 20:02:24   temperature     22.1
     2014-11-10 20:02:24   valveposition   0
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      cm
   alias      Heizung Eltern
   device_timeout 65
   group      Obergeschoss
   icon       sani_heating
   room       Eltern

Sollte ich hier eher
return InternalVal($device,"NAME","device error");
verwenden?

JAAA - ist wohl so, jetzt scheints zu laufen! Also mein Posting hiermit nur für andere die über das gleiche Problem stolpern  ;)

Grüße,
Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 12 November 2014, 05:09:25
Hallo Michael,

Zitat von: Roaster am 11 November 2014, 21:44:09
was genau macht diese Zeile hier
return InternalVal($device,"device","device error");
Bei Homematic gibt es nicht nur ein Device für das Thermostat, sondern noch 6 Channels. Am wichtigsten istder _Clima Channel, da dort alle Sets inkl. Wochenplan gemacht werden können, nur der Battery und Lock State stehen da nicht drin. Alle Channels haben aber ein Internal, der auf das Device verweist. Mehr macht die Zeile nicht. Aber das scheinst du ja nun auch schon selbst rausgefunden zu haben.
Es wäre schon, wenn du dann deinen ganzen Code hier auch mal posten könntest, dann hat man funktionierende Readingsgroups für MAX und HomeMatic

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 12 November 2014, 12:36:59
Igami,

:o so richtig verstanden habe ich deine Antwort mit den Channels jetzt nicht. Vor allem im Bezug auf die readingsGroup. Werde ich mit der Zeile
return InternalVal($device,"NAME","device error");
nun das richtige Ergebnis erhalten oder auch nicht?

Ich meine momentan gehe ich erst mal schrittweise vor und baue dein Coding nach. Gleich beim Auslesen des Batterie Status bin ich schon Mal hängen geblieben aber mit meinem Coding von oben, erhalte ich jetzt den Status der Batterie, sogar mit Symbol.


Wenn ich das komplett umgesetzt und ich auch die Zeiten mit den Wochentag mit drin habe, natürlich funktionsfähig, dann können wir dies gerne auch ins Wiki aufnehmen.


So richtig verstanden habe ich auch noch nicht, warum du die Überschriften der readingsGroup mit einem Notify setzten lässt. Ich meine, da könnte man diese ja gleich direkt an enstpr. Stelle eintragen. Ich habe dies trotzdem zur Übung übernommen, lasse aber mittels eines weiteren Notify die Werte des d_Labels direkt bei der Initialisierung von fhem setzen. Habe da ein enstprechendes Coding gefunden und es funktioniert perfekt. Ich muss somit keine manuellen Befehle absetzen.

Das Coding dazu habe ich gerade nicht zu Hand, werde es aber nachreichen.

Grüße,
Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 12 November 2014, 13:34:40
Hallo Michael,

kann es sein, dass bei MAX! das reading battery im gleichen Device steht? Dann brauchst du den Umweg gar nicht gehen.
Zu den HomeMatic hier noch was 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) vielleicht macht das die Sache verständlicher.

Das Notify brauche ich in erster Linie für die d_climaControl, damit die ausgewählten Readings die in setList stehen nicht nur in den state geschrieben werden.
Die Überschriften muss ich mir aus dem d_Label holen, da ich sie sonst glaube ich nicht mit colspan beeinflussen kann.

Es ist wahrscheinlich noch optimierungspotential vorhanden, aber es ist auch mehr oder weniger die erste readingsGroup die ich gebaut habe, ist allerdings schon ein bisschen gewachsen ;)

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 12 November 2014, 21:17:06
Igami,

ich versuche weiterhin fieberhaft deinen Code zu verstehen. Ist aber nicht sehr einfach, da ich erstens in Perl nicht gerade der Meister bin und zweitens ich die HM Geräte und deren Readings und Internals und v.a. deine Gerätenamen nicht kenne.

Ich hänge dieses Mal hier:

sub makefine{
#d_climaControl definieren und Initialisiern
my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)'));

foreach my $device (@devices){
my $room = AttrVal($device, 'room', 'undef');
if(!($room =~ /undef|CUL_HM/)){
  my $roomNumber = $room;
  $roomNumber =~ s/\D//g;


Ich gehe davon aus, dass my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)'));
sich alle Geräte sucht, die mit einem bestimmten Namen beginnen?

Ich habe dies an meine Gerätenamen angepaßt:
my @devices = split('\n', fhem('LIST (ht_(.*|))'));
und erhalte somit, wenn ich den LIST Befehl manuell absetze diese Zeilen zurück:
ZitatInternals:
   CFGFN      /opt/fhem/FHEM/obergeschoss.cfg
   DEF        HeatingThermostat 0c8125
   IODev      CUL_MAXX
   NAME       ht_HeizungEltern
   NR         335
   STATE      19.0 °C
   TYPE       MAX
   addr       0c8125
   type       HeatingThermostat
   Readings:
     2014-11-12 20:10:11   TimeInformationHour 0
     2014-11-12 20:34:52   battery         ok
     2014-11-12 20:34:52   desiredTemperature 19.0
     2014-11-12 20:32:59   desiredtemp_new 00
     2014-11-12 20:18:37   groupid         0
     2014-11-12 20:18:39   measurementOffset 0
     2014-11-12 20:34:52   mode            manual
     2014-11-12 20:32:59   msgcnt          3
     2014-11-12 20:34:52   state           19.0 °C
     2014-11-12 20:34:52   temperature     21.5
     2014-11-12 20:34:52   valveposition   0
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      CUL_MAXX
   alias      Heizung Eltern
   device_timeout 65
   group      Obergeschoss
   icon       sani_heating
   room       Eltern

Ich habe derzeit nur ein Max Thermostate am laufen, da erst in der Anfangsphase. Die oben gezeigten Zeilen wird wohl auch der Inhalt sein, den das Sub makefine erhält. Ich habe mir die Ausgabe per Log-Befehl in die fhem.log geschrieben, somit stimmt meine Annahme erst Mal.

Hiermit foreach my $device (@devices){ gehe ich davon aus, wird jede einzelnen Zeile, die der LIST Befehl zurückgegeben hat durchlaufen, richtig? Wenn ich mir $device ins Log ausgeben lasse, dann erhalte ich jede einzelne Zeile der Ausgabe des oben stehenden LIST Befehls.

So und jetzt kommt schon das erste Problem: my $room = AttrVal($device, 'room', 'undef'); Dies sollte wohl den Wert des Attributs room zurückliefern. In meinem Fall
Zitatroom       Eltern
den Wert Eltern. Tut es aber nicht, ich erhalte "undef" zurück. Ich verwende keine numerischen Zimmernummern, da ich denke, dass es auch so funktionieren sollte, wenn ich den Code $roomNumber =~ s/\D//g überall entferne.

Was macht diese Zeile genau:
if(!($room =~ /undef|CUL_HM/))
Filtert dieses Coding auch wieder auf den Gerätenamen, der mit CUL_HM beginnen muss? In meinem Fall wäre dieses Coding hier korrekt: if(!($room =~ /undef|ht_/)){, oder?

Die nachfolgenden Zeile interpretiere ich dann so:
  my $climaControl = ('d_climaControl_'.$roomNumber);
  if(!(defined($defs{$climaControl}))){

dass hiermit der Name der Dummy Geräte je HM Thermostat aufgebaut und geprüft wird, ob es dieses schon gibt, wenn nicht, dann wird es durch die später folgenden Zeile erst definiert.

Kannst du dir bitte das nochmals durchlesen, was ich geschrieben haben?

Danke,
Michael





Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 12 November 2014, 21:25:06
Igami,

noch ein kleiner Nachtrag: was macht diese Eintrag in der readingsGroup:impossible@{$DEVICE}? Einen Platzhalter definieren oder tatsächlich ein Attribut auslesen. Wenn Letzteres, was gibt es im Falle der HM Thermostate zurück? Ich habe solch ein Attribut leider nicht bei den Maxen:

ZitatInternals:
   CFGFN      /opt/fhem/FHEM/obergeschoss.cfg
   DEF        HeatingThermostat 0c8125
   IODev      CUL_MAXX
   NAME       ht_HeizungEltern
   NR         335
   STATE      19.0 °C
   TYPE       MAX
   addr       0c8125
   type       HeatingThermostat
   Readings:
     2014-11-12 20:10:11   TimeInformationHour 0
     2014-11-12 20:34:52   battery         ok
     2014-11-12 20:34:52   desiredTemperature 19.0
     2014-11-12 20:32:59   desiredtemp_new 00
     2014-11-12 20:18:37   groupid         0
     2014-11-12 20:18:39   measurementOffset 0
     2014-11-12 20:34:52   mode            manual
     2014-11-12 20:32:59   msgcnt          3
     2014-11-12 20:34:52   state           19.0 °C
     2014-11-12 20:34:52   temperature     21.5
     2014-11-12 20:34:52   valveposition   0
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      CUL_MAXX
   alias      Heizung Eltern
   device_timeout 65
   group      Obergeschoss
   icon       sani_heating
   room       Eltern

Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: dancatt am 12 November 2014, 22:41:08
Nabend,
sorry, aber soweit ich weiß wollte Igami das Thema ins Wiki stellen und hoffentlich auch inklusive Anleitung.
Ich würde warten bis es soweit ist.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 13 November 2014, 00:18:00
Igami
ich versuche gerade für HM-CC-RT und HM-CC-TC Kombi-Betrieb anzupassen.
Bei den TCs muss man ja den Climate-Kanal nehmen zur Steuerung der Temperaturen, ich hab das mit
CUL_HM_HM_CC_(RT_DN_......|........._Clima|TC_(......|.........)_Climate)
gelöst und den in die Reading-Gruppe und die sub makefine eingetragen.
Prinzipiell bekomme ich damit alle Heizungsregler.

Wenn ich das richtig sehe, fragst Du den Batteriestatus bei den RT-DNs im Clima Kanal ab.
Da hab ich bloss keinen Batteriestatus, die Dinger senden doch nur eine Spannung solange ok?! Hast Du das auf einen Status umgemappt?

Weiterhin bekomme ich keine Namen, keine Dropdowns und die Variable fhem_system_update werden als Klartext angezeigt und ich verstehe nicht warum.
Hab Deinen Code bis auf die Definition oben so gelassen wie er war, der Syntax der Räume mit den Reglern ist X.XX:<Name> (also X ist ne Zahl)
Hast Du noch eine Idee was fehlt?

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 13 November 2014, 05:44:21
Hallo Michael,
Zitat von: Roaster am 12 November 2014, 21:17:06
Ich gehe davon aus, dass my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)'));
sich alle Geräte sucht, die mit einem bestimmten Namen beginnen?
Das ist korrekt, habe mittlerweile aber auch eine elegantere Methode "gefunden"

my @devices = devspec2array('((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)');

Zitat von: Roaster am 12 November 2014, 21:17:06
Ich habe dies an meine Gerätenamen angepaßt:
my @devices = split('\n', fhem('LIST (ht_(.*|))'));
Bei dir sollte es dann mit

my @devices = devspec2array('ht.*');

funktionieren.
Zitat von: Roaster am 12 November 2014, 21:17:06
Hiermit foreach my $device (@devices){ gehe ich davon aus, wird jede einzelnen Zeile, die der LIST Befehl zurückgegeben hat durchlaufen, richtig? Wenn ich mir $device ins Log ausgeben lasse, dann erhalte ich jede einzelne Zeile der Ausgabe des oben stehenden LIST Befehls.
So und jetzt kommt schon das erste Problem: my $room = AttrVal($device, 'room', 'undef'); Dies sollte wohl den Wert des Attributs room zurückliefern. In meinem Fall  den Wert Eltern. Tut es aber nicht, ich erhalte "undef" zurück. Ich verwende keine numerischen Zimmernummern, da ich denke, dass es auch so funktionieren sollte, wenn ich den Code $roomNumber =~ s/\D//g überall entferne.
Soweit korrekt. Das hängt wieder mit dem LIST Befehl zusammen, wenn du nur ein Device auflistest werden alle Internals, Attribute, etc. mit aufgelistet und dann wieder beim Zeilenumbruch getrennt, sodass nur bei einer Zeile der wirkliche Raum zu finden ist
Zitat von: Roaster am 12 November 2014, 21:17:06
Was macht diese Zeile genau:
if(!($room =~ /undef|CUL_HM/))
Filtert dieses Coding auch wieder auf den Gerätenamen, der mit CUL_HM beginnen muss? In meinem Fall wäre dieses Coding hier korrekt: if(!($room =~ /undef|ht_/)){, oder?
es überprüft ob der Raum NICHT 'undef' oder 'CUL_HM' ist, dann wäre das device nämlich vom autocreate erstellt worden oder steht ohne Raum da.
Zitat von: Roaster am 12 November 2014, 21:25:06
impossible@{$DEVICE}? Einen Platzhalter definieren oder tatsächlich ein Attribut auslesen.
Das ist wohl eher ein Feature der readingsGroup, dass die Variable $DEVICE beim aufruf mit @ durch das andere device überschrieben wird. Damit wird sie einfach nur wieder auf das device welches am Anfang der Zeile vor dem Doppelpunkt steht zurück gesetzt. Das reading impossible gibt es also nicht ;)

Hallo Dancatt,
Zitat von: dancatt am 12 November 2014, 22:41:08
Nabend,
sorry, aber soweit ich weiß wollte Igami das Thema ins Wiki stellen und hoffentlich auch inklusive Anleitung.
Ich würde warten bis es soweit ist.
Dann würden ja die ganzen Probleme auch im Wiki Eintrag auftreten ;)

Hallo zentis666,
Zitat von: zentis666 am 13 November 2014, 00:18:00
Wenn ich das richtig sehe, fragst Du den Batteriestatus bei den RT-DNs im Clima Kanal ab.
Da hab ich bloss keinen Batteriestatus, die Dinger senden doch nur eine Spannung solange ok?! Hast Du das auf einen Status umgemappt?
Der Batterie, sowie der Lockstatus werden über @ abgefragt, also von einem anderen device. Ich habe bei mir aber überall das 'ok' bzw 'low' in den Devices.
Zitat von: zentis666 am 13 November 2014, 00:18:00
Weiterhin bekomme ich keine Namen, keine Dropdowns und die Variable fhem_system_update werden als Klartext angezeigt und ich verstehe nicht warum.
Der Alias-Teil sollte zu ?alias umgeschrieben werden, durch ? wird ein Attribut abgefragt, keine Dropdowns? Haben die climaControl denn das attribut setList mit den Werten? vor fhem_system_update muss ein % stehen, dann sollte er sich das Icon nehmen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Roaster am 13 November 2014, 20:11:27
Wow das war ja wieder ausführlich erklärt - Danke dafür. Einen Teil davon konnte ich prompt umsetzen, beim Teil mit den Dropdown-Werte habe ich das gleiche Problem wie zentis666

Zitat von: igami am 13 November 2014, 05:44:21
keine Dropdowns? Haben die climaControl denn das attribut setList mit den Werten? vor fhem_system_update muss ein % stehen, dann sollte er sich das Icon nehmen.

So sieht momentan das Dummy Device Vorgaben bei mir aus (am Ende gekürzt):
Internals:
   CFGFN      /opt/fhem/FHEM/ht_helper.cfg
   NAME       default_climaControl
   NR         377
   STATE      nightTemp 18.0
   TYPE       dummy
   Readings:
     2014-11-12 16:34:16   state           nightTemp 18.0
Attributes:
   comment    d_climaControl.* icon setList
   icon       Icon_Fisch
   room       Vorgaben
   setList    dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13


Ich habe deinen Code etwas umgeschrieben, mit dem Hinweis von deiner letzten Antwort, was die Funktion devspec2array() angeht und habe mir ein paar Einträge ins Log schreiben lassen:
    #Attribute aus Vorgaben übernehmen
    #my @defaults = split('\n', fhem('LIST room=Vorgaben'));
    my @defaults = devspec2array('default_climaControl');
   
    foreach my $default (@defaults){

      Log 1, "makefine (Vorgaben) default ".$default;
     
        my @attributes = split(' ', AttrVal($default,'comment','comment error'));
       
        Log 1, "makefine (Vorgaben) Attributes ".@attributes;
       
        my $wildcard =  $attributes[0];
       
        Log 1, "makefine (Vorgaben) attribute[0] ".$attributes[0];
        Log 1, "makefine (Vorgaben) wildcard ".$wildcard;
       
        splice(@attributes,0,1);
        foreach my $attribut (@attributes){
       
        Log 1, "makefine (Vorgaben) attribut ".$attribut;
           
            my $attrval = AttrVal($default, $attribut, 'attrval error');
           
            Log 1, "makefine (Vorgaben) attrval ".$attrval;
           
            fhem("attr $wildcard $attribut $attrval")
        }
    }


Log-Auszug hierzu:
Zitat2014.11.13 19:51:41 1: makefine (Vorgaben) Default: default_climaControl
2014.11.13 19:51:41 1: makefine (Vorgaben) Attributes 3
2014.11.13 19:51:41 1: makefine (Vorgaben) attribute[0] d_climaControl.*
2014.11.13 19:51:41 1: makefine (Vorgaben) wildcard d_climaControl.*
2014.11.13 19:51:41 1: makefine (Vorgaben) attribut icon
2014.11.13 19:51:41 1: makefine (Vorgaben) attrval Icon_Fisch
2014.11.13 19:51:41 1: makefine (Vorgaben) attribut setList
2014.11.13 19:51:41 1: makefine (Vorgaben) attrval dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,

Wenn ich dein Coding richtig interpretiere, und meine Änderungen dort korrekt sein, dann wird bei den Dummy Geräten, die je Thermostat erstellt werden auch sowohl das Attribut room, icon als auch ein setList gesetzt.

Das Ergebnis sieht bei mir dann so aus:
ZitatInternals:
   CFGFN
   NAME       d_climaControl_Eltern
   NR         468
   STATE      ???
   TYPE       dummy
   Readings:
     2014-11-13 19:51:40   dayTemp         21.0
     2014-11-13 19:51:41   friday_am_end   19:30
     2014-11-13 19:51:41   friday_am_start 18:00
     2014-11-13 19:51:41   friday_pm_end   24:00
     2014-11-13 19:51:41   friday_pm_start 24:00
     2014-11-13 19:51:40   monday_am_end   19:30
     2014-11-13 19:51:40   monday_am_start 18:00
     2014-11-13 19:51:40   monday_pm_end   24:00
     2014-11-13 19:51:40   monday_pm_start 24:00
     2014-11-13 19:51:40   nightTemp       17.0
     2014-11-13 19:51:40   saturday_am_end 19:30
     2014-11-13 19:51:40   saturday_am_start 18:00
     2014-11-13 19:51:40   saturday_pm_end 24:00
     2014-11-13 19:51:40   saturday_pm_start 24:00
     2014-11-13 19:51:40   sunday_am_end   19:30
     2014-11-13 19:51:40   sunday_am_start 18:00
     2014-11-13 19:51:40   sunday_pm_end   24:00
     2014-11-13 19:51:40   sunday_pm_start 24:00
     2014-11-13 19:51:41   thursday_am_end 19:30
     2014-11-13 19:51:40   thursday_am_start 18:00
     2014-11-13 19:51:41   thursday_pm_end 24:00
     2014-11-13 19:51:41   thursday_pm_start 24:00
     2014-11-13 19:51:40   tuesday_am_end  19:30
     2014-11-13 19:51:40   tuesday_am_start 18:00
     2014-11-13 19:51:40   tuesday_pm_end  24:00
     2014-11-13 19:51:40   tuesday_pm_start 24:00
     2014-11-13 19:51:40   wednesday_am_end 19:30
     2014-11-13 19:51:40   wednesday_am_start 18:00
     2014-11-13 19:51:40   wednesday_pm_end 24:00
     2014-11-13 19:51:40   wednesday_pm_start 24:00
Attributes:
   icon       Icon_Fisch
   room       Eltern
   setList    dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5

Meines Erachtens alles korrekt. Wie du sehen kannst habe ich den Wochentag durch Montag-Freitag ersetzt, sollte eigentlich keine Rolle spielen wird nur bei mir ein klein wenig unübersichtlicher.
Nur in der readingsGroup erscheint das Dropdown bei den jeweiligen Werten nicht. Es stehen statt dessen die jeweiligen Werte dort.

Das mit dem impossible@{$DEVICE} habe ich noch immer nicht so ganz verstanden. Was wird dann in der readingsGroup angezeigt?

Ach ja, ich habe ja erwähnt, dass ich die SETs für die d_Label nicht manuell aufrufe. Ich verwende dafür und für den Aufruf des Sub makefine das folgende Coding:
define Startsequenz notify global:INITIALIZED set d_Label Heizung Heizung;;set d_Label Temperatur Temperatur;;\
set d_Label Status Status;;set d_Label Montag Montag;;set d_Label Dienstag Dienstag;;\
set d_Label Mittwoch Mittwoch;;set d_Label Donnerstag Donnerstag;;set d_Label Freitag Freitag;;\
set d_Label Samstag Samstag;;set d_Label Sonntag Sonntag;;{fhem(makefine)}


Vielleicht kannst du es ja auch mal brauchen :)

Grüße,
Michael
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 13 November 2014, 20:58:29
Hallo igami,

Zitat von: igami am 13 November 2014, 05:44:21
Hallo zentis666,Der Batterie, sowie der Lockstatus werden über @ abgefragt, also von einem anderen device. Ich habe bei mir aber überall das 'ok' bzw 'low' in den Devices.Der Alias-Teil sollte zu ?alias umgeschrieben werden, durch ? wird ein Attribut abgefragt, keine Dropdowns? Haben die climaControl denn das attribut setList mit den Werten? vor fhem_system_update muss ein % stehen, dann sollte er sich das Icon nehmen.

Ich hab nochmal nachgesehen, in 2 meinen von meinen 3 RTs gibts tatsächlich nur eine Spannung, das dritte hat vor ein paar Minuten das erste Mal im logfile ein 'battery: ok' gesendet.
Liegt das an der Firmware? Ich hatte bis gestern die 1.0 und seit gestern abend die 1.4.
Mit der 1.0er hab ich seit 1.1.2014 bis gestern kein einziges 'battery: ok' bekommen. Das hat nun auch das Batterie-Icon (Device 2,3,4 aus dem ersten Bild sind RTs, der Rest sind TCs)
Wie oft habt Ihr das 'battery: ok' im log? Kommt das evtl. nur alle 24h?
Vielleicht kann jemand bestätigen, daß das Firmware-abhängig ist?!

Vor den Variablen steht alles so wie es soll denke ich:
<>,Heizung@d_Label,<|>,Temperatur@d_Label,<|>,Status@d_Label,<|>,<Wochenplan>,<|>,Werktag@d_Label,<|>,Samstag@d_Label,<|>,Sonntag@d_Label,<|>,<Kommando>
(CUL_HM_|)HM_CC_(RT_DN_(......|.........)_Clima|TC_(......|.........)_Climate):battery@{rg($DEVICE."§device")},impossible@{$DEVICE},alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-globalBtnLock@{rg($DEVICE."§device")},<|>,<Vormittag>,<|>,weekday_am_start@{rg($DEVICE."§clima")},weekday_am_end@{rg($DEVICE."§clima")},<|>,saturday_am_start@{rg($DEVICE."§clima")},saturday_am_end@{rg($DEVICE."§clima")},<|>,sunday_am_start@{rg($DEVICE."§clima")},sunday_am_end@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,ValvePosition,<|>,<Nachmittag>,<|>,weekday_pm_start@{rg($DEVICE."§clima")},weekday_pm_end@{rg($DEVICE."§clima")},<|>,saturday_pm_start@{rg($DEVICE."§clima")},saturday_pm_end@{rg($DEVICE."§clima")},<|>,sunday_pm_start@{rg($DEVICE."§clima")},sunday_pm_end@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>


Die climaControl sieht m.M. gut aus, s. Bild.

An den Alias-Teil mache ich mich mal heute abend...

Danke für Deine Hilfe!
Gruß
zentis666
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 14 November 2014, 05:54:52
Zitat von: Roaster am 13 November 2014, 20:11:27
Das mit dem impossible@{$DEVICE} habe ich noch immer nicht so ganz verstanden. Was wird dann in der readingsGroup angezeigt?
es wird nichts in der readingsGroup angezeigt, da es das reading ja nicht gibt.
Hier ein bespiel zum verdeutlichen: Es geht nur um die Variable $DEVICE

define d_1 dummy
define d_2 dummy
define rg_dummy readingsgroup d_1:+NAME,+NAME@d_2,<{$DEVICE}> d_1:+NAME,+NAME@d_2,impossible@$DEVICE,<{$DEVICE}>

als letztes lasse ich mir die Variable $DEVICE anzeigen, ohne das unmögliche Reading ist es d_2, wie vorher beim @ angegeben, mit dem ünmöglichen Reading ist es das ursprüngliche Device d_1. Vielleicht wäre ein reset@{$DEVICE} sprechender.

Zitat von: Roaster am 13 November 2014, 20:11:27
Ach ja, ich habe ja erwähnt, dass ich die SETs für die d_Label nicht manuell aufrufe. Ich verwende dafür und für den Aufruf des Sub makefine das folgende Coding:
define Startsequenz notify global:INITIALIZED set d_Label Heizung Heizung;;set d_Label Temperatur Temperatur;;\
set d_Label Status Status;;set d_Label Montag Montag;;set d_Label Dienstag Dienstag;;\
set d_Label Mittwoch Mittwoch;;set d_Label Donnerstag Donnerstag;;set d_Label Freitag Freitag;;\
set d_Label Samstag Samstag;;set d_Label Sonntag Sonntag;;{fhem(makefine)}


Vielleicht kannst du es ja auch mal brauchen :)
Dann kannst du es auch mit setreading machen, statt mit set, aber warum ein notify? Ich brauche die Labels doch nur einmal anzulegen, sie verschwinden ja nicht wieder ;)

Zitat von: zentis666 am 13 November 2014, 20:58:29
Liegt das an der Firmware? Ich hatte bis gestern die 1.0 und seit gestern abend die 1.4.
Mit der 1.0er hab ich seit 1.1.2014 bis gestern kein einziges 'battery: ok' bekommen. Das hat nun auch das Batterie-Icon (Device 2,3,4 aus dem ersten Bild sind RTs, der Rest sind TCs)
Wie oft habt Ihr das 'battery: ok' im log? Kommt das evtl. nur alle 24h?
Vielleicht kann jemand bestätigen, daß das Firmware-abhängig ist?!
dazu gab es letztens einen Thread, den ich aber nicht verfolgt habe.

Zitat von: zentis666 am 13 November 2014, 20:58:29
An den Alias-Teil mache ich mich mal heute abend...
einfach ein ? vor alias setzten, dann wird das attribut alias ausgelesen ;)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 17 November 2014, 23:33:41
igami:
Ich habs immer noch nicht komplett hinbekommen, aber zumindest die Batterie-Symbole kommen jetzt alle. Muss man einmal einen set Befehl schicken dann gehts.
Wenn ich den {makefine} aufrufe bekomme ich im logfile:

2014.11.17 23:06:51 3: LIST ((CUL_HM_|)HM_CC_(RT_DN_(......|.........)_Clima|TC_(......|.........)_Climate)|dk_....._.) : CUL_HM_HM_CC_RT_DN_xxxxxx_Clima
CUL_HM_HM_CC_RT_DN_xxxxxx_Clima
CUL_HM_HM_CC_RT_DN_xxxxxx_Clima
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate

2014.11.17 23:06:51 1: makefine (Vorgaben) default default_climaControl
2014.11.17 23:06:51 1: makefine (Vorgaben) Attributes 3
2014.11.17 23:06:51 1: makefine (Vorgaben) attribute[0] d_climaControl_(.|.....)
2014.11.17 23:06:51 1: makefine (Vorgaben) wildcard d_climaControl_(.|.....)
2014.11.17 23:06:51 1: makefine (Vorgaben) attribut icon
2014.11.17 23:06:51 1: makefine (Vorgaben) attrval Icon_Fisch
2014.11.17 23:06:51 3: Please define d_climaControl_(.|.....) first
2014.11.17 23:06:51 3: attr d_climaControl_(.|.....) icon Icon_Fisch : Please define d_climaControl_(.|.....) first
2014.11.17 23:06:51 1: makefine (Vorgaben) attribut setList
2014.11.17 23:06:51 1: makefine (Vorgaben) attrval dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 weekday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00
2014.11.17 23:06:51 3: Please define d_climaControl_(.|.....) first
2014.11.17 23:06:51 3: attr d_climaControl_(.|.....) setList dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 weekday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 : Please define d_climaControl_(.|.....) first
2014.11.17 23:06:51 3: Please define d_climaControl_(.|.....) first
2014.11.17 23:06:51 3: attr d_climaControl_(.|.....) icon Icon_Fisch : Please define d_climaControl_(.|.....) first
2014.11.17 23:06:51 3: Please define d_climaControl_(.|.....) first
2014.11.17 23:06:51 3: attr d_climaControl_(.|.....) setList dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 weekday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 : Please define d_climaControl_(.|.....) first
2014.11.17 23:06:51 3: LIST (CUL_HM_|)HM_CC_(RT_DN_(......|.........)_Clima|TC_(......|.........)_Climate) : CUL_HM_HM_CC_RT_DN_xxxxxx_Clima
CUL_HM_HM_CC_RT_DN_xxxxxx_Clima
CUL_HM_HM_CC_RT_DN_xxxxxx_Clima
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate
CUL_HM_HM_CC_TC_xxxxxx_Climate


Liegt das an meinen Raumnamen? Ich versteh es noch nicht.

Den Alias hab ich nun in der myutils auf
#alias als Reading hinzufügen
my @climas = split('\n', fhem('LIST (CUL_HM_|)HM_CC_(RT_DN_(......|.........)_Clima|TC_(......|.........)_Climate)'));

foreach my $clima (@climas){
  my $alias = AttrVal($clima,'%alias',$clima);
  fhem("setreading $clima %alias $alias")
}
}

umgestellt, geht aber trotzdem nicht... hattest Du das so gemeint?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 18 November 2014, 05:27:10
Hallo zentis666,

aktuell bin ich dabei den wiki Artikel zu schreiben, je nach Zeit wird er voraussichtlich nächste Woche fertig sein, da ich mich erst noch in die Syntax einlesen muss.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 23 November 2014, 17:53:40
Hallo zusammen,

Artikel ist fertig, bitte mal ausprobieren ob alles verständlich ist und funktioniert.
http://www.fhemwiki.de/wiki/ReadingsGroup#Heizungswerte.2C_Status.2C_Steuerung_und_Wochenprofil (http://www.fhemwiki.de/wiki/ReadingsGroup#Heizungswerte.2C_Status.2C_Steuerung_und_Wochenprofil)

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 23 November 2014, 22:00:30
Hallo igami,
danke für den Artikel, kämpfe mich gerade durch ;-)
Hab die "Reste" meiner bisherigen Versuche entfernt und nochmal neu angefangen.

2 Befehle aus Deinem Wiki Artikel bringen fhem zum Abstürzen:

Bei
attr rg_thermostate nameStyle{($READING eq "Soll" ||$READING eq "Tag" ||$READING eq "%getConfig" ||$READING eq "Ist" ||$READING eq "Nacht" ||$READING eq "Ventil" )?'style="text-align:right"' :($READING eq "%burstXmit" )?'style="text-align:center"' :'style=""'}

kommt nach Absturz im log
2014.11.23 21:39:21 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 5842) line 1.
2014.11.23 21:39:33 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 5905) line 1.
2014.11.23 21:39:57 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 5968) line 1.


und  bei
attr rg_thermostate valueStyle{($READING eq "Heizung" ||$READING eq "Temperatur" ||$READING eq "Status" ||$READING eq "Wochenplan" ||$READING eq "Werktag" ||$READING eq "Samstag" ||$READING eq "Sonntag" )?'style="font-size:20px;;color:RoyalBlue;;text-align:center"' :($READING eq "alias" )?'style="font-size:11px;;font-weight:bold;;text-align:left"' :($READING eq "ValvePosition" &&$VALUE > 40 )?'style="font-weight:bold;;color:Orange;;text-align:left"' :($READING eq "desired-temp" ||$READING eq "measured-temp" )?'style="text-align:center"' :($READING eq "state" ||$READING eq "ValvePosition" )?'style="text-align:left"' :'style="text-align:right"'}

kommt


2014.11.23 21:44:53 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 276) line 1.
2014.11.23 21:44:53 1: PERL WARNING: Use of uninitialized value $htmlTxt in pattern match (m//) at ./FHEM/33_readingsGroup.pm line 676.
2014.11.23 21:49:36 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 425) line 1.
2014.11.23 21:51:09 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 548) line 1.


Ein Update hab ich heute gemacht ...

Was kann ich tun?

Grüße
Zentis666
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: cruser1800 am 23 November 2014, 22:10:07
Zitat von: igami am 23 November 2014, 17:53:40
Hallo zusammen,

Artikel ist fertig, bitte mal ausprobieren ob alles verständlich ist und funktioniert.
http://www.fhemwiki.de/wiki/ReadingsGroup#Heizungswerte.2C_Status.2C_Steuerung_und_Wochenprofil (http://www.fhemwiki.de/wiki/ReadingsGroup#Heizungswerte.2C_Status.2C_Steuerung_und_Wochenprofil)

Grüße
Igami

Hallo Igami,

Danke für das Wiki. im Attribut ValueIcon ist vorne eine Dopplung enthalten:

attr rg_thermostate valueIcon

Weiter so!

Gruß Lutz
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: cruser1800 am 23 November 2014, 22:13:04
@zentis666

Ist bei mir auch passiert! Lies mein vorhergehenden Post und füge die Attribute über die Oberfläche ein. Also nur die Inhalte der Atribute Kopieren und mit der Oberfläche einfügen.

Klappt sehr gut!

Gruß Lutz
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 23 November 2014, 22:17:56
Zitat von: cruser1800 am 23 November 2014, 22:13:04
@zentis666

Ist bei mir auch passiert! Lies mein vorhergehenden Post und füge die Attribute über die Oberfläche ein. Also nur die Inhalte der Atribute Kopieren und mit der Oberfläche einfügen.

Klappt sehr gut!

Gruß Lutz

Danke Lutz,

habs gerade erst gesehen (nebenbei noch Update gemacht weil ein readingsgroup Update drin war ;-)
hinter namestyle / valuestyle fehlt ein Leerzeichen, hatte ich beim ersten mal übersehen.
Hab alle Attribute per WebIf neu gesetzt.
Jetzt stürzt nichts ab aber die Dropdowns hab ich nur vorne, in der Planung hinten nicht....
War in der "alten" Version im Thread auch so, woran kann das liegen?

Gruß
Zentis666
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: cruser1800 am 23 November 2014, 22:43:54
Hallo zentis666,

ich habe auch nur ein Dropdouwn. Wird bei mir aber wahrscheinlich an der Namensgebung/Attribut Raum liegen. Muss ich noch ein bisschen probieren.

Gruß Lutz
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: cruser1800 am 23 November 2014, 22:56:03
Hallo zentis666,

habe noch etwas gefunden hast du das userattr wildcard in allen Devices vorhanden?

Gruß
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 23 November 2014, 23:00:12
nö, wie muss das denn aussehen? hab ich noch nirgends gesehen ???
Gruß
zentis666
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: cruser1800 am 23 November 2014, 23:06:29
Bin auch noch am probieren! Bei mir habe ich folgende Fehlermeldung bei {makefine}

2014.11.23 23:00:48 3: Please define wildcard first
2014.11.23 23:00:48 3: attr wildcard error setList


Im Wiki findet man in den default Devices

attr default_CUL_HM_HM_CC_RT_DN_Clima userattr attributes wildcard

Daher geh ich davon aus, dass hier irgendwo der Fehler her kommt. Werde noch mal den Thread durcharbeiten.

Gruß
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 24 November 2014, 05:14:36
Hallo Zentis,
da fehlt ein Leerzeichen zwischen dem Attribut Namen und der {
Zitat von: zentis666 am 23 November 2014, 22:00:30
Bei
attr rg_thermostate nameStyle{($READING eq "...
und  bei
attr rg_thermostate valueStyle{($READING eq "Heizung" ||$READ...

Hallo Lutz,
Zitat von: cruser1800 am 23 November 2014, 22:10:07
Danke für das Wiki. im Attribut ValueIcon ist vorne eine Dopplung enthalten:
wird auch geändert

Zitat von: cruser1800 am 23 November 2014, 23:06:29
Im Wiki findet man in den default Devices
attr default_CUL_HM_HM_CC_RT_DN_Clima userattr attributes wildcard
An der Stelle muss ich den Artikel auch noch mal überarbeiten.
in attributes sollen dann durch Leerzeichen getrennt alle Attribute stehen die man übergeben möchte und in wildcard die wildcard von den Devices die angesprochen werden sollen, für die CC-RT-DN

attr default_CUL_HM_HM_CC_RT_DN_Clima wildcard CUL_HM_HM_CC_RT_DN_......_Clima

Beim default_climaControl fehlt das Attribut im Wiki jedoch

attr  default_climaControl wildcard d_climaControl.*


Änderungen werde ich heute Nachmittag machen.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Mirko815 am 24 November 2014, 17:05:29
Hallo zusammen,

ich hatte heute versucht, das "Codesnippet" bei mir zu impelemtieren.
Es scheiterte bereits an dem Reading Battery.
An meinem HM-CC-RT-DN gibt es kein Reading Battery (oder sehe ich es nur).
Hier ein Listing des Devices.

Internals:
   CFGFN
   DEF        2B3927
   HMLAN1_MSGCNT 67
   HMLAN1_RAWMSG E2B3927,0000,197A20FA,FF,FFCC,0A86102B39270000000AA8E30F0300
   HMLAN1_RSSI -52
   HMLAN1_TIME 2014-11-24 17:01:01
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     67
   NAME       CUL_HM_HM_CC_RT_DN_2B3927
   NR         346
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 CUL_HM_HM_CC_RT_DN_2B3927_Weather
   channel_02 CUL_HM_HM_CC_RT_DN_2B3927_Climate
   channel_03 CUL_HM_HM_CC_RT_DN_2B3927_WindowRec
   channel_04 CUL_HM_HM_CC_RT_DN_2B3927_Clima
   channel_05 CUL_HM_HM_CC_RT_DN_2B3927_ClimaTeam
   channel_06 CUL_HM_HM_CC_RT_DN_2B3927_remote
   lastMsg    No:0A - t:10 s:2B3927 d:000000 0AA8E30F0300
   protLastRcv 2014-11-24 17:01:01
   protSnd    58 last_at:2014-11-24 16:58:49
   protState  CMDs_done
   rssi_at_HMLAN1 avg:-56.91 min:-62 max:-52 lst:-52 cnt:67
   Readings:
     2014-11-24 16:53:13   Activity        alive
     2014-11-24 16:58:49   CommandAccepted yes
     2014-11-24 16:53:08   D-firmware      1.3
     2014-11-24 16:53:08   D-serialNr      LEQ0422976
     2014-11-24 16:53:10   PairedTo        0x272E59
     2014-11-24 16:53:10   R-backOnTime    10 s
     2014-11-24 16:53:10   R-btnLock       off
     2014-11-24 16:53:10   R-burstRx       on
     2014-11-24 16:53:10   R-cyclicInfoMsg on
     2014-11-24 16:53:10   R-cyclicInfoMsgDis 0
     2014-11-24 16:53:10   R-globalBtnLock off
     2014-11-24 16:53:10   R-localResDis   off
     2014-11-24 16:53:10   R-lowBatLimitRT 2.1 V
     2014-11-24 16:53:10   R-modusBtnLock  off
     2014-11-24 16:53:10   R-pairCentral   0x272E59
     2014-11-24 16:53:10   RegL_00:          01:01 02:01 09:01 0A:27 0B:2E 0C:59 0E:0A 0F:00  11:00 12:15 16:00 18:00 19:00 1A:00 00:00
     2014-11-24 16:56:35   RegL_07:
     2014-11-24 17:01:01   actuator        3
     2014-11-24 17:01:01   batteryLevel    3
     2014-11-24 17:01:01   desired-temp    21.0
     2014-11-24 17:01:01   measured-temp   22.7
     2014-11-24 16:58:50   state           CMDs_done
     2014-11-24 16:53:39   time-request    -

Ich weiß nicht, was ich noch tun kann, damit dieses Reading wieder auftaucht. Ich bin mir sicher, dass es schon da war. FHEM ist aktuell.
Device auch bereits zurück gesetzt und neu gepairt.
Vielen Dank bereits im Voraus für die Hilfe

Mirko
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 24 November 2014, 17:28:59
Hallo Mirko,

dazu gab es letztens einen Thread
http://forum.fhem.de/index.php?topic=26531.0 (http://forum.fhem.de/index.php?topic=26531.0)

Wobei in der wiki Version gar kein battery mehr gibt, aus genau dem Grund ;)

Hast du sonst noch Probleme oder ist etwas unklar? Ich würde sonst gleich noch die Wiki Artikel überarbeiten.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Mirko815 am 24 November 2014, 17:33:49
Danke für Deine superschnelle Antwort.
Momentan kämpfe ich (noch) gegen das gesamte FHEM.
Bei weiteren Problemen würde ich mich nochmals melden.

nochmals Vielen Dank

LG

Mirko
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Mirko815 am 28 November 2014, 17:15:25
Hallo Igami,

ich habe jetzt soweit die Heizungsregelung am Laufen.
Nur zwei Dinge sind noch "suboptimal".

Ich bekomme bei den Zeiträumen keine Auswahldialoge. Bei der Soll- und Isttemperatur schon.
Daraufhin habe ich alle Attribute entfernt. Eigentlich müsste doch dann der Name "workday..." dran stehen.
Steht aber nicht! Evtl. ist das das Problem und ich weiß nicht weiter.

Das andere Problem ist, dass FHEM jedes Mal abstürzt, wenn ich die Attribute NameStyle und ValueStyle einfüge.
FHEM ist aktuell.

Weißt Du eine Lösung für meine Probleme?

Hier noch mein List:
Internals:
   DEF        <>,Heizung@d_Label,<|>,Temperatur@d_Label,<|>,Status@d_Label,<|>,Wochenplan@d_Label,<|>,Werktag@d_Label,<|>,Samstag@d_Label,<|>,Sonntag@d_Label,<|>,<> .._Heizung_Clima:<>,?alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-globalBtnLock@{rg($DEVICE."§device")},<|>,Zeitraum1@d_Label,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,ValvePosition,<|>,Zeitraum2@d_Label,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>
   NAME       rg_thermostate
   NR         261
   NTFY_ORDER 50-rg_thermostate
   STATE      Initialized
   TYPE       readingsGroup
  Helper:
     DEF
     Commands:
       R-globalBtnLock trigger ntfy_rg $DEVICE globalBtnLock
       controlMode trigger ntfy_rg $DEVICE controlMode
       dayTemp    dayTemp:
       desired-temp desired-temp:
       nightTemp  nightTemp:
       rg_thermostate.burstXmit set $DEVICE burstXmit
       rg_thermostate.getConfig set $DEVICE getConfig
       rg_thermostate.system_fhem_update trigger ntfy_rg $DEVICE setTimeTable
       saturday_period_1_start saturday_period_1_start:
       saturday_period_1_stop saturday_period_1_stop:
       saturday_period_2_start saturday_period_2_start:
       saturday_period_2_stop saturday_period_2_stop:
       sunday_period_1_start sunday_period_1_start:
       sunday_period_1_stop sunday_period_1_stop:
       sunday_period_2_start sunday_period_2_start:
       sunday_period_2_stop sunday_period_2_stop:
       workday_period_1_start workday_period_1_start:
       workday_period_1_stop workday_period_1_stop:
       workday_period_2_start workday_period_2_start:
       workday_period_2_stop workday_period_2_stop:
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 28 November 2014, 17:17:52
Das Absturzthema hatten wir schon... Lies mal weiter oben... Es fehlen Leerstellen...
Die Dropdowns hinten hab ich auch noch nicht am Start... Kommen einfach nicht, keine Idee warum.
Gruß
Zentis666


Gesendet von iPhone mit Tapatalk
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 28 November 2014, 18:19:53
Ich gucke es mir gleich noch mal an, muss noch schauen ob das http://forum.fhem.de/index.php/topic,14425.msg223781.html#msg223781 (http://forum.fhem.de/index.php/topic,14425.msg223781.html#msg223781) hier noch ein Problem werden kann. Den Wiki Artikel muss ich auch noch updaten.

Grüße
Igami

Edit: Habe es auf meinem Test System noch mal neu gebaut, im Wiki haben sich noch ein paar Fehler eingeschlichen, z.B. werden '' ausgeblendet.

Hier nun ein List meiner rg, habe den d_Label nun auch komplett weg gelassen, geht auch so

   DEF        <>,<Heizung>,<|>,<Temperatur>,<|>,<Status>,<|>,<Wochenplan>,<|>,<Werktag>,<|>,<Samstag>,<|>,<Sonntag>,<|>,<>
CUL_HM_HM_CC_RT_DN_......_Clima:<>,?alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},reset@{$DEVICE},<|>,controlMode,R-globalBtnLock@{rg($DEVICE."§device")},reset@{$DEVICE},<|>,<Zeitraum&nbsp;1>,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},reset@{$DEVICE},<|>,<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,reset@{$DEVICE},<|>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE."§clima")},reset@{$DEVICE},<|>,<Ventil>,ValvePosition,<|>,<Zeitraum&nbsp;2>,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},reset@{$DEVICE},<|>,set@{rg($DEVICE."§device")},<%burstXmit>
   NAME       rg_thermostate
Attributes:
   commands   { 'desired-temp' => 'desired-temp:',  'dayTemp' => 'dayTemp:',  'controlMode' => 'trigger ntfy_rg $DEVICE controlMode',  'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock',  'workday_period_1_start' => 'workday_period_1_start:',  'workday_period_1_stop' => 'workday_period_1_stop:',  'saturday_period_1_start' => 'saturday_period_1_start:',  'saturday_period_1_stop' => 'saturday_period_1_stop:',  'sunday_period_1_start' => 'sunday_period_1_start:',  'sunday_period_1_stop' => 'sunday_period_1_stop:',  'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable',  'rg_thermostate.getConfig' => 'set $DEVICE getConfig',  'nightTemp' => 'nightTemp:',  'workday_period_2_start' => 'workday_period_2_start:',  'workday_period_2_stop' => 'workday_period_2_stop:',  'saturday_period_2_start' => 'saturday_period_2_start:',  'saturday_period_2_stop' => 'saturday_period_2_stop:',  'sunday_period_2_start' => 'sunday_period_2_start:',  'sunday_period_2_stop' => 'sunday_period_2_stop:',  'rg_thermostate.burstXmit' => 'set $DEVICE burstXmit' }
   mapping    { 'desired-temp' => '',  'dayTemp' => '',  'workday_period_1_start' => '',  'workday_period_1_stop' => '',  'saturday_period_1_start' => '',  'saturday_period_1_stop' => '',  'sunday_period_1_start' => '',  'sunday_period_1_stop' => '',  'nightTemp' => '',  'workday_period_2_start' => '',  'workday_period_2_stop' => '',  'saturday_period_2_start' => '',  'saturday_period_2_stop' => '',  'sunday_period_2_start' => '',  'sunday_period_2_stop' => '' }
   nameStyle  { ( $READING eq "Heizung"|| $READING eq "Temperatur"|| $READING eq "Status"|| $READING eq "Wochenplan"|| $READING eq "Werktag"|| $READING eq "Samstag"|| $READING eq "Sonntag"  )?'style="font-size:16px;;color:RoyalBlue;;text-align:center"' :( $READING eq "Soll"|| $READING eq "Tag"|| $READING eq "Zeitraum&nbsp;1"|| $READING eq "%getConfig"|| $READING eq "Ist"|| $READING eq "Nacht"|| $READING eq "Ventil"|| $READING eq "Zeitraum&nbsp;2" )?'style="text-align:right"' :( $READING eq "%burstXmit" )?'style="text-align:center"' :'style=""' }
   nonames    1
   room       Brücke
   valueColumns { 'Heizung' => 'colspan="2"',  'Temperatur' => 'colspan="4"',  'Status' => 'colspan="2"',  'Werktag' => 'colspan="2"',  'Samstag' => 'colspan="2"',  'Sonntag' => 'colspan="2"',  'alias' => 'colspan="2"' }
   valueFormat { 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
   valueIcon  { 'controlMode.auto' => 'sani_heating_automatic@green',  'controlMode.set_auto' => 'sani_heating_automatic@orange',  'controlMode.manual' => 'sani_heating_manual@red',  'controlMode.set_manual' => 'sani_heating_manual@orange',  'R-globalBtnLock.on' => 'secur_locked@green',  'R-globalBtnLock.on ' => 'secur_locked@green',  'R-globalBtnLock.set_on ' => 'secur_locked@orange',  'R-globalBtnLock.off' => 'secur_open@red',  'R-globalBtnLock.off ' => 'secur_open@red',  'R-globalBtnLock.set_off ' => 'secur_open@orange' }

Das Wiki Update muss ich nächste Woche machen, muss mich da noch mit der formatierung rumschlagen.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 03 Dezember 2014, 23:11:08
Hallo igami,
ich hab Deine letzte Definition nochmal testweise bei mir reingegeben,
die Temp-Listen Pulldowns kommen einfach nicht...
Ich bekomme allerdings noch einen Fehler wenn ich auf eine der Temp-Listen klicke die eigentlich Pulldown sein sollen:
unknown command .... try help
Das Command Attribut ist wie beschrieben drin...

Gruß
Zentis666
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 04 Dezember 2014, 16:23:11
Poste mal bitte ein list
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 05 Dezember 2014, 00:07:10
Hi!
Ich machs mal ausführlich, hab ja ein paar Mods drin wegen meiner Thermostate (Namen und die kennen keinen globalen Button Lock, will ich auch nicht sonst schimpft die bessere Hälfte ;-)

DEF
<>,Heizung@d_label,<|>,Temperatur@d_label,<|>,Status@d_label,<|>,Wochenplan@d_label,<|>,Werktag@d_label,<|>,Samstag@d_label,<|>,Sonntag@d_label,<|>,<> (CUL_HM_|)HM_CC_(RT_DN_......_Clima|TC_......_Climate):<>,?alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-btnLock@{rg($DEVICE."§device")},<|>,Zeitraum1@d_label,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,ValvePosition,<|>,Zeitraum2@d_label,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>

commands

{ 'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-BtnLock' => 'trigger ntfy_rg $DEVICE BtnLock', 'workday_period_1_start' => 'workday_period_1_start:', 'workday_period_1_stop' => 'workday_period_1_stop:', 'saturday_period_1_start' => 'saturday_period_1_start:', 'saturday_period_1_stop' => 'saturday_period_1_stop:', 'sunday_period_1_start' => 'sunday_period_1_start:', 'sunday_period_1_stop' => 'sunday_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'set $DEVICE getConfig', 'nightTemp' => 'nightTemp:', 'workday_period_2_start' => 'workday_period_2_start:', 'workday_period_2_stop' => 'workday_period_2_stop:', 'saturday_period_2_start' => 'saturday_period_2_start:', 'saturday_period_2_stop' => 'saturday_period_2_stop:', 'sunday_period_2_start' => 'sunday_period_2_start:', 'sunday_period_2_stop' => 'sunday_period_2_stop:', 'rg_thermostate.burstXmit' => 'set $DEVICE burstXmit' }

mapping
{ 'desired-temp' => , 'dayTemp' => , 'workday_period_1_start' => , 'workday_period_1_stop' => , 'saturday_period_1_start' => , 'saturday_period_1_stop' => , 'sunday_period_1_start' => , 'sunday_period_1_stop' => , 'nightTemp' => , 'workday_period_2_start' => , 'workday_period_2_stop' => , 'saturday_period_2_start' => , 'saturday_period_2_stop' => , 'sunday_period_2_start' => , 'sunday_period_2_stop' => }
nameStyle

{($READING eq "Soll" ||$READING eq "Tag" ||$READING eq "%getConfig" ||$READING eq "Ist" ||$READING eq "Nacht" ||$READING eq "Ventil" )?'style="text-align:right"' :($READING eq "%burstXmit" )?'style="text-align:center"' :'style=""'}

valueColumns

{ 'Heizung' => 'colspan="2"', 'Temperatur' => 'colspan="4"', 'Status' => 'colspan="2"', 'Werktag' => 'colspan="2"', 'Samstag' => 'colspan="2"', 'Sonntag' => 'colspan="2"', 'alias' => 'colspan="2"'}

valueFormat
{ 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
valueIcon

{ 'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-btnLock.on' => 'secur_locked@green', 'R-btnLock.on ' => 'secur_locked@green', 'R-btnLock.set_on ' => 'secur_locked@orange', 'R-btnLock.off' => 'secur_open@red', 'R-btnLock.off ' => 'secur_open@red', 'R-btnLock.set_off ' => 'secur_open@orange'}

valueStyle

{($READING eq "Heizung" ||$READING eq "Temperatur" ||$READING eq "Status" ||$READING eq "Wochenplan" ||$READING eq "Werktag" ||$READING eq "Samstag" ||$READING eq "Sonntag" )?'style="font-size:20px;;color:RoyalBlue;;text-align:center"' :($READING eq "alias" )?'style="font-size:11px;;font-weight:bold;;text-align:left"' :($READING eq "ValvePosition" &&$VALUE > 40 )?'style="font-weight:bold;;color:Orange;;text-align:left"' :($READING eq "desired-temp" ||$READING eq "measured-temp" )?'style="text-align:center"' :($READING eq "state" ||$READING eq "ValvePosition" )?'style="text-align:left"' :'style="text-align:right"'}


List
Internals
NAME d_climaControl_010
NR 381
STATE ???
TYPE dummy
Readings

dayTemp 21.0 2014-11-24 22:52:44
nightTemp 17.0 2014-11-24 22:52:44
saturday_period_1_start 04:15 2014-11-24 22:52:44
saturday_period_1_stop 21:00 2014-11-24 22:52:44
saturday_period_2_start 24:00 2014-11-24 22:52:44
saturday_period_2_stop 24:00 2014-11-24 22:52:44
sunday_period_1_start 04:15 2014-11-24 22:52:44
sunday_period_1_stop 21:00 2014-11-24 22:52:44
sunday_period_2_start 24:00 2014-11-24 22:52:44
sunday_period_2_stop 24:00 2014-11-24 22:52:44
workday_period_1_start 04:15 2014-11-24 22:52:44
workday_period_1_stop 06:30 2014-11-24 22:52:44
workday_period_2_start 15:15 2014-11-24 22:52:44
workday_period_2_stop 21:00 2014-11-24 22:52:44


myutils.pm
sub makefine{
#d_climaControl definieren und Initialisiern
  my @devices = devspec2array('(CUL_HM_|)HM_CC_(RT_DN_......_Clima|TC_......_Climate)');
  foreach my $device (@devices){
    my $room = AttrVal($device, 'room', 'undef');
    if($room ne 'undef'){
      my $roomNumber = $room;
      $roomNumber =~ s/\D//g;
      my $climaControl = ('d_climaControl_'.$roomNumber);
      if(!(defined($defs{$climaControl}))){
           {fhem("define $climaControl dummy")}
           {fhem("setreading $climaControl dayTemp 21.0")}
           {fhem("setreading $climaControl nightTemp 17.0")}
           {fhem("setreading $climaControl saturday_period_1_stop 21:00")}
           {fhem("setreading $climaControl saturday_period_1_start 04:15")}
           {fhem("setreading $climaControl saturday_period_2_stop 24:00")}
           {fhem("setreading $climaControl saturday_period_2_start 24:00")}
           {fhem("setreading $climaControl sunday_period_1_stop 21:00")}
           {fhem("setreading $climaControl sunday_period_1_start 04:15")}
           {fhem("setreading $climaControl sunday_period_2_stop 24:00")}
           {fhem("setreading $climaControl sunday_period_2_start 24:00")}
           {fhem("setreading $climaControl workday_period_1_stop 06:30")}
           {fhem("setreading $climaControl workday_period_1_start 04:15")}
           {fhem("setreading $climaControl workday_period_2_stop 21:00")}
           {fhem("setreading $climaControl workday_period_2_start 15:15")}
           {fhem("attr $climaControl room $room")}
      }
    }
  }
 
my @defaults = devspec2array('default_.*');

  foreach my $default (@defaults){
    my $wildcard = AttrVal($default,'wildcard','wildcard error');
    my @attributes = split(' ',AttrVal($default,'attributes','attributes error'));
    foreach my $attribute (@attributes){
      my $attrval = AttrVal($default,$attribute,'attribute error');
      fhem("attr $wildcard $attribute $attrval")
    }
  }

 
sub rg($){
  my @input    = split(/[§\s]+/,shift);
  my $device   = $input[0];
  my $function = $input[1];

if($function eq "clima"){
  my $room =  AttrVal($device, 'room', 'undef');
  $room =~ s/\D//g;
 
  return(("d_climaControl_".$room));
}
elsif($function eq "device"){
  return InternalVal($device,"device","device error");
}
elsif($function eq "controlMode"){
  my $controlMode = ReadingsVal($device,"controlMode","controlMode error");

  if($controlMode ~~ /manual/)
    {fhem("set $device controlMode auto")}
  elsif($controlMode ~~ /auto/)
    {fhem("set $device controlMode manual")};
}
elsif($function eq "btnLock"){
  my $globalBtnLock = ReadingsVal($device,"R-btnLock","btnLock error");

  if($globalBtnLock ~~ /off/){
    {fhem("set $device regSet btnLock on")}
    {fhem ("set $device getConfig")}
  }
  elsif($globalBtnLock ~~ /on/){
    {fhem("set $device regSet btnLock off")}
    {fhem ("set $device getConfig")}
  };
}
elsif($function eq "state"){
  my $state = Value($device);

  if($state ~~ /off/){
    {fhem("set $device on")}
  }
  elsif($state ~~ /on/){
    {fhem("set $device off")}
  };
}
elsif($function eq "setTimeTable"){
  my $room         =  AttrVal($device, 'room', 'undef');
  $room         =~ s/\D//g;
  my $climaControl = ("d_climaControl_".$room);
  my $dayTemp           = ReadingsVal( $climaControl, "dayTemp"          , 21.0    );
  my $nightTemp         = ReadingsVal( $climaControl, "nightTemp"        , 17.0    );
  my $workday_period_1_start  = ReadingsVal( $climaControl, "workday_period_1_start"  , "06:30" );
  my $workday_period_1_stop   = ReadingsVal( $climaControl, "workday_period_1_stop"   , "18:00" );
  my $workday_period_2_start  = ReadingsVal( $climaControl, "workday_period_2_start"  , "24:00" );
  my $workday_period_2_stop   = ReadingsVal( $climaControl, "workday_period_2_stop"   , "24:00" );
  my $saturday_period_1_start = ReadingsVal( $climaControl, "saturday_period_1_start" , "06:30" );
  my $saturday_period_1_stop  = ReadingsVal( $climaControl, "saturday_period_1_stop"  , "12:00" );
  my $saturday_period_2_start = ReadingsVal( $climaControl, "saturday_period_2_start" , "24:00" );
  my $saturday_period_2_stop  = ReadingsVal( $climaControl, "saturday_period_2_stop"  , "24:00" );
  my $sunday_period_1_start   = ReadingsVal( $climaControl, "sunday_period_1_start"   , "24:00" );
  my $sunday_period_1_stop    = ReadingsVal( $climaControl, "sunday_period_1_stop"    , "24:00" );
  my $sunday_period_2_start   = ReadingsVal( $climaControl, "sunday_period_2_start"   , "24:00" );
  my $sunday_period_2_stop    = ReadingsVal( $climaControl, "sunday_period_2_stop"    , "24:00" );

  {fhem("set $device tempListMon prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListTue prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListWed prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListThu prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListFri prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListSat prep $saturday_period_1_start $nightTemp $saturday_period_1_stop $dayTemp $saturday_period_2_start $nightTemp $saturday_period_2_stop $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListSun exec $sunday_period_1_start   $nightTemp $sunday_period_1_stop   $dayTemp $sunday_period_2_start   $nightTemp $sunday_period_2_stop   $dayTemp 24:00 $nightTemp")};
}
}

 
sub getDevice($){
my $device = shift;
return InternalVal($device,"device","error");
}

sub toggleLock($){
my $device = shift;
my $lockState = ReadingsVal($device,"R-btnLock","error");

if ($lockState eq "on "){
  {fhem("set $device regSet btnLock off")}
  {fhem ("set $device getConfig")}}
elsif ($lockState eq "off "){
  {fhem("set $device regSet btnLock on")}
  {fhem ("set $device getConfig")}}
else
{return $lockState.$device};
}

sub toggleMode($){
my $device = shift;
my $Mode = ReadingsVal($device,"controlMode","error");

if ($Mode eq "manual")
  {fhem("set $device controlMode auto")}
elsif ($Mode eq "auto")
  {fhem("set $device controlMode manual")}
elsif ($Mode eq "set_manual")
  {fhem("set $device controlMode auto")}
elsif ($Mode eq "set_auto")
  {fhem("set $device controlMode manual")};
}

sub getTime($$$){
my $device = shift;
my $reading = shift;
my $status = shift;
my $timeTable = ReadingsVal($device,$reading,"error Reading");  my $time = "error Return";

if ($status eq "start")
  {$time = substr $timeTable, 0, 5}
elsif ($status eq "end")
  {$time = substr $timeTable, 11, 5}

return $time;
}
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: l3skon3 am 08 Dezember 2014, 08:57:08
hallo,

schau mal ob du

attr  default_climaControl wildcard d_climaControl.*

gesetzt hast.
Danach nochmal.

{makefine}

bei mir ist aber trotzdem alles verschoben, vielleicht weil ich es mit den Namen nicht hin bekomme.

(http://hierbilder.de/OBjU2)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 08 Dezember 2014, 16:06:57
Entschuldigt bitte, dass ich erst jetzt antworte.

Bei Mapping muss hinter => immer noch ein '' (zwei ' nicht ein " ) stehen.
Bei dem d_climaControl fehlen die setList

Mehr fällt mir so nicht auf.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 08 Dezember 2014, 21:50:54
Hallo!
@l3skon3: das war es, nun hab ich die Dropdowns, vielen Dank!

@igami: der Hinweis mit den '' war auch gut, jetzt sind die Label ausgeblendet.
Auch Dir noch mal danke für die tolle Arbeit!

Hier meine Group für RT/TC Mischbetrieb, vielleicht kann sie jemand gebrauchen:
<>,Heizung@d_label,<|>,Temperatur@d_label,<|>,Status@d_label,<|>,Wochenplan@d_label,<|>,Werktag@d_label,<|>,Samstag@d_label,<|>,Sonntag@d_label,<|>,<> (CUL_HM_|)HM_CC_(RT_DN_......_Clima|TC_......_Climate):<>,?alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-btnLock@{rg($DEVICE."§device")},<|>,Zeitraum1@d_label,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp@{rg($DEVICE."§device")},<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,actuator@{rg($DEVICE."§device")},<|>,Zeitraum2@d_label,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>

Ein paar kleine Hinweis bräuchte ich noch: die ersten drei Thermostate in anhängendem Bild sind RTs, die anderen TCs.

Wie sortiere ich nach Räumen? Momentan hab ich wohl die Sortierung nach Namen der Thermostate...

cmds_done wird nur bei RTs angezeigt, bei TCs zeigt er Temperatur/Luftfeuchte an, scheint bei TCs und RTs unterschiedlich zu sein.
Ich hab versucht "state" durch "protState" in der def und im Valuestyle Attribut zu ändern. Das steht bei RTs und TCs bei mir momentan auf "cmds_done".
<>,Heizung@d_label,<|>,Temperatur@d_label,<|>,Status@d_label,<|>,Wochenplan@d_label,<|>,Werktag@d_label,<|>,Samstag@d_label,<|>,Sonntag@d_label,<|>,<> (CUL_HM_|)HM_CC_(RT_DN_......_Clima|TC_......_Climate):<>,?alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-btnLock@{rg($DEVICE."§device")},<|>,Zeitraum1@d_label,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,protState@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp@{rg($DEVICE."§device")},<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,actuator@{rg($DEVICE."§device")},<|>,Zeitraum2@d_label,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>
Funktioniert nicht, dann ist der Wert in der Group aber leider ganze weg...
protState steht unter "internals" nicht unter "readings", wie kommt man da dran?

Weiterhin haben die letzten 2 TCs komischerweise kein Auto-Symbol sondern "auto" in der Group.
Die Control-Modes sind auch nicht anders als bei den anderen TCs (also "auto").
Woran könnte das liegen?

Grüße
zentis666
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Mirko815 am 10 Dezember 2014, 18:58:58
Hallo zusammen,

ich hatte auch das Problem, dass meine Dropdowns nicht da waren.
Nachdem ich in meinem d_climaControl_23 die setList manuell hinzugefügt habe,
waren sie da.
Nun die Frage zum Verständnis.
Wo sollte die setList im raumspezifischen Control (bei mir d_climaControl_23) gefüllt werden?
Ich habe eigentlich den gesamten Code von Igami (Super Arbeit!!!) angepasst und bei mir abgebildet.
Ich finde aber keine Stelle, an welcher die setList vorkommen sollte. Evtl. im Makefile? Habe aber nichts gefunden.
In einer Version war auch das default_d_climaControl vorhanden? Wird dies evtl. als Vorlage verwendet?

Vielen Dank für die Geduld mit mir.

LG

Mirko
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 10 Dezember 2014, 20:35:01
siehe http://www.fhemwiki.de/wiki/Makefine#d_climaControl (http://www.fhemwiki.de/wiki/Makefine#d_climaControl)

Die setList steht nur im default device, dann muss ich sie auch nur an einer Stelle ändern. In den Wiki Beiträgen sind nach wie vor noch ein paar Fehler drin, aber dieses Jahr schaffe ich es nicht mehr die zu überarbeiten.

@zentis666
bei rg Modul gibt es ein Attribut sortDevices, da einfach eine 1 setzten, dann wird nach dem device Namen, bzw. Alias sortiert, mit mapping kann man aber auch das auf room ändern, aber da müsstest du dich mal in der commandref schlau machen wie die syntax sein soll. Bei mir stehen die Raumnamen mit im Alias.

Das mit dem cmds_done wird daran liegen, dass ich ein Feature genutzt habe, was nach andres Meinung doch ein Fehler war. Es wird wahrscheinlich der state des _Clima Device angezeigt und nicht das des eigentlichen. Kommt auch im nächsten Jahr ;)

Versuch mal bei den Icons ob es was bringt ein Leerzeichen hinter auto zu schreiben, das ist mir beim Lockstate schon mal aufgefallen, dass es manchmal "off" und manchmal "off " ist, dann wird natürlich nicht das Icon verwendet.


Ich freue mich, dass euch diese rg so gut gefällt :)

Einen schönen Abend noch.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 11 Dezember 2014, 22:22:18
Hallo igami,

Zitat von: igami am 10 Dezember 2014, 20:35:01
bei rg Modul gibt es ein Attribut sortDevices, da einfach eine 1 setzten, dann wird nach dem device Namen, bzw. Alias sortiert, mit mapping kann man aber auch das auf room ändern, aber da müsstest du dich mal in der commandref schlau machen wie die syntax sein soll. Bei mir stehen die Raumnamen mit im Alias.
genau das hab ich gesucht, mit sortDevices 1 wird nach Alias sortiert.
Sortierung nach Device-Namen hab ich vorher gehabt (also als erstes die 3 RTs dann der Rest nach ID sortiert)

Zitat von: igami am 10 Dezember 2014, 20:35:01
Versuch mal bei den Icons ob es was bringt ein Leerzeichen hinter auto zu schreiben, das ist mir beim Lockstate schon mal aufgefallen, dass es manchmal "off" und manchmal "off " ist, dann wird natürlich nicht das Icon verwendet.

Also mit Leerzeichen haben die TCs das Icon und die RTs nicht, ohne ist es umgekehrt. Ich hab einfach beide eingetragen und nun gehts ;-)

attr valueIcon { 'controlMode.auto ' => 'sani_heating_automatic@green', 'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual ' => 'sani_heating_manual@red', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_auto ' => 'sani_heating_automatic@orange', 'controlMode.set_manual ' => 'sani_heating_manual@orange', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-btnLock.on' => 'secur_locked@green', 'R-btnLock.on ' => 'secur_locked@green', 'R-btnLock.set_on ' => 'secur_locked@orange', 'R-btnLock.off' => 'secur_open@red', 'R-btnLock.off ' => 'secur_open@red', 'R-btnLock.set_off ' => 'secur_open@orange'}

Danke und Grüsse
zentis666
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 12 Dezember 2014, 05:52:22
Zitat von: zentis666 am 11 Dezember 2014, 22:22:18
genau das hab ich gesucht, mit sortDevices 1 wird nach Alias sortiert.
also geht es nun? Sonst wäre eine Möglichkeit noch in jedem Device das sortby Attribut zu vergeben.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: zentis666 am 12 Dezember 2014, 07:12:45
Geht!
Grüße
zentis666


Gesendet von iPhone mit Tapatalk
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Mirko815 am 16 Dezember 2014, 12:19:10
Hallo Igami,

wo ist beim SetList die Verbindung zwischen meinem durch makefile angelegten dummy d_climaControl_23 und dem default_climaControl?
Nur wenn ich die SetList mit den ganzen Argumenten im d_climaControl_23 anlege, habe ich die DropDowns.

Ich habe eigentlich Deinen ganzen Code übernommen und nur die Raumbezeichnungen und die Bezeichnungen der Devices angepasst.


LG

Mirko
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 16 Dezember 2014, 19:39:05
Zitat von: Mirko815 am 16 Dezember 2014, 12:19:10
wo ist beim SetList die Verbindung zwischen meinem durch makefile angelegten dummy d_climaControl_23 und dem default_climaControl?

na beim {makefine} werden alle attribute auf die Devices die sich von der wildcard angesprochen fühlen übertragen, also auch die setList.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: DerFrickler am 25 Dezember 2014, 01:42:39
auf welche Firmware der HM-CC-RT-DN bezieht sich das Beispiel "Heizungswerte, Status, Steuerung und Wochenprofil"im Wiki? Irgendwie habe ich das Gefühl das in der 1.4 Firmware so einiges geändert hat.

Gruß und schöne Weihnachtstage!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 30 Dezember 2014, 12:55:30
Hallo zusammen,
kann mir einer einen Tip geben warum bei mir alles verschoben ist?
Danke und Gruß
Jan

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Rohan am 30 Dezember 2014, 13:54:26
1. Zeile X Spalten
2. Zeile X+1 Spalten
3. Zeile X Spalten

Irgendwo hast du in Zeile 1 und 3 einen Platzhalter "<>" zuwenig?

Gruß
Thomas
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 31 Dezember 2014, 13:01:25
Hmm,
ich finde es leider nicht, kann auch dran liegen das ich das alles noch nicht ganz verstehe  :-[
Hier mal ein List von mir
Internals:
   DEF        <>,Heizung@d_label,<|>,Temperatur@d_label,<|>,Status@d_label,<|>,Wochenplan@d_label,<|>,Werktag@d_label,<|>,Samstag@d_label,<|>,Sonntag@d_label,<|>,<> KU_Heizung_Clima:<>,?alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-globalBtnLock@{rg($DEVICE."§device")},<|>,Zeitraum1@d_label,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,ValvePosition,<|>,Zeitraum2@d_label,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>
   NAME       rg_thermostate
   NR         132
   NTFY_ORDER 50-rg_thermostate
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     KU_Heizung_Clima 1
   Content2:
     KU_Heizung 1
     KU_Heizung_Clima 1
     d_climaControl_ 1
     d_label    1
   DEVICES:
     ARRAY(0x17d2938)
     ARRAY(0x281c8f8)
   DEVICES2:
     ARRAY(0x17d2938)
     ARRAY(0x281c8f8)
     ARRAY(0x281e640)
     ARRAY(0x285e408)
     ARRAY(0x2886e20)
     ARRAY(0x2886d30)
     ARRAY(0x2886ef8)
     ARRAY(0x2886f58)
     ARRAY(0x2886fd0)
     ARRAY(0x2887030)
     ARRAY(0x287a980)
     ARRAY(0x2756510)
     ARRAY(0x27cbbe0)
     ARRAY(0x287a998)
     ARRAY(0x2886dd8)
     ARRAY(0x285df88)
     ARRAY(0x285e3d8)
     ARRAY(0x285e438)
     ARRAY(0x285e2b8)
     ARRAY(0x2887270)
     ARRAY(0x28872d0)
     ARRAY(0x2887318)
   Fhem:
     lastDefChange 350
     last_update 1420026737.45974
   Helper:
     DEF
     commands   { 'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', 'workday_period_1_start' => 'workday_period_1_start:', 'workday_period_1_stop' => 'workday_period_1_stop:', 'saturday_period_1_start' => 'saturday_period_1_start:', 'saturday_period_1_stop' => 'saturday_period_1_stop:', 'sunday_period_1_start' => 'sunday_period_1_start:', 'sunday_period_1_stop' => 'sunday_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'set $DEVICE getConfig', 'nightTemp' => 'nightTemp:', 'workday_period_2_start' => 'workday_period_2_start:', 'workday_period_2_stop' => 'workday_period_2_stop:', 'saturday_period_2_start' => 'saturday_period_2_start:', 'saturday_period_2_stop' => 'saturday_period_2_stop:', 'sunday_period_2_start' => 'sunday_period_2_start:', 'sunday_period_2_stop' => 'sunday_period_2_stop:', 'rg_thermostate.burstXmit' => 'set $DEVICE burstXmit'}
     nameStyle  {($READING eq "Soll" ||$READING eq "Tag" ||$READING eq "%getConfig" ||$READING eq "Ist" ||$READING eq "Nacht" ||$READING eq "Ventil" )?'style="text-align:right"' :($READING eq "%burstXmit" )?'style="text-align:center"' :'style=""'}
     valueStyle {($READING eq "Heizung" ||$READING eq "Temperatur" ||$READING eq "Status" ||$READING eq "Wochenplan" ||$READING eq "Werktag" ||$READING eq "Samstag" ||$READING eq "Sonntag" )?'style="font-size:20px;;color:RoyalBlue;;text-align:center"' :($READING eq "alias" )?'style="font-size:11px;;font-weight:bold;;text-align:left"' :($READING eq "ValvePosition" &&$VALUE > 40 )?'style="font-weight:bold;;color:Orange;;text-align:left"' :($READING eq "desired-temp" ||$READING eq "measured-temp" )?'style="text-align:center"' :($READING eq "state" ||$READING eq "ValvePosition" )?'style="text-align:left"' :'style="text-align:right"'}
     Mapping:
       dayTemp
       desired-temp
       nightTemp
       saturday_period_1_start
       saturday_period_1_stop
       saturday_period_2_start
       saturday_period_2_stop
       sunday_period_1_start
       sunday_period_1_stop
       sunday_period_2_start
       sunday_period_2_stop
       workday_period_1_start
       workday_period_1_stop
       workday_period_2_start
       workday_period_2_stop
     Valuecolumns:
       Heizung    colspan="2"
       Samstag    colspan="2"
       Sonntag    colspan="2"
       Status     colspan="2"
       Temperatur colspan="4"
       Werktag    colspan="2"
       alias      colspan="2"
     Valueformat:
       ValvePosition %0.1f %%
       measured-temp %0.1f °C
     Valueicon:
       R-globalBtnLock.off secur_open@red
       R-globalBtnLock.off  secur_open@red
       R-globalBtnLock.on secur_locked@green
       R-globalBtnLock.on  secur_locked@green
       R-globalBtnLock.set_off  secur_open@orange
       R-globalBtnLock.set_on  secur_locked@orange
       controlMode.auto sani_heating_automatic@green
       controlMode.manual sani_heating_manual@red
       controlMode.set_auto sani_heating_automatic@orange
       controlMode.set_manual sani_heating_manual@orange
Attributes:
   commands   { 'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', 'workday_period_1_start' => 'workday_period_1_start:', 'workday_period_1_stop' => 'workday_period_1_stop:', 'saturday_period_1_start' => 'saturday_period_1_start:', 'saturday_period_1_stop' => 'saturday_period_1_stop:', 'sunday_period_1_start' => 'sunday_period_1_start:', 'sunday_period_1_stop' => 'sunday_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'set $DEVICE getConfig', 'nightTemp' => 'nightTemp:', 'workday_period_2_start' => 'workday_period_2_start:', 'workday_period_2_stop' => 'workday_period_2_stop:', 'saturday_period_2_start' => 'saturday_period_2_start:', 'saturday_period_2_stop' => 'saturday_period_2_stop:', 'sunday_period_2_start' => 'sunday_period_2_start:', 'sunday_period_2_stop' => 'sunday_period_2_stop:', 'rg_thermostate.burstXmit' => 'set $DEVICE burstXmit'}
   mapping    { 'desired-temp' => '' , 'dayTemp' => '' , 'workday_period_1_start' => '' , 'workday_period_1_stop' => '' , 'saturday_period_1_start' => '' , 'saturday_period_1_stop' => '' , 'sunday_period_1_start' => '' , 'sunday_period_1_stop' => '' , 'nightTemp' => '' , 'workday_period_2_start' => '' , 'workday_period_2_stop' => '' , 'saturday_period_2_start' => '' , 'saturday_period_2_stop' => '' , 'sunday_period_2_start' => '' , 'sunday_period_2_stop' => '' }
   nameStyle  {($READING eq "Soll" ||$READING eq "Tag" ||$READING eq "%getConfig" ||$READING eq "Ist" ||$READING eq "Nacht" ||$READING eq "Ventil" )?'style="text-align:right"' :($READING eq "%burstXmit" )?'style="text-align:center"' :'style=""'}
   nonames    1
   valueColumns { 'Heizung' => 'colspan="2"', 'Temperatur' => 'colspan="4"', 'Status' => 'colspan="2"', 'Werktag' => 'colspan="2"', 'Samstag' => 'colspan="2"', 'Sonntag' => 'colspan="2"', 'alias' => 'colspan="2"'}
   valueFormat { 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
   valueIcon  { 'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off ' => 'secur_open@orange'}
   valueStyle {($READING eq "Heizung" ||$READING eq "Temperatur" ||$READING eq "Status" ||$READING eq "Wochenplan" ||$READING eq "Werktag" ||$READING eq "Samstag" ||$READING eq "Sonntag" )?'style="font-size:20px;;color:RoyalBlue;;text-align:center"' :($READING eq "alias" )?'style="font-size:11px;;font-weight:bold;;text-align:left"' :($READING eq "ValvePosition" &&$VALUE > 40 )?'style="font-weight:bold;;color:Orange;;text-align:left"' :($READING eq "desired-temp" ||$READING eq "measured-temp" )?'style="text-align:center"' :($READING eq "state" ||$READING eq "ValvePosition" )?'style="text-align:left"' :'style="text-align:right"'}


Ich habe das Wiki durch gearbeitet und den Thread habe ich auch schon gefühlte 100mal durchgelesen.
Da ich im Moment nur ein Thermostat habe, habe ich es überall erstmal direkt eingetragen, also: KU_Heizung_Clima

Beim attr mapping habe ich hinter jedes => ein doppeltes ' gemacht.

Im Wiki ist übrigens noch ein Fehler drin.
attr rg_thermostate valueIcon attr rg_thermostate valueIcon

Gruß
Jan
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 31 Dezember 2014, 13:09:04
Hier noch ein aktueller Screenshot
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Saar1974 am 31 Dezember 2014, 13:34:16
Hallo,
prüf mal, ob Du bei Deinem HM_CC_RT_DN für Clima das Attribut 'alias' angegeben hast.
z.B. attr HM_CC_RT_DN_xxxxxx_Clima alias Wohnzimmer
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 31 Dezember 2014, 15:20:36
Jo,
das war es.
Großes DANKE.

Gruß und guten Rutsch
Jan
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 18 Januar 2015, 14:30:52
Servus zusammen,

ich habe noch ein Problem.  8)
Ich habe nun ein zweites Thermostat am laufen. Es wird auch zur Reading Group hinzugefügt.
Sobald ich aber eine Zeit oder Temperatur per DropDown Menü bei einem Thermostat änder, ändert sich das bei dem anderen auch direkt.
Ist das normal?

Gruß
Jan
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 18 Januar 2015, 21:53:50
Hat sich erledigt.
Ich habe im Perl-Code in der myUtils überall das
$roomNumber =~ s/\D//g;
$room =~ s/\D//g;

rausgeschmissen.
Wenn ich es richtig verstehe, hat er damit alle Zeichen außer zahlen gelöscht und da ich keine Zahlen in meinen Räumen nutze wurde alles gelöscht.
Jetzt legt er auch die Cilmacontrol Dummys richtig an.

Gruß
Jan
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: strauch am 19 Januar 2015, 15:39:17
Vielleicht hat hier jemand einen Tipp. Wenn ich die Soll Temperatur per DropDown ändern möchte, wird das dropdown Menü bei mir nur bei einem Eintrag angezeigt (mein letzter FHT8B):

Internals:
   CFGFN
   DEF        .._Heizung:desired-temp
   NAME       readingsgroup_test
   NR         13634
   NTFY_ORDER 50-readingsgroup_test
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     bk_Heizung 1
     bu_Heizung 1
     bz_Heizung 1
     ga_Heizung 1
     gk_Heizung 1
     lz_Heizung 1
     nz_Heizung 1
     sz_Heizung 1
     wz_Heizung 1
   Content2:
   DEVICES:
     ARRAY(0x49a5640)
     ARRAY(0x46f5aa8)
     ARRAY(0x4a88268)
     ARRAY(0x4e70958)
     ARRAY(0x4a5c200)
     ARRAY(0x4a3ae08)
     ARRAY(0x4a790d8)
     ARRAY(0x4b74e48)
     ARRAY(0x4e001e0)
   Fhem:
     lastDefChange 154
     last_update 1421676834.15137
   Helper:
     DEF
     Commands:
       desired-temp desired-temp:
Attributes:
   commands   { 'desired-temp' => 'desired-temp:' }
   mapping   %DEVICE


Jemand eine Idee? der HTML Code der ausgegeben wird schaut so aus:
<tr class="even">
<td>
<td>
<div informid="readingsgroup_test-nz_Heizung.desired-temp">
<a onclick="FW_cmd('/fhem?XHR=1&cmd=desired-temp:')" style="cursor:pointer">16.0</a>
</div>
</td>
<td>
</tr>
<tr class="odd">
<td>
<td>
<div>
<select class="select_widget" informid="readingsgroup_test-sz_Heizung.desired-temp">
</div>
</td>
<td>
</tr>
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: stefan-kiefer am 31 Januar 2015, 16:41:45
Hallo zusammen,

seit ca. 10 Tagen habe ich nun einen HM-CC-RT-DN (FW 1.4) und steuere ihn über einen HM-CFG-USB2 am RasPi mit aktueller Version von FHEM (svn). Soweit habe ich mit den Beiträgen hier und dem Wiki fast alles hinbekommen. Dafür schon einmal vielen Dank für die bereits geleistete Arbeit:-) Jedoch habe ich noch ein paar Probleme und hoffe auf eure Hilfe.

1. Problem: In der Definition steht im Original der Abschnitt 'controlMode,R-globalBtnLock@{rg($DEVICE."§device")}' bzw. gibt es im Beitrag auch die Änderung auf 'controlMode,R-BtnLock@{rg($DEVICE."§device")}'. In beiden Fällen bekomme ich dann kein Symbol für den Lock-Zustand angezeigt. Ändere ich den Abschnitt auf ''controlMode,R-BtnLock', lasse also alle ab dem @ weg, so erscheint das Sysmbol und zeigt den korrekten Zustand, aber ich kann es dann nicht mehr per Klick ändern, was ich aber gerne machen würde.

2. Problem: Stelle ich über die DropDown-Menüs die Uhrzeiten ein und übertrage sie mit einem Klick auf das Symbol 'setTimeTable' am Ende, was meiner Meinung nach auch funktioniert, erscheinen im Logging mehrere Fehler.

2015.01.31 16:33:45 3: set wzThermostat tempListMon prep 06:00  17.0 08:30  21.0 13:30  17.0 22:00  21.0 24:00 17.0 : Unknown argument tempListMon, choose one of burstXmit clear:readings,rssi,msgEvents,unknownDev clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw inhibit:on,off peerBulk raw regBulk regSet reset sign:on,off sysTime unpair virtual:slider,1,1,50
2015.01.31 16:33:45 3: set wzThermostat tempListTue prep 06:00  17.0 08:30  21.0 13:30  17.0 22:00  21.0 24:00 17.0 : Unknown argument tempListTue, choose one of burstXmit clear:readings,rssi,msgEvents,unknownDev clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw inhibit:on,off peerBulk raw regBulk regSet reset sign:on,off sysTime unpair virtual:slider,1,1,50
2015.01.31 16:33:45 3: set wzThermostat tempListWed prep 06:00  17.0 08:30  21.0 13:30  17.0 22:00  21.0 24:00 17.0 : Unknown argument tempListWed, choose one of burstXmit clear:readings,rssi,msgEvents,unknownDev clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw inhibit:on,off peerBulk raw regBulk regSet reset sign:on,off sysTime unpair virtual:slider,1,1,50
2015.01.31 16:33:45 3: set wzThermostat tempListThu prep 06:00  17.0 08:30  21.0 13:30  17.0 22:00  21.0 24:00 17.0 : Unknown argument tempListThu, choose one of burstXmit clear:readings,rssi,msgEvents,unknownDev clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw inhibit:on,off peerBulk raw regBulk regSet reset sign:on,off sysTime unpair virtual:slider,1,1,50
2015.01.31 16:33:45 3: set wzThermostat tempListFri prep 06:00  17.0 08:30  21.0 13:30  17.0 22:00  21.0 24:00 17.0 : Unknown argument tempListFri, choose one of burstXmit clear:readings,rssi,msgEvents,unknownDev clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw inhibit:on,off peerBulk raw regBulk regSet reset sign:on,off sysTime unpair virtual:slider,1,1,50
2015.01.31 16:33:45 3: set wzThermostat tempListSat prep 06:30 17.0 22:00 21.0 24:00 17.0 24:00 21.0 24:00 17.0 : Unknown argument tempListSat, choose one of burstXmit clear:readings,rssi,msgEvents,unknownDev clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw inhibit:on,off peerBulk raw regBulk regSet reset sign:on,off sysTime unpair virtual:slider,1,1,50
2015.01.31 16:33:45 3: set wzThermostat tempListSun exec 06:30   17.0 22:00   21.0 24:00   17.0 24:00   21.0 24:00 17.0 : Unknown argument tempListSun, choose one of burstXmit clear:readings,rssi,msgEvents,unknownDev clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw inhibit:on,off peerBulk raw regBulk regSet reset sign:on,off sysTime unpair virtual:slider,1,1,50
2015.01.31 16:33:45 3: ntfy_rg return value: Unknown argument tempListSun, choose one of burstXmit clear:readings,rssi,msgEvents,unknownDev clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw inhibit:on,off peerBulk raw regBulk regSet reset sign:on,off sysTime unpair virtual:slider,1,1,50



Ergänzung 02.01.2015 : Das 2. Problem hat sich nach weiteren Test erledigt. Ich musste feststellen, dass die diversen Kanäle wie z.B. _Clima nicht korrekt angelegt waren. Nach einem Reset und erneuten Pairing war dann alles korrekt vorhanden.

Ingesamt muss man aber mal sagen, dass dieses Thema für Newbies wirklich schwer in allen Zusammenhängen zu verstehen ist.


Vielen Dank und schönes Wochenende
Stefan

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: karmas am 10 Februar 2015, 22:12:49
Hallo,
hab mich durch den Thread gearbeitet und hänge jetzt am Einlesen mit GetConfig fest, die Werte werden gesendet CMDs done wird auch
angezeigt, aber nicht in den Wochenplan eingetragen.
Weiß jemand, wo ich da mit meiner Suche ansetzen muß?

Vielen Dank schonmal
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: martinp876 am 12 Februar 2015, 06:50:46
das Kommando tempListMon und Freunde kann man auf den Channel Clima ausführen. Nicht auf das Device. daher der Fehler
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MrMaxy am 17 Februar 2015, 14:36:03
Hallo zusammen,

ich probiere nun schon einigen Tagen daran rum, aber so ganz erfolgreich bin ich dabei nicht. Was mir hier im Wesentlichen fehlt sind die Dropdown Felder, um die unterschiedlichen Zeiten einzustellen. Lediglich das Dropdown Feld für die Soll-Temperatur erscheint.
Gibt es hier eventuell jemande, der mir einmal erläutern kann:
1. Welche Einstellungen anzupassen sind, um das Ganze mit den HM-TC-IT-WM-W-EU an Laufen zu bekommen
2. Wohin hier welche Datensätze abgespeichert werden müssen. Mittlerweile verliere ich den Überblick und weiß nicht, wo was hineingehört (fhem.cfg oder myUtils).

Bin für jeden Hinweis und Hilfe dankbar.
Ach ja, das Thema im Wiki habe ich auch schon mehrfach durch gelesen und mich daran versucht.

Vielen Dank!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: karmas am 24 Februar 2015, 22:35:19
Hast du {makefine} ausgeführt?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: spion77 am 04 März 2015, 14:20:40
Hi , zusammen

also mir gehts da ähnlich wie MrMaxy

2. Wohin hier welche Datensätze abgespeichert werden müssen. Mittlerweile verliere ich den Überblick und weiß nicht, wo was hineingehört (fhem.cfg oder myUtils).

ich kapiere ehrlich gesagt den wiki eintrage nicht so wirklich

könnte man das mal zusammen schreiben was wohin gehört

oder könnte jemand die passenden Config auszüge posten ?

ich bedanke mich !

Grüße
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Jorche am 10 März 2015, 01:11:05
Hallo igami,

hast du zwischendurch Zeit gefunden, den Wiki Eintrag zu überarbeiten bzw. die Fallstricke zu suchen?

Ich habe den thread gefühlt mehrere Dutzend mal durch gearbeitet und stehe immer noch im Wald. Die Anpassung der Devicenamen hat geklappt, doch irgendwie akkumulieren die diskutierte Details bei mir -.-
- Roomnamen werden falsch angezeigt (da keine Zahl enthalten) bzw. mit Alias dann doppelt
- Kein einziges Dropdown
- Iwi klappt toggeln nirgends-würden die korrekten Messwerte nicht angezeigt, hätte ich das Gefühl ich versuche auf nen Dummy zu klicken ;-D
- Crash boom bei valueStyle trotz angestrebter Sorgfalt ^^

Eigentlich wollte ich das Beispiel von Andre/justme1968 um die Zeitsteuerung erweitern..

Oder lass mich anders fragen, hattest du Zeit deine bisherige Version aus der Arbeit in eine freundliche hausautomatisierungs Version umzustricken?

In jedem Fall tausend Dank für dein tolles Projekt und Grüße
Jörg
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 12 März 2015, 08:02:04
Guten Morgen,

Ich erzähle mal was ich alles germacht habe, vielleicht hilft es ja  :)
Also ich habe das alles nach dem Wiki gemacht und ans laufen bekommen. Allerdings habe ich nicht alles einfach in die config kopiert, sondern alles über die Oberfläche gemacht. Das funktionierte bei mir besser. Ich habe mich in dem Wiki von oben nach unten gearbeitet und wenn auf der rechten Seite ein Link ist, habe ich erst da weiter gemacht.

Dann ist noch drauf zu achten, dass bei dem Attribut mapping hinter jedes => ein doppeltes ' Apostroph muss.
In der Myutils und config muss man dann eventuell noch seine Thermostate anpassen je nachdem wie man die gennant hat.
Meine heißen zum Beispiel
EG_Flur_Heizung
EG_Kueche_Heizung

Damit beide erkannt werden muss man dann folgendes eingeben.
(.._(......|....)_Heizung_Clima)
Wenn dann alles eingeben ist macht man noch ein
{makefine}
Sollte das alles geklappt haben, ist für jedes Thermostat ein eigener Dummy angelegt worden ( d_climaControl_XXX )

Dann habe ich noch in der myutils folgendes auskommentiert:
$room         =~ s/\D//g
Das brauche ich nicht, da ich keine Raumnummern verwende.

Und zu guter letzt, muss auch noch bei jedem Thermostat der Alias vergeben sein, weil dieser in der ReadingGroup angezeigt wird.

Hier mal meine config:
#########################
#         Reading Group Für Heizung
#########################

define ntfy_setreading notify d_.* { if( ($EVENT ~~ / /) and ($EVENT !~ /: /) ) {fhem("setreading $NAME $EVENT")} }

define d_label dummy

define default_climaControl dummy
attr default_climaControl userattr attributes wildcard
attr default_climaControl attributes setList
attr default_climaControl setList dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 workday_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 workday_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 workday_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 workday_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00
attr default_climaControl wildcard d_climaControl.*

define ntfy_rg notify ntfy_rg {rg($EVENT)}

define rg_thermostate readingsGroup <>,Heizung@d_label,<|>,Temperatur@d_label,<|>,Status@d_label,<|>,Wochenplan@d_label,<|>,Werktag@d_label,<|>,Samstag@d_label,<|>,Sonntag@d_label,<|>,<> (.._(......|....)_Heizung_Clima):<>,?alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-globalBtnLock@{rg($DEVICE."§device")},<|>,Zeitraum1@d_label,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,ValvePosition,<|>,Zeitraum2@d_label,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>
attr rg_thermostate commands { 'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', 'workday_period_1_start' => 'workday_period_1_start:', 'workday_period_1_stop' => 'workday_period_1_stop:', 'saturday_period_1_start' => 'saturday_period_1_start:', 'saturday_period_1_stop' => 'saturday_period_1_stop:', 'sunday_period_1_start' => 'sunday_period_1_start:', 'sunday_period_1_stop' => 'sunday_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'set $DEVICE getConfig', 'nightTemp' => 'nightTemp:', 'workday_period_2_start' => 'workday_period_2_start:', 'workday_period_2_stop' => 'workday_period_2_stop:', 'saturday_period_2_start' => 'saturday_period_2_start:', 'saturday_period_2_stop' => 'saturday_period_2_stop:', 'sunday_period_2_start' => 'sunday_period_2_start:', 'sunday_period_2_stop' => 'sunday_period_2_stop:', 'rg_thermostate.burstXmit' => 'set $DEVICE burstXmit'}
attr rg_thermostate group Heizungen
attr rg_thermostate mapping { 'desired-temp' => '' , 'dayTemp' => '' , 'workday_period_1_start' => '' , 'workday_period_1_stop' => '' , 'saturday_period_1_start' => '' , 'saturday_period_1_stop' => '' , 'sunday_period_1_start' => '' , 'sunday_period_1_stop' => '' , 'nightTemp' => '' , 'workday_period_2_start' => '' , 'workday_period_2_stop' => '' , 'saturday_period_2_start' => '' , 'saturday_period_2_stop' => '' , 'sunday_period_2_start' => '' , 'sunday_period_2_stop' => '' }
attr rg_thermostate nameStyle {($READING eq "Soll" ||$READING eq "Tag" ||$READING eq "%getConfig" ||$READING eq "Ist" ||$READING eq "Nacht" ||$READING eq "Ventil" )?'style="text-align:right"' :($READING eq "%burstXmit" )?'style="text-align:center"' :'style=""'}
attr rg_thermostate nonames 1
attr rg_thermostate room Haus
attr rg_thermostate valueColumns { 'Heizung' => 'colspan="2"', 'Temperatur' => 'colspan="4"', 'Status' => 'colspan="2"', 'Werktag' => 'colspan="2"', 'Samstag' => 'colspan="2"', 'Sonntag' => 'colspan="2"', 'alias' => 'colspan="2"'}
attr rg_thermostate valueFormat { 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
attr rg_thermostate valueIcon { 'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off ' => 'secur_open@orange'}
attr rg_thermostate valueStyle {($READING eq "Heizung" ||$READING eq "Temperatur" ||$READING eq "Status" ||$READING eq "Wochenplan" ||$READING eq "Werktag" ||$READING eq "Samstag" ||$READING eq "Sonntag" )?'style="font-size:20px;;;;color:RoyalBlue;;;;text-align:center"' :($READING eq "alias" )?'style="font-size:11px;;;;font-weight:bold;;;;text-align:left"' :($READING eq "ValvePosition" &&$VALUE > 40 )?'style="font-weight:bold;;;;color:Orange;;;;text-align:left"' :($READING eq "desired-temp" ||$READING eq "measured-temp" )?'style="text-align:center"' :($READING eq "state" ||$READING eq "ValvePosition" )?'style="text-align:left"' :'style="text-align:right"'}


Und die myutils:
###### HEIZUNG #######

sub makefine{

#d_climaControl definieren und Initialisiern
  my @devices = devspec2array('.._(......|....)_Heizung_Clima');

  foreach my $device (@devices){
    my $room = AttrVal($device, 'room', 'undef');
    if($room ne 'undef'){
      my $roomNumber = $room;
      #$roomNumber =~ s/\D//g;
      my $climaControl = ('d_climaControl_'.$roomNumber);
      if(!(defined($defs{$climaControl}))){
           {fhem("define $climaControl dummy")}
           {fhem("setreading $climaControl dayTemp 21.0")}
           {fhem("setreading $climaControl nightTemp 17.0")}
           {fhem("setreading $climaControl saturday_period_1_stop 21:00")}
           {fhem("setreading $climaControl saturday_period_1_start 04:15")}
           {fhem("setreading $climaControl saturday_period_2_stop 24:00")}
           {fhem("setreading $climaControl saturday_period_2_start 24:00")}
           {fhem("setreading $climaControl sunday_period_1_stop 21:00")}
           {fhem("setreading $climaControl sunday_period_1_start 04:15")}
           {fhem("setreading $climaControl sunday_period_2_stop 24:00")}
           {fhem("setreading $climaControl sunday_period_2_start 24:00")}
           {fhem("setreading $climaControl workday_period_1_stop 06:30")}
           {fhem("setreading $climaControl workday_period_1_start 04:15")}
           {fhem("setreading $climaControl workday_period_2_stop 21:00")}
           {fhem("setreading $climaControl workday_period_2_start 15:15")}
           {fhem("attr $climaControl room $room")}
      }
    }
  }

  #Attribute aus Vorgaben übernehmen
  my @defaults = devspec2array('default_.*');

  foreach my $default (@defaults){
    my $wildcard = AttrVal($default,'wildcard','wildcard error');
    my @attributes = split(' ',AttrVal($default,'attributes','attributes error'));
    foreach my $attribute (@attributes){
      my $attrval = AttrVal($default,$attribute,'attribute error');
      fhem("attr $wildcard $attribute $attrval")
    }
  }
}

sub rg($){
  my @input    = split(/[§\s]+/,shift);
  my $device   = $input[0];
  my $function = $input[1];

if($function eq "clima"){
  my $room =  AttrVal($device, 'room', 'undef');
  #$room =~ s/\D//g;
 
  return(("d_climaControl_".$room));
}
elsif($function eq "device"){
  return InternalVal($device,"device","device error");
}
elsif($function eq "controlMode"){
  my $controlMode = ReadingsVal($device,"controlMode","controlMode error");

  if($controlMode ~~ /manual/)
    {fhem("set $device controlMode auto")}
  elsif($controlMode ~~ /auto/)
    {fhem("set $device controlMode manual")};
}
elsif($function eq "globalBtnLock"){
  my $globalBtnLock = ReadingsVal($device,"R-globalBtnLock","globalBtnLock error");

  if($globalBtnLock ~~ /off/){
    {fhem("set $device regSet globalBtnLock on")}
    {fhem ("set $device getConfig")}
  }
  elsif($globalBtnLock ~~ /on/){
    {fhem("set $device regSet globalBtnLock off")}
    {fhem ("set $device getConfig")}
  };
}
elsif($function eq "state"){
  my $state = Value($device);

  if($state ~~ /off/){
    {fhem("set $device on")}
  }
  elsif($state ~~ /on/){
    {fhem("set $device off")}
  };
}
elsif($function eq "setTimeTable"){
  my $room         =  AttrVal($device, 'room', 'undef');
  #$room         =~ s/\D//g;
  my $climaControl = ("d_climaControl_".$room);
  my $dayTemp           = ReadingsVal( $climaControl, "dayTemp"          , 21.0    );
  my $nightTemp         = ReadingsVal( $climaControl, "nightTemp"        , 17.0    );
  my $workday_period_1_start  = ReadingsVal( $climaControl, "workday_period_1_start"  , "06:30" );
  my $workday_period_1_stop   = ReadingsVal( $climaControl, "workday_period_1_stop"   , "18:00" );
  my $workday_period_2_start  = ReadingsVal( $climaControl, "workday_period_2_start"  , "24:00" );
  my $workday_period_2_stop   = ReadingsVal( $climaControl, "workday_period_2_stop"   , "24:00" );
  my $saturday_period_1_start = ReadingsVal( $climaControl, "saturday_period_1_start" , "06:30" );
  my $saturday_period_1_stop  = ReadingsVal( $climaControl, "saturday_period_1_stop"  , "12:00" );
  my $saturday_period_2_start = ReadingsVal( $climaControl, "saturday_period_2_start" , "24:00" );
  my $saturday_period_2_stop  = ReadingsVal( $climaControl, "saturday_period_2_stop"  , "24:00" );
  my $sunday_period_1_start   = ReadingsVal( $climaControl, "sunday_period_1_start"   , "24:00" );
  my $sunday_period_1_stop    = ReadingsVal( $climaControl, "sunday_period_1_stop"    , "24:00" );
  my $sunday_period_2_start   = ReadingsVal( $climaControl, "sunday_period_2_start"   , "24:00" );
  my $sunday_period_2_stop    = ReadingsVal( $climaControl, "sunday_period_2_stop"    , "24:00" );

  {fhem("set $device tempListMon prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListTue prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListWed prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListThu prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListFri prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListSat prep $saturday_period_1_start $nightTemp $saturday_period_1_stop $dayTemp $saturday_period_2_start $nightTemp $saturday_period_2_stop $dayTemp 24:00 $nightTemp")};
  {fhem("set $device tempListSun exec $sunday_period_1_start   $nightTemp $sunday_period_1_stop   $dayTemp $sunday_period_2_start   $nightTemp $sunday_period_2_stop   $dayTemp 24:00 $nightTemp")};
}
}



Gruß
Jan
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Jorche am 17 März 2015, 10:42:56
Hallo Jan,

tausend Dank für deine Antwort, funktioniert perfekt.
Der Tipp mit zuerst die rechte Spalte im Wiki abarbeiten, dann die linke hat es gebracht  :-)
Ich habe durch die unterschiedlichen Namen meiner Räume noch ein paar Tweaks an diversen stellen vorgenommen und würde die Abwandlungen hier gerne mit reinstellen. Vorher bräuchte ich aber noch die Antwort auf zwei Fragen.

Zuerst die einfache:
Wie lässt sich denn ein Teilstring (hier: font-weight:bold;;text-align:left) durch mehrere if/elsif/else übergeben? Meiner Lösung ist etwas roh, ansonsten landete ich immer im Errorlog ;-)
elsif($READING eq "ValvePosition"){my $v=$VALUE;;if($v>0){'style="color:rgb(19,75,248);;font-weight:bold;;text-align:left"'}elsif($v>=10){'style="color:rgb(248,213,61);;font-weight:bold;;text-align:left"'}else{'style="font-weight:bold;;text-align:left"'}
Wie man sieht, wird der Ausdruck sonst sehr schnell lang

Dann die verzwicktere:
In der Readingsgroup erfolgt die Sortierung ja anhand der Angabe der Devices. Da in diesem Wikibeispiel der Name des Dummies mit {makefine} ja automatisch erzeugt wird, hab ich keinen direkten Einfluss mehr auf die Reihenfolge Sortierung und sie erfolgt alphabetisch. (und z.B. nicht mehr nach den Stockwerken im Haus ohne diese im Namen vA mit aufzunehmen).
Vermutlich geht das nicht von heute auf morgen, aber kann man in die Readingsgroup nicht das "sortby" Attribut mit aufnehmen/abfragen? Fällt jemanden dazu ne Lösung ein oder besser Andre fragen?

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: justme1968 am 17 März 2015, 11:28:01
wenn du in der readingGroup sortDevices gesetzt hast werden die devices nach sortby,alias und name sortiert. in dieser reihenfolge je nach dem was vorhanden ist.

gruss
  andre
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: spion77 am 17 März 2015, 17:21:46
Vielen Dank an Alle jetzt hat es bei mir auch Wunderbar geklappt DANKE!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Jorche am 19 März 2015, 00:15:33
Hallo Andre,
so langsam gefällt mir FHEM immer noch besser ^^ Vielen Dank für die schnelle und gute Antwort, mittels Sortby läuft das perfekt!
Hast du mir einen Tipp, wie ich die andere Fragen lösen kann? Effektiv geht es ja nur darum Code zu sparen und einen identischen String nicht durch alle if/elsis Schleifen ziehen zu müssen.
Irgendwie stehe ich auf dem Schlauch und alle Beispiele hier im Forum/Wiki oder bei Hans Google beschreiben nur die if/else-Basics.
Danke für die Mühen und Grüße
Jörg
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: justme1968 am 19 März 2015, 07:55:49
da wo du dein $v zuweist kannst du den teil einer zweiten variable zuweisen. z.b. $s. und diese steckst du dann jeweils in die style=... rückgabe.

bei so langen attributen ist es übrigens eigentlich sinnvoll den code in eine sub in 99_myUtils auszulagern und im attribut aufzurufen.

man kann auch die hash und die perl version so mischen das es noch etwas übersichtlicher wird.

gruß
  andre
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: sw am 30 März 2015, 23:14:01
Hallo zusammen,

ich stehe gerade auf dem Schlauch.

Meine ReadingsGroup sieht gut aus und lässt sich korrekt bedienen. D.h. ich kann Temperaturen und Zeiten per DropDown Menü auswählen.
Leider werden die Werte nicht korrekt in das Dummy übertragen, welches dem Raum zugeordnet ist  (also d_climaControl_*).

Beispiel: ich ändere in der ReadingsGroup die "Tag" Temperatur.
Im Dummy sehe ich danach unter den Readings z.B.
state        dayTemp 16.0        2015-03-30 22:53:51
während das Reading dayTemp unverändert bleibt:
dayTemp        17.5        2015-03-30 17:40:00

Entsprechend verhalten sich die Zeiteinstellungen.

Vielleicht hat jemand eine zündende Idee, wo ich weiter suchen kann ....

Danke, Sven
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: sw am 30 März 2015, 23:29:49
Ok, ich habe es gefunden ....

Ich hatte das " ntfy_setreading" weggelassen, weil ich dachte, es sei nur notwendig zum Befüllen von "d_label".

Danke fürs Lesen ...  ;)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Jorche am 02 April 2015, 00:12:55
Hallo zusammen,
hier meine kleinen Mods, um das ein oder andere Problem zu umgehen oder das ganze aufzuhübschen.

Zunächst habe ich meiner Thermostate bzw. den Clima Kanal nach dem Schema "Thermostat_RAUM_Clima" umbenannt.
Um diese mit makefinde komplett aufzuspüren hilft es in der devspec2array Anweisung mit Wildchar (.*), d.h. mit beliebiger Länge des Raumnamens, zu suchen.
my @devices = devspec2array('(CUL_HM_|)Thermostat_(.*)_Clima');


Dann hatte ich große Probs mit "makefine", da Namen der Räume mit Thermostaten teils Umlaute, teils Sonderzeichen enthalten haben. Ebenso waren Thermostate in zwei Räumen zu finden; hier z.B. in "System". Das Komma Zeichen in der Room Liste bringt die Namenserkennung in makefine als auch in ntfy_rg durcheinander.
Lösung war zum einen Lehrstellen und Umlaute bei der automatischen Namensänderung zu ersetzen und zu entfernen als auch den Room "System".
my $roomNumber = $room;     
      my %umlaute = ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss", " " => "", ",System" => "", "System," => "" ); #Ersetzungen
      my $umlautkeys = join ("|", keys(%umlaute)); # einzelnen Bedingunen für Ersetzungen zu einem Ausdruck zusammenfassen
      $roomNumber =~ s/($umlautkeys)/$umlaute{$1}/g; # s/xyz/ suchen, /g global
                  my $climaControl = ('d_climaControl_'.$roomNumber);

Gleiches für $room in den notifies

Wem die Namensgebung in der Tabelle durch Alias des Clima-Kanals nicht mundet, da er z.B. andere Listen durcheinanderbringt oder den Kanal-Block des Thermostaten auflöst, einfach in der DEF auf z.B. "?userattr" statt "alias" umsteigen. Natürlich muss dieses vorher passend dem Thermostat zugewiesen sein.


Bingen wir zuletzt noch Farbe ins Spiel
valueStyle{if($READING eq "measured-temp"){my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;
if($d eq 'off'){$d=0};;if($t-$d>=2){'style="color:rgb(251,63,11)"'}elsif($t-$d<=-2){'style="color:rgb(19,75,248)"'}else{'style="color:rgb(12,251,12)"'}}}

Hier auch Dank an Andre für seinen Tipp in einem anderen Thread, falls man als "Temperatur" auch die Parameter on bzw off verwenden möchte bzw. im Dropdown hat.
Andere Symbole und weitere Farben nach belieben.

Viel Erfolg und GRüße!
Jörg

Über Oster versuche ich noch ein drittes Intervall einzubauen, auch bevor der ganze Schnee weg ist. Dann gehts ans Licht ;)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 05 April 2015, 21:07:25
Hallo zusammen,

in letzter Zeit war ich sehr inaktiv, aber ich hoffe, dass ich nun wieder mehr Zeit für FHEM finde.
Wie ist denn so der aktuelle Stand bei der RG hier? Ich habe zwischendurch mal gelesen, dass jemand ein Modul zum setzen der Zeiten programmiert hat (http://forum.fhem.de/index.php/topic,31224.0.html). Dann gibt es ja noch das hier von Andre http://forum.fhem.de/index.php/topic,32660.0.html

Wünsche noch schöne Ostern, ich muss mir mein FHEM nun erst mal wieder richtig aufsetzten auf neuer Hardware :D

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 08 April 2015, 08:23:12
Hallo zusammen,

jetzt bin ich doch am verzweifeln, nachdem ich mir alles hundert mal durchgelesen habe funktioniert es jetzt grundsätzlich.

Aber irgendwie fehlen mir da ein paar Überschriften, dass habe ich leider noch nicht verstanden.

Kann mir hier jemand auf die Sprünge helfen??

@budda85
Danke dir, dein Beitrag hat mir sehr geholfen es ans laufen zu bekommen!!!

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 08 April 2015, 17:24:59
Hallo Tim,

vermutlich fehlen in deinem d_label die readings. Diese werden aber auch nicht mehr benötigt, stattdessen die Überschriften in <> setzten.

Grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Claus am 27 April 2015, 13:26:33
Hallo zusammen,

tolles Projekt und für mich einiges zum lernen, vielen Dank!

Ich habe da eine Frage zum Verständnis:
Bei mir wird der HM-TC-IT-WM-W-EU auch unter "model" so bezeichnet (der RT hingegen als HM-CC-RT-DN)
Wieso geht der funktioniert der u.a. Code (CUL_HM_|)HM_CC_(RT_DN_......_Clima|TC_......_Climate) dann trotzdem?
Nur damit ich es mal verstehe ...

Letzlich möchte ich mir auch die readingsGroup so zusammenstellen, dass der Wandthermostat inkl. Wochenprogramm oben erscheint und die mit diesem gepeerten RTs darunter aufgelistet werden ...
VG
Claus

Zitat von: zentis666 am 08 Dezember 2014, 21:50:54
Hallo!
...
Hier meine Group für RT/TC Mischbetrieb, vielleicht kann sie jemand gebrauchen:
<>,Heizung@d_label,<|>,Temperatur@d_label,<|>,Status@d_label,<|>,Wochenplan@d_label,<|>,Werktag@d_label,<|>,Samstag@d_label,<|>,Sonntag@d_label,<|>,<> (CUL_HM_|)HM_CC_(RT_DN_......_Clima|TC_......_Climate):<>,?alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-btnLock@{rg($DEVICE."§device")},<|>,Zeitraum1@d_label,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp@{rg($DEVICE."§device")},<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,actuator@{rg($DEVICE."§device")},<|>,Zeitraum2@d_label,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>

Ein paar kleine Hinweis bräuchte ich noch: die ersten drei Thermostate in anhängendem Bild sind RTs, die anderen TCs.

...

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: RappaSan am 07 Mai 2015, 15:58:54
Ich habe mich auch mal an igami's Beschreibung versucht, Wiki durchgelesen und abgearbeitet, aber das Ergebnis für meinen Homematic-Heizungsregler ist eher bescheiden. :(

Die gezeigten Schreenshots hier sind aber zu nett anzusehen, als dass man aufgeben möchte.

Igami, kannst Du nicht eventuell mal einen kompletten funktionierenden Satz an Konfigurations-Dateien bereitstellen, der dem heutigen Entwicklungs-Stand entspricht? Es gibt mittlerweile hier so viele Codeschnipsel, da ist es schwer, alles richtig zusammenzutragen...
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 08 Mai 2015, 17:43:52
Zitat von: RappaSan am 07 Mai 2015, 15:58:54
Igami, kannst Du nicht eventuell mal einen kompletten funktionierenden Satz an Konfigurations-Dateien bereitstellen, der dem heutigen Entwicklungs-Stand entspricht? Es gibt mittlerweile hier so viele Codeschnipsel, da ist es schwer, alles richtig zusammenzutragen...

Bin momentan dabei mein FHEM auf einen Cubietruck umzuziehen und merke dabei, dass ich selbst nicht mehr in der Lage bin die ReadingsGroup zu erstellen :D habe aber schon einige Punkte überarbeitet und bringe sobald es fertig ist das Wiki auf neuen Stand.

Da ich dies Wochenende aber keine Zeit zum basteln habe wird es wohl bis Dienstag warten müssen.

Bis dahin ein schönes Wochenende
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 12 Mai 2015, 19:35:52
so, nun habe ich wieder eine funktionierende readingsGroup.

als erstes die myUtils:
Das Paket Switch muss geladen und vorher ggf. installiert werden.

use Switch;

eine kleine Helfer sub um umlaute in Raumnamen zu ersetzten

sub room2devspec($){
  my $room = shift;
    my %umlaute = ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
    my $umlautkeys = join ("|", keys(%umlaute));
    $room =~ s/($umlautkeys)/$umlaute{$1}/g;
    $room =~ s/[^A-Za-z0-9\.\:\_]//g;
   
  return $room;
}

Dann die makefine sub.

sub makefine{

# climaControl definieren und initialisieren
my @devices = devspec2array(AttrVal('default_cc','devices','.*_Clima'));

foreach my $device (@devices){
   my $room = AttrVal($device, 'room', 'undef');
   if($room ne 'undef'){
     my $cc = room2devspec($room);
      $cc = 'cc_'.$cc;
                             
     if(!(defined($defs{$cc}))){
          {fhem("define $cc dummy")}
          {fhem("setreading $cc dayTemp 21.0")}
          {fhem("setreading $cc nightTemp 17.0")}
          {fhem("setreading $cc 6_period_1_stop 21:00")}
          {fhem("setreading $cc 6_period_1_start 04:15")}
          {fhem("setreading $cc 6_period_2_stop 24:00")}
          {fhem("setreading $cc 6_period_2_start 24:00")}
          {fhem("setreading $cc 0_period_1_stop 21:00")}
          {fhem("setreading $cc 0_period_1_start 04:15")}
          {fhem("setreading $cc 0_period_2_stop 24:00")}
          {fhem("setreading $cc 0_period_2_start 24:00")}
          {fhem("setreading $cc 8_period_1_stop 06:30")}
          {fhem("setreading $cc 8_period_1_start 04:15")}
          {fhem("setreading $cc 8_period_2_stop 21:00")}
          {fhem("setreading $cc 8_period_2_start 15:15")}
          {fhem("attr $cc alias $room")}
          {fhem("attr $cc room $room")}
     }
   }
}

  #Attribute aus Vorgaben übernehmen
  my @defaults = devspec2array('default_.*');

  foreach my $default (@defaults){
    my $wildcard = AttrVal($default,'wildcard','wildcard error');
    my @attributes = split(' ',AttrVal($default,'attributes','attributes error'));
    foreach my $attribute (@attributes){
      my $attrval = AttrVal($default,$attribute,'attribute error');
      fhem("attr $wildcard $attribute $attrval")
    }
  }
}

und die sub rg

sub rg($$){
  my $device = shift;
  my $function = shift;
 
  my $room = AttrVal($device, 'room', 'unsorted');
 
  switch ($function) {
    case 'cc' {
      return ('cc_'.room2devspec($room));
    }
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');
     
      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'btnLock' {
      $device = rg($device, 'device');
      my $btnLock = ReadingsVal($device, 'R-btnLock', '');
     
      switch ($btnLock) {
        case /off/ {
          fhem("set $device regSet btnLock on");
        }
        else {
          fhem("set $device regSet btnLock off");
        }
      }
      fhem ("set $device getConfig");
    }
    case 'globalBtnLock' {
      $device = rg($device, 'device');
      my $globalBtnLock = ReadingsVal($device, 'R-btnLock', '');
     
      switch ($globalBtnLock) {
        case /off/ {
          fhem("set $device regSet globalBtnLock on");
        }
        else {
          fhem("set $device regSet globalBtnLock off");
        }
      }
      fhem ("set $device getConfig");
    }
    case 'setTimeTable' {
      my $cc = rg($device, 'cc');
      my $dayTemp = ReadingsVal( $cc, "dayTemp" , 21.0 );
      my $nightTemp = ReadingsVal( $cc, "nightTemp" , 17.0 );
      my $workday_period_1_start = ReadingsVal( $cc, "8_period_1_start" , "06:30" );
      my $workday_period_1_stop = ReadingsVal( $cc, "8_period_1_stop" , "18:00" );
      my $workday_period_2_start = ReadingsVal( $cc, "8_period_2_start" , "24:00" );
      my $workday_period_2_stop = ReadingsVal( $cc, "8_period_2_stop" , "24:00" );
      my $saturday_period_1_start = ReadingsVal( $cc, "6_period_1_start" , "06:30" );
      my $saturday_period_1_stop = ReadingsVal( $cc, "6_period_1_stop" , "12:00" );
      my $saturday_period_2_start = ReadingsVal( $cc, "6_period_2_start" , "24:00" );
      my $saturday_period_2_stop = ReadingsVal( $cc, "6_period_2_stop" , "24:00" );
      my $sunday_period_1_start = ReadingsVal( $cc, "0_period_1_start" , "24:00" );
      my $sunday_period_1_stop = ReadingsVal( $cc, "0_period_1_stop" , "24:00" );
      my $sunday_period_2_start = ReadingsVal( $cc, "0_period_2_start" , "24:00" );
      my $sunday_period_2_stop = ReadingsVal( $cc, "0_period_2_stop" , "24:00" );
   
      fhem("set $device tempListMon prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListTue prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListWed prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListThu prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListFri prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListSat prep $saturday_period_1_start $nightTemp $saturday_period_1_stop $dayTemp $saturday_period_2_start $nightTemp $saturday_period_2_stop $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListSun exec $sunday_period_1_start   $nightTemp $sunday_period_1_stop   $dayTemp $sunday_period_2_start   $nightTemp $sunday_period_2_stop   $dayTemp 24:00 $nightTemp");
    }
    case 'getConfig' {
      $device = rg($device, 'device');
  fhem("set $device getConfig");
    }
    case 'burstXmit' {
      $device = rg($device, 'device');
      fhem("set $device burstXmit");
    }
  }
}

die myUtils abspeichern und als nächstes das default_cc definieren

Internals:
   NAME       default_cc
   TYPE       dummy
Attributes:
   attributes setList
   room       scrap
   setList    dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 8_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00
   userattr   attributes device wildcard
   wildcard   cc_.*

Nun muss die makefine sub aufgerufen werden. Dabei werden für alle Devices die auf '_Clima' enden dummys angelegt in denen die Zeiten für das Wochenprogramm stehen.
Damit auch geänderte Zeiten als reading in die cc devices übernommen werden benötigen wir noch folgendes notify:

Internals:
   DEF        (cc|d)_.* {
if(($EVENT ~~ / /) and ($EVENT !~ /: /))
  {fhem("sleep 0.001; setreading $NAME $EVENT")}
}
   NAME       ntfy_setreading
   TYPE       notify

Weiterhin benötigen wir noch ein notify um auf Klicks in der rg zu reagieren

Internals:
   DEF        ntfy_rg {
rg($EVTPART0, $EVTPART1)
}
   NAME       ntfy_rg
   TYPE       notify

Als letztes dann die readingsGroup definieren.

Internals:
   DEF        <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<>
.*_Clima:<>,!alias,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE,'cc')},controlMode,R-btnLock@{rg($DEVICE,'device')},<Zeitraum&nbsp;1>,8_period_1_start@{rg($DEVICE,'cc')},8_period_1_stop@{rg($DEVICE,'cc')},6_period_1_start@{rg($DEVICE,'cc')},6_period_1_stop@{rg($DEVICE,'cc')},0_period_1_start@{rg($DEVICE,'cc')},0_period_1_stop@{rg($DEVICE,'cc')},<%system_fhem_update>,<br>,state@{rg($DEVICE,'device')},<%getConfig>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE,'cc')},<Ventil>,ValvePosition,<Zeitraum&nbsp;2>,8_period_2_start@{rg($DEVICE,'cc')},8_period_2_stop@{rg($DEVICE,'cc')},6_period_2_start@{rg($DEVICE,'cc')},6_period_2_stop@{rg($DEVICE,'cc')},0_period_2_start@{rg($DEVICE,'cc')},0_period_2_stop@{rg($DEVICE,'cc')},<%burstXmit>
   NAME       rg_thermostate
   TYPE       readingsGroup
Attributes:
   commands   {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-btnLock' => 'trigger ntfy_rg $DEVICE btnLock', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', '8_period_1_start' => '8_period_1_start:', '8_period_1_stop' => '8_period_1_stop:', '6_period_1_start' => '6_period_1_start:', '6_period_1_stop' => '6_period_1_stop:', '0_period_1_start' => '0_period_1_start:', '0_period_1_stop' => '0_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8_period_2_start' => '8_period_2_start:', '8_period_2_stop' => '8_period_2_stop:', '6_period_2_start' => '6_period_2_start:', '6_period_2_stop' => '6_period_2_stop:', '0_period_2_start' => '0_period_2_start:', '0_period_2_stop' => '0_period_2_stop:', 'rg_thermostate.burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
   nonames    1
   room       Brücke
   valueColumns {   'Heizung' => 'colspan="2"',   'alias' => 'colspan="2"',   'Temperatur' => 'colspan="4"',   'Status' => 'colspan="2"',   'Montag-Freitag' => 'colspan="2"',   'Samstag' => 'colspan="2"',   'Sonntag' => 'colspan="2"'}
   valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>". rg($DEVICE,"alias") ."</a>"}' , 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
   valueIcon  {'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-btnLock.on' => 'secur_locked@green', 'R-btnLock.on ' => 'secur_locked@green', 'R-btnLock.set_on' => 'secur_locked@orange', 'R-btnLock.set_on ' => 'secur_locked@orange', 'R-btnLock.off' => 'secur_open@red', 'R-btnLock.off ' => 'secur_open@red', 'R-btnLock.set_off' => 'secur_open@orange', 'R-btnLock.set_off ' => 'secur_open@orange', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on' => 'secur_locked@orange', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off' => 'secur_open@orange', 'R-globalBtnLock.set_off ' => 'secur_open@orange', }


Bitte darauf achten, dass es mit alten Komponenten des Codes wahrscheinlich nicht funktioniert.

Nun bitte testen und sagen wo noch Missverständnisse bestehen.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 31 Mai 2015, 12:30:29
Hat das mittlerweile jemand ohne Probleme so nachgebaut? Dann würde ich das Wiki überarbeiten, ansonsten bitte Bescheid geben was noch unklar ist.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: RappaSan am 01 Juni 2015, 16:02:35
Ein spontaner Versuch brachte nur teilweise Erfolg.
Ich bekomme hier nur einige Werte wie Soll, Ist, Ventil und CMD-Status (pending, done) angezeigt, aber kann keine Eingaben machen.
Mir fehlt momentan die Zeit, mich in die ganze Sache hineinzudenken und dem Problem nachzugehen. Vielleicht ja am kommenden langen Wochenende...
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Mirko815 am 11 Juni 2015, 16:58:37
Hallo igami,

ich baue gerade die Heizungssteuerung nach Deinen Vorgaben aus Thread #140 nach.
Dabei ist mir aufgefallen, dass Du im makefine das device $cc mit einem d_ davor erstellst,
später aber in der Wildcard des default_cc kein d_ mehr davor hast.
Ist das gewollt und ich stehe auf dem Schlauch oder evtl. ein kleiner Tippfehler?

LG
Mirko
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 11 Juni 2015, 17:10:15
Hallo Mirko,

das war ein Tippfehler, habe meinen Beitrag editiert.
Ich habe mich dazu entschlossen das d_ wegzulassen, da ich dies als wildcard für dummys nutze.
desweiteren hat sich das ntfy_setreading noch ein bisschen abgewandelt um nicht bei jedem Event zu triggern.

Bitte Berichte mir was sonst noch unstimmig ist.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Mirko815 am 15 Juni 2015, 13:42:06
Hallo igami,

ich habe nun (glaube ich) Deinen kompletten Code kopiert und den Bedürfnissen nach angepasst. Leider kommt bei mir bei den Zeiträumen immer noch kein Drop-Down-Feld. Außerdem ist das Feld zum Übertragen der Werte nicht anklickbar.

Wo kann das Problem liegen? Darf ich Dir meinen kompletten Code hochladen?

LG
Mirko
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 15 Juni 2015, 15:49:42
Hallo Mirko,

es scheint so, als wenn die dummys bei dir immer noch d_cc_ heißen, in der ReadingsGroup wird nach cc_ gesucht für die Dropdowns.
Für das anklicken steht im commands Attribut der Readingsgroup ganz am Ende

'rg_thermostate.burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'

dort muss der Name deiner Readingsgroup stehen. Ist eine potentielle Fehlerquelle, werde ich noch ändern.

Was hast du denn noch angepasst?

grüße
Igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Mirko815 am 15 Juni 2015, 19:08:12
Hallo igami,

habe den Fehler gefunden. In dem makefile war noch der Name anstatt des Buchstabens als Aufruf.
Und meine RG hieß anders. Habe den Aufruf nicht angepasst.
Soweit ich jetzt beurteilen kann, läuft Dein Code prima.

LG und vielen Dank für die Hilfe.
Mirko
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: gpbim am 16 Juni 2015, 08:52:54
Hello,
great job :)

In building I have a large number of thermostats and window sensors. If you would like to check the statuses of all batteries would require a lot of clicking so I wrote a function that returns the status of the battery in each room for all the thermostats and window sensors in the room.
It is necessary to make additional dummys ({makefine} function), their values are reading through the "state". Through state value is in the table already read from the thermostat, so I wondering if I can expect any problems?
This are my first lines in Perl so you will certainly found some bugs... :)


Because of some troubles with thermostats which have different fw versions and return no 'ok' status for battery I used analog values of voltage in function...

Battery status:

sub bat($){
  my @input    = split(/[§\s]+/,shift);
  my $device   = $input[0];
  my $function = $input[1];
  my $lowBat = 0;

    if($function eq "battery"){
    my $room =  AttrVal($device, 'room', 'undef');

    my $roomNumber = $room;
    $roomNumber =~ s/\D//g;

        my @battery_dev = devspec2array("TYPE=CUL_HM:FILTER=model=(HM-CC-RT-DN|HM-SEC-SC-2):FILTER=room=$room");
foreach my $battery_dev (@battery_dev){

            # check battery status individual devices
        my $batteryStatus = ReadingsVal("$battery_dev","battery","");
my $batteryLevel = ReadingsVal("$battery_dev","batteryLevel","");
my $R_lowBatLimitRT = ReadingsVal("$battery_dev","R-lowBatLimitRT","");

        #$batteryLevel =~ s/\D//g;
#$R_lowBatLimitRT =~ s/\D//g;

                        $batteryLevel =~ s/[^\d.]//g;
                        $R_lowBatLimitRT  =~ s/[^\d.]//g;

            if((((AttrVal("$battery_dev","model","") eq "HM-SEC-SC-2") && ($batteryStatus ne 'ok'))) || ((AttrVal("$battery_dev","model","") eq "HM-CC-RT-DN") && ($batteryLevel < $R_lowBatLimitRT)))
                {
         $lowBat = ++$lowBat;
{fhem("set d_batteryStatus_$roomNumber $lowBat")};
                }
                     
   if ($lowBat >= 1)
   {
   {fhem("set d_batteryStatus_$roomNumber low")};
   }
                   else
   {
   {fhem("set d_batteryStatus_$roomNumber ok")};
   }

        }
     return(("d_batteryStatus_".$roomNumber));
    }
}



Makefine:

sub makefine{

#d_climaControl definieren und Initialisiern
#  my @devices = devspec2array('.._(......|....)_Heizung_Clima');
  my @devices = devspec2array('CUL_HM_Soba_..._Clima');

  foreach my $device (@devices){
    my $room = AttrVal($device, 'room', 'undef');
    if($room ne 'undef'){
      my $roomNumber = $room;
      $roomNumber =~ s/\D//g;
      my $climaControl = ('d_climaControl_'.$roomNumber);

      my $batteryStatus = ('d_batteryStatus_'.$roomNumber);

      if(!(defined($defs{$climaControl}))){
           {fhem("define $climaControl dummy")}
           {fhem("setreading $climaControl dayTemp 22.0")}
           {fhem("setreading $climaControl nightTemp 18.0")}
           {fhem("setreading $climaControl saturday_period_1_stop 20:00")}
           {fhem("setreading $climaControl saturday_period_1_start 06:00")}
           {fhem("setreading $climaControl saturday_period_2_stop 06:00")}
           {fhem("setreading $climaControl saturday_period_2_start 20:00")}
           {fhem("setreading $climaControl sunday_period_1_stop 20:00")}
           {fhem("setreading $climaControl sunday_period_1_start 06:00")}
           {fhem("setreading $climaControl sunday_period_2_stop 06:00")}
           {fhem("setreading $climaControl sunday_period_2_start 20:00")}
           {fhem("setreading $climaControl workday_period_1_stop 20:00")}
           {fhem("setreading $climaControl workday_period_1_start 06:00")}
           {fhem("setreading $climaControl workday_period_2_stop 06:00")}
           {fhem("setreading $climaControl workday_period_2_start 20:00")}
           {fhem("attr $climaControl room $room")}

           {fhem("define $batteryStatus dummy")}
           {fhem("attr $batteryStatus room $room")}
      }
    }
  }

  #Attribute aus Vorgaben übernehmen
  my @defaults = devspec2array('default_.*');

  foreach my $default (@defaults){
    my $wildcard = AttrVal($default,'wildcard','wildcard error');
    my @attributes = split(' ',AttrVal($default,'attributes','attributes error'));
    foreach my $attribute (@attributes){
      my $attrval = AttrVal($default,$attribute,'attribute error');
      fhem("attr $wildcard $attribute $attrval")
    }
  }
}



fhem.cfg

define rg_thermostate readingsGroup <>,Ogrevanje@d_label,<|>,Temperatura@d_label,<|>,Status@d_label,<|>,Urnik@d_label,<|>,Delovni_dan@d_label,<|>,Sobota@d_label,<|>,Nedelja@d_label,<|>,Prenos@d_label,<> CUL_HM_Soba_..._Clima:state@{bat($DEVICE."§battery")},?alias,<|>,<Nastavitev>,desired-temp,<Dan>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-globalBtnLock@{rg($DEVICE."§device")},<|>,Obdobje1@d_label,<|>,workday_period_1_start@{rg($DEVICE."§clima")},workday_period_1_stop@{rg($DEVICE."§clima")},<|>,saturday_period_1_start@{rg($DEVICE."§clima")},saturday_period_1_stop@{rg($DEVICE."§clima")},<|>,sunday_period_1_start@{rg($DEVICE."§clima")},sunday_period_1_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Izmerjena>,measured-temp,<Noč>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,ValvePosition,<|>,Obdobje2@d_label,<|>,workday_period_2_start@{rg($DEVICE."§clima")},workday_period_2_stop@{rg($DEVICE."§clima")},<|>,saturday_period_2_start@{rg($DEVICE."§clima")},saturday_period_2_stop@{rg($DEVICE."§clima")},<|>,sunday_period_2_start@{rg($DEVICE."§clima")},sunday_period_2_stop@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>


Icons:

attr rg_thermostate valueIcon { 'state.ok' => 'batterie@lightgreen', 'state.low' => 'batterie@red', 'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off ' => 'secur_open@orange'}



George
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MrMaxy am 16 Juni 2015, 21:19:55
Hi,

ich bin schon recht weit gekommen, allerdings sieht's immer noch schrecklich aus.
Könnt ihr mir vielleicht helfen und einen Tipp geben, damit ich wieder einen kleinen Schritt nach vorne machen kann?

Mit hilfesuchenden Grüßen
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MrMaxy am 17 Juni 2015, 13:08:39
Mittlerweile habe ich auch wieder die Namen meiner Devices anstelle des "alias" dort stehen. Dazu habe ich in der readingsGroup dann das "!alias" in "?alias" geändert.
So wie es aussieht, werde ich das alles wohl noch mal neu aufsetzen. Ich denke, dass es damit zusammenhängt, dass ich Teile von vorherigen Versuchen nicht komplett entfernt hatte.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 26 Juni 2015, 08:52:01
Zitat von: igami am 12 Mai 2015, 19:35:52
so, nun habe ich wieder eine funktionierende readingsGroup.

Hallo zusammen,

ich habe gerade versucht Beitrag 140 nachzubauen. Das funktiniert bei mir nicht. Da fehlen die einstellmöglichkeiten siehe Bild. Wo muss ich jetzt meinen Fehler suchen?

Ausserdem ist da anscheint noch ein Fehler im Beitrag
Zitat von: igami am 12 Mai 2015, 19:35:52
... .*_Clima:<>,!alias,<Soll> ...

Sollte das nicht an der Stellle ... .*_Clima:<>,[color=red]?[/color]alias,<Soll> ... heißen? Weil mit ! steht bei mir nur "alias".
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 Juni 2015, 09:32:20
Hallo RettungsTim,

das mit dem ! ist absicht, das ich nicht immer direkt ein alias vergebe würde dann alles verrutschen. So wird aber über die sub rg

    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }

der Device Name zurückgegeben, sofern kein alias gesetzt ist. Da einige ja auch die Devices umbenennen anstann einen Alias zu vergeben.

Anscheinend hast du den Punkt
Zitat
Nun muss die makefine sub aufgerufen werden.
übersprungen, ich gebe zu, dass der nicht wirklich hervorsticht unter den anderen Anweisungen.
Mach also bitte mal ein

{makefine}

Damit werden die ganzen Dummys zum setzen der Zeiten erzeugt und mit default werten gefüllt, das ist das was bei dir im Screenshot fehlt.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 26 Juni 2015, 09:52:24
Nein den Punkt habe ich nicht übersprungen!  :'(
Das kenn ich noch von der ersten Version die ich schon mal in Betrieb hatte.

Wenn ich aber Alias vergebe wir mir das mit "!" nur so angezeigt, siehe Bild
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 Juni 2015, 09:55:14
Hast du die sub rg angelegt? Wäre die Alternative, denn alles was fehlt wird von der Sub aufgelöst.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 26 Juni 2015, 10:03:09
Da hab ich mal nen neustart Probiert  ;D

Aber ich scheine noch ein Copy-past fehler zu haben. Siehe Bild.

Beim klick auf die Zeit kommt ein Fehler. Siehe Bild.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 Juni 2015, 10:06:25
Guck dir mal bitte die setList von einem deiner cc_ Devices an und das commands Attribut von der Readingsgroup. Meine Vermutung ist, dass die setlList nicht gefüllt wurde.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 26 Juni 2015, 10:17:23
Verstehe ich nicht. Sollte alles drin sein!

Da ist was im Log jetzt drin:
2015.06.26 10:17:48 3: cc_01_Heizung: unknown attribute attributes. Type 'attr cc_.* ?' for a detailed list.
2015.06.26 10:17:48 3: attr cc_.* attributes attribute error : cc_01_Heizung: unknown attribute attributes. Type 'attr cc_.* ?' for a detailed list.
2015.06.26 10:17:48 3: cc_01_Heizung: unknown attribute error. Type 'attr cc_.* ?' for a detailed list.
2015.06.26 10:17:48 3: attr cc_.* error attribute error : cc_01_Heizung: unknown attribute error. Type 'attr cc_.* ?' for a detailed list.


Das ist ein CC Dummy
Internals:
   NAME       default_cc
   NR         578
   STATE      0_period_1_start 00:00
   TYPE       dummy
   Readings:
     2015-06-26 09:02:30   state           0_period_1_start 00:00
Attributes:
   setList    dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 8_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00
   userattr   attributes device wildcard
   wildcard   cc_.*



Das ist mein rg_*
Internals:
   DEF        <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<>
.*_Clima:<>,!alias,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE,'cc')},controlMode,R-btnLock@{rg($DEVICE,'device')},<Zeitraum&nbsp;1>,8_period_1_start@{rg($DEVICE,'cc')},8_period_1_stop@{rg($DEVICE,'cc')},6_period_1_start@{rg($DEVICE,'cc')},6_period_1_stop@{rg($DEVICE,'cc')},0_period_1_start@{rg($DEVICE,'cc')},0_period_1_stop@{rg($DEVICE,'cc')},<%system_fhem_update>,<br>,state@{rg($DEVICE,'device')},<%getConfig>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE,'cc')},<Ventil>,ValvePosition,<Zeitraum&nbsp;2>,8_period_2_start@{rg($DEVICE,'cc')},8_period_2_stop@{rg($DEVICE,'cc')},6_period_2_start@{rg($DEVICE,'cc')},6_period_2_stop@{rg($DEVICE,'cc')},0_period_2_start@{rg($DEVICE,'cc')},0_period_2_stop@{rg($DEVICE,'cc')},<%burstXmit>
   NAME       rg_thermostate
   NR         582
   NTFY_ORDER 50-rg_thermostate
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     EG_fl_RT_tuer_Clima 1
     EG_wz_RT_li_Clima 1
     EG_wz_RT_re_Clima 1
     OG_bz_RT_li_Clima 1
     OG_bz_RT_re_Clima 1
   Content2:
     EG_fl_RT_tuer 1
     EG_wz_RT_links 1
     EG_wz_RT_rechts 1
     OG_bz_RT_links 1
     OG_bz_RT_rechts 1
     cc_01_Heizung 1
   DEVICES:
     ARRAY(0x36e3d58)
     ARRAY(0x3666808)
     ARRAY(0x36e48f8)
     ARRAY(0x360c2e8)
     ARRAY(0x35b6af0)
     ARRAY(0x3684648)
   DEVICES2:
     ARRAY(0x36e3d58)
     ARRAY(0x3666808)
     ARRAY(0x36e48f8)
     ARRAY(0x360c2e8)
     ARRAY(0x35b6af0)
     ARRAY(0x3684648)
     ARRAY(0x19d5840)
     ARRAY(0x360dd78)
     ARRAY(0x35c0a88)
     ARRAY(0x361e9f0)
     ARRAY(0x36abc38)
     ARRAY(0x32816f8)
     ARRAY(0x35c56f0)
     ARRAY(0x361eb58)
     ARRAY(0x36485d8)
     ARRAY(0x36ab228)
     ARRAY(0x3675dc0)
     ARRAY(0x37fe560)
     ARRAY(0x36530e8)
     ARRAY(0x35c1d80)
     ARRAY(0x36460c0)
     ARRAY(0x36e5f08)
     ARRAY(0x360c108)
     ARRAY(0x37fdf00)
     ARRAY(0x35f5408)
     ARRAY(0x3665768)
     ARRAY(0x35b7108)
     ARRAY(0x35b2598)
     ARRAY(0x3706020)
     ARRAY(0x3676708)
   Fhem:
     lastDefChange 18
     last_update 1435306437.80058
   Helper:
     DEF
     commands   {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-btnLock' => 'trigger ntfy_rg $DEVICE btnLock', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', '8_period_1_start' => '8_period_1_start:', '8_period_1_stop' => '8_period_1_stop:', '6_period_1_start' => '6_period_1_start:', '6_period_1_stop' => '6_period_1_stop:', '0_period_1_start' => '0_period_1_start:', '0_period_1_stop' => '0_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8_period_2_start' => '8_period_2_start:', '8_period_2_stop' => '8_period_2_stop:', '6_period_2_start' => '6_period_2_start:', '6_period_2_stop' => '6_period_2_stop:', '0_period_2_start' => '0_period_2_start:', '0_period_2_stop' => '0_period_2_stop:', 'rg_thermostate.burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
     valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>". rg($DEVICE,"alias") ."</a>"}' , 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
     Positions:
       EG_fl_RT_tuer.R-btnLock 2:8
       EG_fl_RT_tuer.state 3:1
       EG_fl_RT_tuer_Clima.ValvePosition 3:8
       EG_fl_RT_tuer_Clima.alias 2:2
       EG_fl_RT_tuer_Clima.controlMode 2:7
       EG_fl_RT_tuer_Clima.desired-temp 2:4
       EG_fl_RT_tuer_Clima.measured-temp 3:4
       EG_wz_RT_li_Clima.ValvePosition 5:8
       EG_wz_RT_li_Clima.alias 4:2
       EG_wz_RT_li_Clima.controlMode 4:7
       EG_wz_RT_li_Clima.desired-temp 4:4
       EG_wz_RT_li_Clima.measured-temp 5:4
       EG_wz_RT_links.R-btnLock 4:8
       EG_wz_RT_links.state 5:1
       EG_wz_RT_re_Clima.ValvePosition 7:8
       EG_wz_RT_re_Clima.alias 6:2
       EG_wz_RT_re_Clima.controlMode 6:7
       EG_wz_RT_re_Clima.desired-temp 6:4
       EG_wz_RT_re_Clima.measured-temp 7:4
       EG_wz_RT_rechts.R-btnLock 6:8
       EG_wz_RT_rechts.state 7:1
       OG_bz_RT_li_Clima.ValvePosition 9:8
       OG_bz_RT_li_Clima.alias 8:2
       OG_bz_RT_li_Clima.controlMode 8:7
       OG_bz_RT_li_Clima.desired-temp 8:4
       OG_bz_RT_li_Clima.measured-temp 9:4
       OG_bz_RT_links.R-btnLock 8:8
       OG_bz_RT_links.state 9:1
       OG_bz_RT_re_Clima.ValvePosition 11:8
       OG_bz_RT_re_Clima.alias 10:2
       OG_bz_RT_re_Clima.controlMode 10:7
       OG_bz_RT_re_Clima.desired-temp 10:4
       OG_bz_RT_re_Clima.measured-temp 11:4
       OG_bz_RT_rechts.R-btnLock 10:8
       OG_bz_RT_rechts.state 11:1
       cc_01_Heizung.0_period_1_start 2:14,4:14,6:14,8:14,10:14
       cc_01_Heizung.0_period_1_stop 2:15,4:15,6:15,8:15,10:15
       cc_01_Heizung.0_period_2_start 3:14,5:14,7:14,9:14,11:14
       cc_01_Heizung.0_period_2_stop 3:15,5:15,7:15,9:15,11:15
       cc_01_Heizung.6_period_1_start 2:12,4:12,6:12,8:12,10:12
       cc_01_Heizung.6_period_1_stop 2:13,4:13,6:13,8:13,10:13
       cc_01_Heizung.6_period_2_start 3:12,5:12,7:12,9:12,11:12
       cc_01_Heizung.6_period_2_stop 3:13,5:13,7:13,9:13,11:13
       cc_01_Heizung.8_period_1_start 2:10,4:10,6:10,8:10,10:10
       cc_01_Heizung.8_period_1_stop 2:11,4:11,6:11,8:11,10:11
       cc_01_Heizung.8_period_2_start 3:10,5:10,7:10,9:10,11:10
       cc_01_Heizung.8_period_2_stop 3:11,5:11,7:11,9:11,11:11
       cc_01_Heizung.dayTemp 2:6,4:6,6:6,8:6,10:6
       cc_01_Heizung.nightTemp 3:6,5:6,7:6,9:6,11:6
     recalc:




       ARRAY(0x36a0de0)



       ARRAY(0x36e2878)
     Valuecolumns:
       Heizung    colspan="2"
       Montag-Freitag colspan="2"
       Samstag    colspan="2"
       Sonntag    colspan="2"
       Status     colspan="2"
       Temperatur colspan="4"
       alias      colspan="2"
     Valueicon:
       R-btnLock.off secur_open@red
       R-btnLock.off  secur_open@red
       R-btnLock.on secur_locked@green
       R-btnLock.on  secur_locked@green
       R-btnLock.set_off secur_open@orange
       R-btnLock.set_off  secur_open@orange
       R-btnLock.set_on secur_locked@orange
       R-btnLock.set_on  secur_locked@orange
       R-globalBtnLock.off secur_open@red
       R-globalBtnLock.off  secur_open@red
       R-globalBtnLock.on secur_locked@green
       R-globalBtnLock.on  secur_locked@green
       R-globalBtnLock.set_off secur_open@orange
       R-globalBtnLock.set_off  secur_open@orange
       R-globalBtnLock.set_on secur_locked@orange
       R-globalBtnLock.set_on  secur_locked@orange
       controlMode.auto sani_heating_automatic@green
       controlMode.manual sani_heating_manual@red
       controlMode.set_auto sani_heating_automatic@orange
       controlMode.set_manual sani_heating_manual@orange
     Values:
       formated:

         ARRAY(0x3721be0)
         ARRAY(0x3729010)

         ARRAY(0x32811d0)

         ARRAY(0x35c1420)
         ARRAY(0x3663d20)
         ARRAY(0x35c05f0)

         ARRAY(0x35b2c48)
         ARRAY(0x36880f0)
         ARRAY(0x36aaac0)
         ARRAY(0x36e5bc0)
         ARRAY(0x36644d0)
         ARRAY(0x35ced10)
       orig:

         ARRAY(0x3687640)
         ARRAY(0x3662578)

         ARRAY(0x3729aa8)

         ARRAY(0x35bcb08)
         ARRAY(0x35b2808)
         ARRAY(0x369f8a0)

         ARRAY(0x356a950)
         ARRAY(0x35f53f0)
         ARRAY(0x3686398)
         ARRAY(0x35ad860)
         ARRAY(0x35b2d08)
         ARRAY(0x35bb120)
       prefixsuffix:

         ARRAY(0x35ae1b0)
         ARRAY(0x361b5c8)

         ARRAY(0x35aa318)

         ARRAY(0x36587d8)
         ARRAY(0x3287c30)
         ARRAY(0x35a6450)

         ARRAY(0x3729a30)
         ARRAY(0x3707e58)
         ARRAY(0x36aced0)
         ARRAY(0x377c270)
         ARRAY(0x363b888)
         ARRAY(0x3664308)
Attributes:
   commands   {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-btnLock' => 'trigger ntfy_rg $DEVICE btnLock', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', '8_period_1_start' => '8_period_1_start:', '8_period_1_stop' => '8_period_1_stop:', '6_period_1_start' => '6_period_1_start:', '6_period_1_stop' => '6_period_1_stop:', '0_period_1_start' => '0_period_1_start:', '0_period_1_stop' => '0_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8_period_2_start' => '8_period_2_start:', '8_period_2_stop' => '8_period_2_stop:', '6_period_2_start' => '6_period_2_start:', '6_period_2_stop' => '6_period_2_stop:', '0_period_2_start' => '0_period_2_start:', '0_period_2_stop' => '0_period_2_stop:', 'rg_thermostate.burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
   nonames    1
   room       01_Heizung
   valueColumns {   'Heizung' => 'colspan="2"',   'alias' => 'colspan="2"',   'Temperatur' => 'colspan="4"',   'Status' => 'colspan="2"',   'Montag-Freitag' => 'colspan="2"',   'Samstag' => 'colspan="2"',   'Sonntag' => 'colspan="2"'}
   valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>". rg($DEVICE,"alias") ."</a>"}' , 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
   valueIcon  {'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-btnLock.on' => 'secur_locked@green', 'R-btnLock.on ' => 'secur_locked@green', 'R-btnLock.set_on' => 'secur_locked@orange', 'R-btnLock.set_on ' => 'secur_locked@orange', 'R-btnLock.off' => 'secur_open@red', 'R-btnLock.off ' => 'secur_open@red', 'R-btnLock.set_off' => 'secur_open@orange', 'R-btnLock.set_off ' => 'secur_open@orange', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on' => 'secur_locked@orange', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off' => 'secur_open@orange', 'R-globalBtnLock.set_off ' => 'secur_open@orange', }
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 Juni 2015, 10:20:16
Das ist das default_cc. Steht bei den anderen auch was in der setList?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 26 Juni 2015, 10:21:34
Zitat von: igami am 26 Juni 2015, 10:20:16
Das ist das default_cc. Steht bei den anderen auch was in der setList?

Jetzt kommen wir an den Punkt andem ich wohl was nicht verstanden habe.

An welchen anderen?!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 Juni 2015, 10:26:32
Die werden von makefine angelegt für jedes Device, dass auf _Clima endet. mach mal ein

list cc_.*

dann sollten die aufgelistet werden.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 26 Juni 2015, 10:30:08
Das ist nicht viel

Internals:
   NAME       cc_01_Heizung
   NR         579
   STATE      ???
   TYPE       dummy
   Readings:
     2015-06-26 08:36:05   0_period_1_start 04:15
     2015-06-26 08:36:05   0_period_1_stop 21:00
     2015-06-26 08:36:05   0_period_2_start 24:00
     2015-06-26 08:36:05   0_period_2_stop 24:00
     2015-06-26 08:36:05   6_period_1_start 04:15
     2015-06-26 08:36:05   6_period_1_stop 21:00
     2015-06-26 08:36:05   6_period_2_start 24:00
     2015-06-26 08:36:05   6_period_2_stop 24:00
     2015-06-26 08:36:05   8_period_1_start 04:15
     2015-06-26 08:36:05   8_period_1_stop 06:30
     2015-06-26 08:36:05   8_period_2_start 15:15
     2015-06-26 08:36:05   8_period_2_stop 21:00
     2015-06-26 08:36:05   dayTemp         21.0
     2015-06-26 08:36:05   nightTemp       17.0
Attributes:
   alias      01_Heizung
   room       01_Heizung
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 Juni 2015, 10:37:28
Sind deine Heizungsthermostate alle in einem Raum in FHEM? Das würde erklären, warum du nur einen Dummy hast. Desweiteren fehlt dort das Attribut setList. Mach mal bitte noch ein {makefine} und guck nach ob die dann eingetragen werden.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 26 Juni 2015, 10:41:09
Ein Makefine hatte ich schon zweimal gemacht. Bringt keine Besserung.

Es sind alle RT's in einem FHEM Raum!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 Juni 2015, 11:02:52
Habe noch einen Fehler gefunden. Es fehlt das Attribut attributes beim default cc, in dem stehen die Attribute die übertragen werden.
Ein

attr default_cc attributes setList
{makefine}

sollte helfen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: HoTi am 26 Juni 2015, 11:05:34
jiiiiiiipiiiii

Vielen Danke dir!!!!!

In der Anleitung solltest du noch ein Shutdown restart anfügen, weil das braucht es!

Ist das soll?

2015.06.26 11:04:03 1: PERL WARNING: Smartmatch is experimental at (eval 9854) line 2.
2015.06.26 11:04:03 3: eval: my $NAME='cc_01_Heizung';my $EVENT='8_period_1_start 04:30';my $EVTPART1='04:30';my $TYPE='dummy';my $EVTPART0='8_period_1_start';{
if(($EVENT ~~ / /) and ($EVENT !~ /: /))
  {fhem("sleep 0.001; setreading $NAME $EVENT")}
}
2015.06.26 11:04:03 1: PERL WARNING: Smartmatch is experimental at (eval 9855) line 2.
2015.06.26 11:04:03 3: eval: my $EVTPART1='04:30';my $TYPE='dummy';my $EVENT='8_period_1_start: 04:30';my $NAME='cc_01_Heizung';my $EVTPART0='8_period_1_start:';{
if(($EVENT ~~ / /) and ($EVENT !~ /: /))
  {fhem("sleep 0.001; setreading $NAME $EVENT")}
}
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 26 Juni 2015, 11:12:16
Schön, dass es nun funktioniert. Solltest du unterschiedliche Heizprogramme einstellen wollen müssen die Thermostate in verschiedenen FHEM Räumen sein. Danach einfach noch einmal {makefine} aufrufen.

Ich denke nächstes Wocheende werde ich mal dazu kommen die Anleitung zu überarbeiten und dann auch das Wiki.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Dobi am 03 Juli 2015, 08:49:45
Hallo in die FHEM-Runde,

Ich versuche nun das Projekt aus Post #140 nachzubauen, scheitere aber schon bei der FHEM.cfg....

Meine (eigentlich der Code von igami):

fhem.cfg

define default_cc dummy

attr default_cc attributes setList
attr default_cc room Wohnung
attr default_cc setList dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 8_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00
attr default_cc userattr attributes device wildcard
attr default_cc wildcard cc_.*

define ntfy_rg notify ntfy_rg {rg($EVTPART0,$EVTPART1)}
define ntfy_setreading notify (cc|d)_.* {if(($EVENT ~~ / /) and ($EVENT !~ /: /)) {fhem("sleep 0.001; setreading $NAME $EVENT")}}

define rg_thermostate readingsGroup <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<>
.*_Clima:<>,!alias,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE,'cc')},controlMode,R-btnLock@{rg($DEVICE,'device')},<Zeitraum&nbsp;1>,8_period_1_start@{rg($DEVICE,'cc')},8_period_1_stop@{rg($DEVICE,'cc')},6_period_1_start@{rg($DEVICE,'cc')},6_period_1_stop@{rg($DEVICE,'cc')},0_period_1_start@{rg($DEVICE,'cc')},0_period_1_stop@{rg($DEVICE,'cc')},<%system_fhem_update>,<br>,state@{rg($DEVICE,'device')},<%getConfig>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE,'cc')},<Ventil>,ValvePosition,<Zeitraum&nbsp;2>,8_period_2_start@{rg($DEVICE,'cc')},8_period_2_stop@{rg($DEVICE,'cc')},6_period_2_start@{rg($DEVICE,'cc')},6_period_2_stop@{rg($DEVICE,'cc')},0_period_2_start@{rg($DEVICE,'cc')},0_period_2_stop@{rg($DEVICE,'cc')},<%burstXmit>
attr rg_thermostate commands {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-btnLock' => 'trigger ntfy_rg $DEVICE btnLock', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', '8_period_1_start' => '8_period_1_start:', '8_period_1_stop' => '8_period_1_stop:', '6_period_1_start' => '6_period_1_start:', '6_period_1_stop' => '6_period_1_stop:', '0_period_1_start' => '0_period_1_start:', '0_period_1_stop' => '0_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8_period_2_start' => '8_period_2_start:', '8_period_2_stop' => '8_period_2_stop:', '6_period_2_start' => '6_period_2_start:', '6_period_2_stop' => '6_period_2_stop:', '0_period_2_start' => '0_period_2_start:', '0_period_2_stop' => '0_period_2_stop:', 'rg_thermostate.burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
attr rg_thermostate nonames 1
attr rg_thermostate room Wohnung
attr rg_thermostate valueColumns {   'Heizung' => 'colspan="2"',   'alias' => 'colspan="2"',   'Temperatur' => 'colspan="4"',   'Status' => 'colspan="2"',   'Montag-Freitag' => 'colspan="2"',   'Samstag' => 'colspan="2"',   'Sonntag' => 'colspan="2"'}
attr rg_thermostate valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>". rg($DEVICE,"alias") ."</a>"}' , 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
attr rg_thermostate valueIcon {'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-btnLock.on' => 'secur_locked@green', 'R-btnLock.on ' => 'secur_locked@green', 'R-btnLock.set_on' => 'secur_locked@orange', 'R-btnLock.set_on ' => 'secur_locked@orange', 'R-btnLock.off' => 'secur_open@red', 'R-btnLock.off ' => 'secur_open@red', 'R-btnLock.set_off' => 'secur_open@orange', 'R-btnLock.set_off ' => 'secur_open@orange', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on' => 'secur_locked@orange', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off' => 'secur_open@orange', 'R-globalBtnLock.set_off ' => 'secur_open@orange', }


1. Fehler beim Speichern:

default_cc: unknown attribute attributes. Type 'attr default_cc ?' for a detailed list.

Wenn ich "attr default_cc attributes setList" manuell ausführe kommt kein Fehler.

2. Fehler beim Speichern:

Usage: setreading where is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.

3. Fehler beim Speichern:
Unknown command .*_Clima:<>,!alias,,desired-temp,,dayTemp@{rg($DEVICE,'cc')},controlMode,R-btnLock@{rg($DEVICE,'device')},,8_period_1_start@{rg($DEVICE,'cc')},8_period_1_stop@{rg($DEVICE,'cc')},6_period_1_start@{rg($DEVICE,'cc')},6_period_1_stop@{rg($DEVICE,'cc')},0_period_1_start@{rg($DEVICE,'cc')},0_period_1_stop@{rg($DEVICE,'cc')},<%system_fhem_update>,
,state@{rg($DEVICE,'device')},<%getConfig>,,measured-temp,,nightTemp@{rg($DEVICE,'cc')},,ValvePosition,,8_period_2_start@{rg($DEVICE,'cc')},8_period_2_stop@{rg($DEVICE,'cc')},6_period_2_start@{rg($DEVICE,'cc')},6_period_2_stop@{rg($DEVICE,'cc')},0_period_2_start@{rg($DEVICE,'cc')},0_period_2_stop@{rg($DEVICE,'cc')},<%burstXmit>, try help.


Ich habe die Definitionen in Notepad++ bearbeitet und dann in den Editor kopiert (hier liegt offensichtlich der Fehler, aber ich kann keine Sonderzeichen/Zeilenumsprünge oä. erkennen.

zur Info und Vervollständigung noch meine 99_myUtils.pm

use Switch;

sub makefine{

# climaControl definieren und initialisieren
my @devices = devspec2array(AttrVal('default_cc','devices','.*_Clima'));

foreach my $device (@devices){
   my $room = AttrVal($device, 'room', 'undef');
   if($room ne 'undef'){
     my $cc = room2devspec($room);
      $cc = 'cc_'.$cc;
                             
     if(!(defined($defs{$cc}))){
          {fhem("define $cc dummy")}
          {fhem("setreading $cc dayTemp 21.0")}
          {fhem("setreading $cc nightTemp 17.0")}
          {fhem("setreading $cc 6_period_1_stop 21:00")}
          {fhem("setreading $cc 6_period_1_start 04:15")}
          {fhem("setreading $cc 6_period_2_stop 24:00")}
          {fhem("setreading $cc 6_period_2_start 24:00")}
          {fhem("setreading $cc 0_period_1_stop 21:00")}
          {fhem("setreading $cc 0_period_1_start 04:15")}
          {fhem("setreading $cc 0_period_2_stop 24:00")}
          {fhem("setreading $cc 0_period_2_start 24:00")}
          {fhem("setreading $cc 8_period_1_stop 06:30")}
          {fhem("setreading $cc 8_period_1_start 04:15")}
          {fhem("setreading $cc 8_period_2_stop 21:00")}
          {fhem("setreading $cc 8_period_2_start 15:15")}
          {fhem("attr $cc alias $room")}
          {fhem("attr $cc room $room")}
     }
   }
}

  #Attribute aus Vorgaben übernehmen
  my @defaults = devspec2array('default_.*');

  foreach my $default (@defaults){
    my $wildcard = AttrVal($default,'wildcard','wildcard error');
    my @attributes = split(' ',AttrVal($default,'attributes','attributes error'));
    foreach my $attribute (@attributes){
      my $attrval = AttrVal($default,$attribute,'attribute error');
      fhem("attr $wildcard $attribute $attrval")
    }
  }
}

sub rg($$){
  my $device = shift;
  my $function = shift;
 
  my $room = AttrVal($device, 'room', 'unsorted');
 
  switch ($function) {
    case 'cc' {
      return ('cc_'.room2devspec($room));
    }
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');
     
      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'btnLock' {
      $device = rg($device, 'device');
      my $btnLock = ReadingsVal($device, 'R-btnLock', '');
     
      switch ($btnLock) {
        case /off/ {
          fhem("set $device regSet btnLock on");
        }
        else {
          fhem("set $device regSet btnLock off");
        }
      }
      fhem ("set $device getConfig");
    }
    case 'globalBtnLock' {
      $device = rg($device, 'device');
      my $globalBtnLock = ReadingsVal($device, 'R-btnLock', '');
     
      switch ($globalBtnLock) {
        case /off/ {
          fhem("set $device regSet globalBtnLock on");
        }
        else {
          fhem("set $device regSet globalBtnLock off");
        }
      }
      fhem ("set $device getConfig");
    }
    case 'setTimeTable' {
      my $cc = rg($device, 'cc');
      my $dayTemp = ReadingsVal( $cc, "dayTemp" , 21.0 );
      my $nightTemp = ReadingsVal( $cc, "nightTemp" , 17.0 );
      my $workday_period_1_start = ReadingsVal( $cc, "8_period_1_start" , "06:30" );
      my $workday_period_1_stop = ReadingsVal( $cc, "8_period_1_stop" , "18:00" );
      my $workday_period_2_start = ReadingsVal( $cc, "8_period_2_start" , "24:00" );
      my $workday_period_2_stop = ReadingsVal( $cc, "8_period_2_stop" , "24:00" );
      my $saturday_period_1_start = ReadingsVal( $cc, "6_period_1_start" , "06:30" );
      my $saturday_period_1_stop = ReadingsVal( $cc, "6_period_1_stop" , "12:00" );
      my $saturday_period_2_start = ReadingsVal( $cc, "6_period_2_start" , "24:00" );
      my $saturday_period_2_stop = ReadingsVal( $cc, "6_period_2_stop" , "24:00" );
      my $sunday_period_1_start = ReadingsVal( $cc, "0_period_1_start" , "24:00" );
      my $sunday_period_1_stop = ReadingsVal( $cc, "0_period_1_stop" , "24:00" );
      my $sunday_period_2_start = ReadingsVal( $cc, "0_period_2_start" , "24:00" );
      my $sunday_period_2_stop = ReadingsVal( $cc, "0_period_2_stop" , "24:00" );
   
      fhem("set $device tempListMon prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListTue prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListWed prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListThu prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListFri prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListSat prep $saturday_period_1_start $nightTemp $saturday_period_1_stop $dayTemp $saturday_period_2_start $nightTemp $saturday_period_2_stop $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListSun exec $sunday_period_1_start   $nightTemp $sunday_period_1_stop   $dayTemp $sunday_period_2_start   $nightTemp $sunday_period_2_stop   $dayTemp 24:00 $nightTemp");
    }
    case 'getConfig' {
      $device = rg($device, 'device');
  fhem("set $device getConfig");
    }
    case 'burstXmit' {
      $device = rg($device, 'device');
      fhem("set $device burstXmit");
    }
  }
}
sub room2devspec($){
  my $room = shift;
    my %umlaute = ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
    my $umlautkeys = join ("|", keys(%umlaute));
    $room =~ s/($umlautkeys)/$umlaute{$1}/g;
    $room =~ s/[^A-Za-z0-9\.\:\_]//g;
   
  return $room;
}
1;


Ich bin noch ziemlicher Neuling was FHEM/Pearl betrifft, aber bitte um Hilfe! Danke!

LG
Martin
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Dobi am 04 Juli 2015, 12:41:55
So bin nun ein Stück weiter, war wirklich der Editor...

Aber nun bekomme ich keinen Content für die readingGroup:

Meine Reading Group:
nternals:
   DEF        <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<>.*_Clima:<>,!alias,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE,'cc')},controlMode,R-btnLock@{rg($DEVICE,'device')},<Zeitraum 1>,,8_period_1_start@{rg($DEVICE,'cc')},8_period_1_stop@{rg($DEVICE,'cc')},6_period_1_start@{rg($DEVICE,'cc')},6_period_1_stop@{rg($DEVICE,'cc')},0_period_1_start@{rg($DEVICE,'cc')},0_period_1_stop@{rg($DEVICE,'cc')},<%system_fhem_update>,<br>,state@{rg($DEVICE,'device')},<%getConfig>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE,'cc')},<Ventil>,ValvePosition,<Zeitraum 2>,8_period_2_start@{rg($DEVICE,'cc')},8_period_2_stop@{rg($DEVICE,'cc')},6_period_2_start@{rg($DEVICE,'cc')},6_period_2_stop@{rg($DEVICE,'cc')},0_period_2_start@{rg($DEVICE,'cc')},0_period_2_stop@{rg($DEVICE,'cc')},<%burstXmit>
   NAME       rg_thermostate
   NR         172
   NTFY_ORDER 50-rg_thermostate
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
   Content2:
   DEVICES:
   Fhem:
     lastDefChange 1
     last_update 1436006037.85366
   Helper:
     DEF
     commands   {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-btnLock' => 'trigger ntfy_rg $DEVICE btnLock', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', '8_period_1_start' => '8_period_1_start:', '8_period_1_stop' => '8_period_1_stop:', '6_period_1_start' => '6_period_1_start:', '6_period_1_stop' => '6_period_1_stop:', '0_period_1_start' => '0_period_1_start:', '0_period_1_stop' => '0_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8_period_2_start' => '8_period_2_start:', '8_period_2_stop' => '8_period_2_stop:', '6_period_2_start' => '6_period_2_start:', '6_period_2_stop' => '6_period_2_stop:', '0_period_2_start' => '0_period_2_start:', '0_period_2_stop' => '0_period_2_stop:', 'rg_thermostate.burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
     valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>". rg($DEVICE,"alias") ."</a>"}' , 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
     Valuecolumns:
       Heizung    colspan="2"
       Montag-Freitag colspan="2"
       Samstag    colspan="2"
       Sonntag    colspan="2"
       Status     colspan="2"
       Temperatur colspan="4"
       alias      colspan="2"
     Valueicon:
       R-btnLock.off secur_open@red
       R-btnLock.off  secur_open@red
       R-btnLock.on secur_locked@green
       R-btnLock.on  secur_locked@green
       R-btnLock.set_off secur_open@orange
       R-btnLock.set_off  secur_open@orange
       R-btnLock.set_on secur_locked@orange
       R-btnLock.set_on  secur_locked@orange
       R-globalBtnLock.off secur_open@red
       R-globalBtnLock.off  secur_open@red
       R-globalBtnLock.on secur_locked@green
       R-globalBtnLock.on  secur_locked@green
       R-globalBtnLock.set_off secur_open@orange
       R-globalBtnLock.set_off  secur_open@orange
       R-globalBtnLock.set_on secur_locked@orange
       R-globalBtnLock.set_on  secur_locked@orange
       controlMode.auto sani_heating_automatic@green
       controlMode.manual sani_heating_manual@red
       controlMode.set_auto sani_heating_automatic@orange
       controlMode.set_manual sani_heating_manual@orange
Attributes:
   commands   {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'R-btnLock' => 'trigger ntfy_rg $DEVICE btnLock', 'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock', '8_period_1_start' => '8_period_1_start:', '8_period_1_stop' => '8_period_1_stop:', '6_period_1_start' => '6_period_1_start:', '6_period_1_stop' => '6_period_1_stop:', '0_period_1_start' => '0_period_1_start:', '0_period_1_stop' => '0_period_1_stop:', 'rg_thermostate.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'rg_thermostate.getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8_period_2_start' => '8_period_2_start:', '8_period_2_stop' => '8_period_2_stop:', '6_period_2_start' => '6_period_2_start:', '6_period_2_stop' => '6_period_2_stop:', '0_period_2_start' => '0_period_2_start:', '0_period_2_stop' => '0_period_2_stop:', 'rg_thermostate.burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
   nonames    1
   room       Wohnung
   valueColumns {   'Heizung' => 'colspan="2"',   'alias' => 'colspan="2"',   'Temperatur' => 'colspan="4"',   'Status' => 'colspan="2"',   'Montag-Freitag' => 'colspan="2"',   'Samstag' => 'colspan="2"',   'Sonntag' => 'colspan="2"'}
   valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>". rg($DEVICE,"alias") ."</a>"}' , 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
   valueIcon  {'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'R-btnLock.on' => 'secur_locked@green', 'R-btnLock.on ' => 'secur_locked@green', 'R-btnLock.set_on' => 'secur_locked@orange', 'R-btnLock.set_on ' => 'secur_locked@orange', 'R-btnLock.off' => 'secur_open@red', 'R-btnLock.off ' => 'secur_open@red', 'R-btnLock.set_off' => 'secur_open@orange', 'R-btnLock.set_off ' => 'secur_open@orange', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on' => 'secur_locked@orange', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off' => 'secur_open@orange', 'R-globalBtnLock.set_off ' => 'secur_open@orange', }


die jeweiligen CC_ Dummys werden angelegt.
Beispiel:
Internals:
   NAME       cc_Buero
   NR         167
   STATE      ???
   TYPE       dummy
   Readings:
     2015-07-04 12:33:51   0_period_1_start 04:15
     2015-07-04 12:33:51   0_period_1_stop 21:00
     2015-07-04 12:33:51   0_period_2_start 24:00
     2015-07-04 12:33:51   0_period_2_stop 24:00
     2015-07-04 12:33:51   6_period_1_start 04:15
     2015-07-04 12:33:51   6_period_1_stop 21:00
     2015-07-04 12:33:51   6_period_2_start 24:00
     2015-07-04 12:33:51   6_period_2_stop 24:00
     2015-07-04 12:33:51   8_period_1_start 04:15
     2015-07-04 12:33:51   8_period_1_stop 06:30
     2015-07-04 12:33:51   8_period_2_start 15:15
     2015-07-04 12:33:51   8_period_2_stop 21:00
     2015-07-04 12:33:51   dayTemp         21.0
     2015-07-04 12:33:51   nightTemp       17.0
Attributes:
   alias      Buero
   room       Buero


Bitte um Hinweise wie ich beim Troubleshooting weitermachen kann!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Dobi am 04 Juli 2015, 17:18:26
So bei mir passt auch alles... die 2 vorherigen posts sind erledigt.

der Editor macht mich fertig...
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 05 Juli 2015, 11:03:20
Hallo Dobi,

der Fehler

default_cc: unknown attribute attributes. Type 'attr default_cc ?' for a detailed list.

kommt daher, dass noch kein userattr definiert war, muss in in der Reihenfolge mal ändern.

Aber schön, dass es sonst funktioniert.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Dobi am 05 Juli 2015, 17:28:37
Hallo,

Danke, ich habe mich scheinbar eh zu früh gefreut, da bei einem schnellen Test, die Wunsch-Temperaturen zu den Zeitpunkten nicht übernommen werden.
Wie es aussieht nehmen die Thermostate noch immer die default eigestellten Wochenpläne... werde aber erst morgen weiterschauen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: volschin am 05 Juli 2015, 17:31:44
Meine Wunschtemperatur liegt auch deutlich unter 36 Grad. Aber auch wenn ich das einstelle wird es nicht kühler. Was mach ich nur falsch??? ;-)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 05 Juli 2015, 21:50:09
Die Temperaturen werden erst mit einem Klick auf das system_fhem_update Icon übertragen.
Ich überlege noch ob es Sinnvoll ist einen Timer zu bauen, wenn etwas geändert wurde, dass nach X Minuten automatisch übertragen wird.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Dobi am 06 Juli 2015, 07:25:19
Danke, bin selber noch draufgekommen...

Schaut alles sehr gut aus... vielen Dank fürs Teilen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Jorche am 10 Juli 2015, 20:45:37
Hallo Heizungsfreunde!
@volschin
Damit Nachts das Haus nicht so auskühlt, hab ich grad noch die Viessmann Therme mittels IR Adapter & VCONTROL in FHEM integriert. Dropdowns und Diagramme der Heizkörper Regler sind bis 30°C erweitert :)

Und nun ohne Spaß:
Glaube die Arbeit zur Aktualisierung des Wikis ist ne sehr gute Idee. Mit viel Fummellei hat es bei mir ja geklappt. Denkt dran, pro Zeile zuerst rechte Spalte dann linke Spalte.
Eine wirklich gute Erweiterung ist noch eine 3 bzw. 4. Heizzeit. Bietet lustigerweise der Viessmann Brenner auch ^^

Konstanten Dank für die tolle Steuerung und Grüße
Jorche
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 11 Juli 2015, 10:22:35
Zitat von: Jorche am 10 Juli 2015, 20:45:37
Und nun ohne Spaß:
Glaube die Arbeit zur Aktualisierung des Wikis ist ne sehr gute Idee. Mit viel Fummellei hat es bei mir ja geklappt. Denkt dran, pro Zeile zuerst rechte Spalte dann linke Spalte.
Habe in der kommenden Woche mal wieder etwas Zeit, da werde ich das erledigen. Mir sind ja auch wieder ein paar Punkte aufgefallen, die man verbessern kann.

Zitat von: Jorche am 10 Juli 2015, 20:45:37
Eine wirklich gute Erweiterung ist noch eine 3 bzw. 4. Heizzeit. Bietet lustigerweise der Viessmann Brenner auch ^^
Ich mache mir mal ein paar Gedanken, vielleicht wäre es ja interessant wenn man pro Raum einstellen kann wie viele Zeiten man haben möchte. Es gibt ja noch die UZSU, damit habe ich mich aber noch nicht befasst.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 19 Juli 2015, 20:31:21
So, habe das ganze nun mal so umgeschrieben, dass alles über die myUtils angelegt wird.


  use Switch;

sub clean{
  generate_heating_control();
  inheritance();
}

sub generate_heating_control{
  my $default_hc = 'default_hc';
  if(!(defined($defs{$default_hc}))){
    my $timeDropDown = '00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00';
    my $tempDropDown = '5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0';

    fhem("
      define $default_hc dummy;

      setreading $default_hc 8p1b 04:15;
      setreading $default_hc 8p1e 06:30;
      setreading $default_hc 8p2b 15:15;
      setreading $default_hc 8p2e 21:00;
      setreading $default_hc 6p1b 04:15;
      setreading $default_hc 6p1e 21:00;
      setreading $default_hc 6p2b 24:00;
      setreading $default_hc 6p2e 24:00;
      setreading $default_hc 0p1b 04:15;
      setreading $default_hc 0p1e 21:00;
      setreading $default_hc 0p2b 24:00;
      setreading $default_hc 0p2e 24:00;
      setreading $default_hc dayTemp 21.0;
      setreading $default_hc nightTemp 17.0;

      attr $default_hc userattr attributes devices lockMode model subType wildcard;
      attr $default_hc attributes userattr group readingList setList;
      attr $default_hc devices TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04;
      attr $default_hc group Heizkörper;
      attr $default_hc lockMode btnLock;
      attr $default_hc model heating-control;
      attr $default_hc readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e dayTemp nightTemp;
      attr $default_hc room default;
      attr $default_hc setList  0p1b:$timeDropDown 0p1e:$timeDropDown 0p2b:$timeDropDown 0p2e:$timeDropDown 6p1b:$timeDropDown 6p1e:$timeDropDown 6p2b:$timeDropDown 6p2e:$timeDropDown 8p1b:$timeDropDown 8p1e:$timeDropDown 8p2b:$timeDropDown 8p2e:$timeDropDown dayTemp:$tempDropDown nightTemp:$tempDropDown;
      attr $default_hc subType default;
      attr $default_hc widgetOverride lockMode:btnLock,globalBtnLock,modusBtnLock;
      attr $default_hc wildcard TYPE=dummy:FILTER=model=heating-control:FILTER=subType!=default;
      ",1);
  }else{
    my $devices = AttrVal('default_hc', 'devices', 'TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04');
    my $_8p1b = ReadingsVal($default_hc, '8p1b', '04:15');
    my $_8p1e = ReadingsVal($default_hc, '8p1e', '06:30');
    my $_8p2b = ReadingsVal($default_hc, '8p2b', '15:15');
    my $_8p2e = ReadingsVal($default_hc, '8p2e', '21:00');
    my $_6p1b = ReadingsVal($default_hc, '6p1b', '04:15');
    my $_6p1e = ReadingsVal($default_hc, '6p1e', '21:00');
    my $_6p2b = ReadingsVal($default_hc, '6p2b', '24:00');
    my $_6p2e = ReadingsVal($default_hc, '6p2e', '24:00');
    my $_0p1b = ReadingsVal($default_hc, '0p1b', '04:15');
    my $_0p1e = ReadingsVal($default_hc, '0p1e', '21:00');
    my $_0p2b = ReadingsVal($default_hc, '0p2b', '21:00');
    my $_0p2e = ReadingsVal($default_hc, '0p2e', '21:00');
    my $dayTemp = ReadingsVal($default_hc, 'dayTemp', '04:15');
    my $nightTemp = ReadingsVal($default_hc, 'nightTemp', '04:15');

    foreach (devspec2array($devices)){
      my $room = AttrVal($_, 'room', 'Unsorted');
      my $hc = 'hc_'.string2devspec($room);

      if(!(defined($defs{$hc}))){
        fhem("
          define $hc dummy;

          setreading $hc 8p1b $_8p1b;
          setreading $hc 8p1e $_8p1e;
          setreading $hc 8p2b $_8p2b;
          setreading $hc 8p2e $_8p1e;
          setreading $hc 6p1b $_6p1b;
          setreading $hc 6p1e $_6p1e;
          setreading $hc 6p2b $_6p2b;
          setreading $hc 6p2e $_6p2e;
          setreading $hc 0p1b $_0p1b;
          setreading $hc 0p1e $_0p1e;
          setreading $hc 0p2b $_0p2b;
          setreading $hc 0p2e $_0p2e;
          setreading $hc dayTemp $dayTemp;
          setreading $hc nightTemp $nightTemp;

          attr $hc userattr model;
          attr $hc model heating-control;
          attr $hc room $room;
          ",1);
      }
    }

    my $rg_heater = 'rg_heater';
    if(!(defined($defs{$rg_heater}))){
      fhem("
        define $rg_heater readingsGroup <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<> $devices:<>,!alias,<Soll>,!desired-temp,<Tag>,!dayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!controlMode,!btnLock,<Zeitraum&nbsp\;\;1>,!8p1b\@\{readingsGroup(\$DEVICE,'hc')\},!8p1e\@\{readingsGroup(\$DEVICE,'hc')\},!6p1b\@\{readingsGroup(\$DEVICE,'hc')\},!6p1e\@\{readingsGroup(\$DEVICE,'hc')\},!0p1b\@\{readingsGroup(\$DEVICE,'hc')\},!0p1e\@\{readingsGroup(\$DEVICE,'hc')\},!system_fhem_update,<br>,!state\@\{readingsGroup(\$DEVICE,'device')\},!getConfig,<Ist>,!measured-temp,<Nacht>,!nightTemp\@\{readingsGroup(\$DEVICE,'hc')\},<Ventil>,!ValvePosition,<Zeitraum&nbsp\;\;2>,!8p2b\@\{readingsGroup(\$DEVICE,'hc')\},!8p2e\@\{readingsGroup(\$DEVICE,'hc')\},!6p2b\@\{readingsGroup(\$DEVICE,'hc')\},!6p2e\@\{readingsGroup(\$DEVICE,'hc')\},!0p2b\@\{readingsGroup(\$DEVICE,'hc')\},!0p2e\@\{readingsGroup(\$DEVICE,'hc')\},!burstXmit;

        attr $rg_heater alias Übersicht Heizkörper;
        attr $rg_heater commands \{'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg \$DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg \$DEVICE btnLock', '8p1b' => '8p1b:', '8p1e' => '8p1e:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg \$DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg \$DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg \$DEVICE burstXmit'};
        attr $rg_heater nameStyle \{(\$READING eq \"Temperatur\"|| \$READING eq \"Status\"|| \$READING eq \"Montag-Freitag\"|| \$READING eq \"Samstag\"|| \$READING eq \"Sonntag\"|| \$READING eq \"system_fhem_update\")?'style=\"text-align:center\"':'style=\"\"'};
        attr $rg_heater nonames 1;
        attr $rg_heater room controlRoom;
        attr $rg_heater sortDevices 1;
        attr $rg_heater valueColumns \{'Heizung' => 'colspan=\"2\"', 'alias' => 'colspan=\"2\"', 'Temperatur' => 'colspan=\"4\"', 'Status' => 'colspan=\"2\"', 'Montag-Freitag' => 'colspan=\"2\"', 'Samstag' => 'colspan=\"2\"', 'Sonntag' => 'colspan=\"2\"'};
        attr $rg_heater valueFormat \{'alias' => '\{\"<a href=/fhem?detail=\$DEVICE>\".readingsGroup(\$DEVICE,\"alias\").\"</a>\"\}', 'btnLock' => '\{ReadingsVal(readingsGroup(\$DEVICE,\"device\"),\"R-\".AttrVal(\"default_hc\",\"lockMode\",\"btnLock\"),\"off\")\}', 'measured-temp' => \"%0.1f °C\", 'ValvePosition' => \"%0.1f %%\"\};
        attr $rg_heater valueIcon \{'controlMode.auto' => 'sani_heating_automatic\@green', 'controlMode.set_auto' => 'sani_heating_automatic\@orange', 'controlMode.manual' => 'sani_heating_manual\@red', 'controlMode.set_manual' => 'sani_heating_manual\@orange', 'btnLock.on' => 'secur_locked\@green', 'btnLock.on ' => 'secur_locked\@green', 'btnLock.set_on' => 'secur_locked\@orange', 'btnLock.set_on ' => 'secur_locked\@orange', 'btnLock.off' => 'secur_open\@red', 'btnLock.off ' => 'secur_open\@red', 'btnLock.set_off' => 'secur_open\@orange', 'btnLock.set_off ' => 'secur_open\@orange', 'system_fhem_update' => 'system_fhem_update'\};
        attr $rg_heater visibility hidden;
        ");
    }
  generate_notify_readingsGroup();
  }
}

sub generate_notify_readingsGroup{
  my $ntfy_rg = 'ntfy_rg';
  if(!(defined($defs{$ntfy_rg}))){
    fhem("
      define $ntfy_rg notify $ntfy_rg {readingsGroup(\$EVTPART0, \$EVTPART1)};

      attr $ntfy_rg alias notify readingsGroup;
      attr $ntfy_rg room global;
      ");
  }
}

sub inheritance{
  foreach my $default (devspec2array('TYPE=dummy:FILTER=subType=default')){
    my $wildcard = AttrVal($default, 'wildcard', 'TYPE=none');
    my @attributes = split(' ',AttrVal($default, 'attributes', ''));
    foreach my $attribute (@attributes){
      my $AttrVal = AttrVal($default, $attribute, '');
      fhem("attr $wildcard $attribute $AttrVal", 1);
    }
  }
}

sub readingsGroup($$){
  my ($device, $function) = @_;
  my $room = AttrVal($device, 'room', 'Unsorted');

  switch ($function) {
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'btnLock' {
      $device = readingsGroup($device, 'device');
      $function = AttrVal('default_hc', 'lockMode', 'btnLock');
      my $btnLock = ReadingsVal($device, 'R-'.$function, '');

      switch ($btnLock) {
        case /off/ {
          $btnLock = 'on';
        }
        else {
          $btnLock = 'off';
        }
      }
      fhem ("
        set $device regSet $function $btnLock;
        set $device getConfig;
        ");
    }
    case 'burstXmit' {
      $device = readingsGroup($device, 'device');
      fhem("set $device burstXmit");
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');

      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'getConfig' {
      $device = readingsGroup($device, 'device');
      fhem("set $device getConfig");
    }
    case 'hc' {
      return ('hc_'.string2devspec($room));
    }
    case 'setTimeTable' {
      my $hc = readingsGroup($device, 'hc');
      my $_8p1b = ReadingsVal($hc, '8p1b', '04:15');
      my $_8p1e = ReadingsVal($hc, '8p1e', '06:30');
      my $_8p2b = ReadingsVal($hc, '8p2b', '15:15');
      my $_8p2e = ReadingsVal($hc, '8p2e', '21:00');
      my $_6p1b = ReadingsVal($hc, '6p1b', '04:15');
      my $_6p1e = ReadingsVal($hc, '6p1e', '21:00');
      my $_6p2b = ReadingsVal($hc, '6p2b', '24:00');
      my $_6p2e = ReadingsVal($hc, '6p2e', '24:00');
      my $_0p1b = ReadingsVal($hc, '0p1b', '04:15');
      my $_0p1e = ReadingsVal($hc, '0p1e', '21:00');
      my $_0p2b = ReadingsVal($hc, '0p2b', '21:00');
      my $_0p2e = ReadingsVal($hc, '0p2e', '21:00');
      my $dayTemp = ReadingsVal($hc, 'dayTemp', '04:15');
      my $nightTemp = ReadingsVal($hc, 'nightTemp', '04:15');

      fhem("
        set $device tempListMon prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListTue prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListWed prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListThu prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListFri prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListSat prep $_6p1b $nightTemp $_6p1e $dayTemp $_6p2b $nightTemp $_6p2e $dayTemp 24:00 $nightTemp;
        set $device tempListSun exec $_0p1b $nightTemp $_0p1e $dayTemp $_0p2b $nightTemp $_0p2e $dayTemp 24:00 $nightTemp;
        ",1);
    }
    case 'state' {
      my $state = ReadingsVal($device, 'state', '');

      switch ($state) {
        case /on/ {
          fhem("set $device off");
        }
        else {
          fhem("set $device on");
        }
      }
    }
  }
}

sub string2devspec($){
  my $string = shift;
  my %mutated_vowel =
    ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
  my $mutated_vowel_keys =
    join ("|", keys(%mutated_vowel));

  $string =~ s/($mutated_vowel_keys)/$mutated_vowel{$1}/g;
  $string =~ s/[^A-Za-z0-9\.\_]//g;

  return $string;
}


Nachdem alles in die myUtils eingetragen wurde muss:
1. in der FHEM Kommandozeile

{clean()}

aufgerufen werden. Dadurch wird ein default_hc device angelegt, welches im Raum 'default' zu finden ist. In diesem können Vorgabewerte für die Zeiträume (z.B. 0p1b steht für 0=Sonntag p1=Zeitraum 1 b=begin=start), dayTemp und nightTemp eingestellt werden, sowie der lockMode der in der readingsGroup angezeigt wird, dieser kann später auch immer umgestellt werden, default ist 'btnLock'.
2. in der FHEM Kommandozeile

{clean()}

aufgerufen werden. Dadurch werden die dummys und die readingsGroup erzeugt. Die dummys landen in den Räumen, in denen auch die Thermostate sind, die readingsGroup im Raum controlRoom.

Bitte testen ob alles soweit funktioniert, als Anwender sollte es nun erheblich einfacher sein.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 22 August 2015, 21:01:04
habe das nach Igamis Post #177 installiert, funktioniert einwandfrei !

Super gemacht, danke!

Gruss

Ralf
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 23 August 2015, 08:25:34
Vielen Dank. Muss ich ja nur immer noch das Wiki updaten  ::)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 28 August 2015, 13:36:42
Hallo Igami,

vielleicht kann man das Skript so erweitern, dass auch gleich der Code für die
Darstellung der Temperaturkurven erstellt wird.

Für meinen Onewiresensor sieht der so aus


#############################
# Temperatursensor Keller
###########################
define Temperatur_Keller OWTHERM DS18B20 2E6848050000
attr Temperatur_Keller IODev OneWireAdapter
attr Temperatur_Keller icon temp_temperature
attr Temperatur_Keller model DS1822
attr Temperatur_Keller room Temperatur
attr Temperatur_Keller tempHigh 75
attr Temperatur_Keller tempLow 70
define FileLog_Temperatur_Keller FileLog ./log/Temperatur_Keller-%Y-%m.log Temperatur_Keller:T:.*
#attr FileLog_Temperatur_Keller room Temperatur
define SVG_Temperatur_Keller SVG FileLog_Temperatur_Keller:SVG_Temperatur_Keller:CURRENT
attr SVG_Temperatur_Keller label "Temperatur_Keller Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_Temperatur_Keller room Temperatur


Gruss

Ralf
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 28 August 2015, 19:44:46
Automatische Plots stehen auch noch auf meiner Liste :)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 29 August 2015, 14:58:42
Zitat von: rasti am 22 August 2015, 21:01:04
habe das nach Igamis Post #177 installiert, funktioniert einwandfrei !

Super gemacht, danke!

Gruss

Ralf

Hallo,

da war ich wohl etwas voreilig....es geht leider noch nicht richtig ::)

Es wird zwar alles ordnungsgemäß angelegt und die Temperatur wird
ausgelesen aber Temperaturen und Zeiten lassen sich nicht einstellen
bzw. sie lassen sich schon über das Dropdownmenü einstellen, werden aber
offensichtlich nicht übernommen...

Dachte zuächst an autoreate, dass ich im laufenden Betrieb
standardmäßig deaktiviert habe aber das wars wohl nicht....

Wo kann ich nun anfangen zu suchen ?

Gruss

Ralf


Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 29 August 2015, 15:11:26
Hast du auch auf das update Icon geklickt?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 29 August 2015, 15:14:41
Zitat von: igami am 29 August 2015, 15:11:26
Hast du auch auf das update Icon geklickt?

Auf das Icon ganz rechts ? => JA !
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 05 September 2015, 21:45:46
Hallo,

leider komme ich hier nicht weiter, ich weiss
auch nicht wirklich, wo ich anfangen zu suchen bzw.
was ich nun machen soll.

Also Temperaturen werden vom Thermostat eingelesen.
Wenn ich Zeiten oder Temperaturen im Dropdown-Menü ändere
steht dann auch CMDs pending und nach BurstXmit steht dann CMDs done da.
Im Eventmonitor ist auch nachzuvollziehen, dass da was passiert...

Aber die Temperaturen und Zeiten ändern sich nicht...

Vielleicht hat jemand einen Vorschlag, wie man hier vorgeht oder was probiert ?

Gruss

Ralf
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 06 September 2015, 13:18:54
Ich gucke mir das nächste Woche noch mal an und versuche das nach zu stellen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 12 September 2015, 10:27:28
Zitat von: igami am 06 September 2015, 13:18:54
Ich gucke mir das nächste Woche noch mal an und versuche das nach zu stellen.

vielleicht hast du einfach mal einen Tipp woran es liegen kann,
kann ja eigentlich nur eine Kleinigkeit sein....
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 13 September 2015, 09:42:36
Noch ist die Woche nicht um ;)
Entschuldige bitte, nachher gucke ich wirklich mal. Ist das ntfy_rg angelegt? controlMode btnLock getConfig burstXmit dürften sonst auch nicht gehen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 13 September 2015, 16:15:33
Zitat von: igami am 13 September 2015, 09:42:36
Noch ist die Woche nicht um ;)
Entschuldige bitte, nachher gucke ich wirklich mal. Ist das ntfy_rg angelegt? controlMode btnLock getConfig burstXmit dürften sonst auch nicht gehen.

Hallo,

sorry ich wollte nicht drängeln....

ja, ntfy_rg hat dein Script in die fhem.cfg reingeschrieben....
________________________________________________________
define ntfy_rg notify ntfy_rg {readingsGroup($EVTPART0, $EVTPART1)}
attr ntfy_rg alias notify readingsGroup
attr ntfy_rg room global
________________________________________________________
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 13 September 2015, 16:21:06
Ist nicht schlimm, kann ich ja verstehen.
Funktionieren die anderen genannten Funktionen denn? Was steht im Logfile wenn du auf das update Icon klickst?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 13 September 2015, 17:15:04
Zitat von: igami am 13 September 2015, 16:21:06
Ist nicht schlimm, kann ich ja verstehen.
Funktionieren die anderen genannten Funktionen denn? Was steht im Logfile wenn du auf das update Icon klickst?

Hallo, was meinst du mit anderen Funktionen ?
Im logfile steht dann z.B. :

2015.09.13 17:04:17 3: CUL_HM set HM_XX_Clima tempListMon prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:04:17 3: CUL_HM set HM_XX_Clima tempListTue prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:04:17 3: CUL_HM set HM_XX_Clima tempListWed prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:04:17 3: CUL_HM set HM_XX_Clima tempListThu prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:04:17 3: CUL_HM set HM_XX_Clima tempListFri prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:04:17 3: CUL_HM set HM_XX_Clima tempListSat prep 04:15 17.0 21:00 21.0 24:00 17.0 24:00 21.0 24:00 17.0
2015.09.13 17:04:17 3: CUL_HM set HM_XX_Clima tempListSun exec 04:15 17.0 21:00 21.0 24:00 17.0 24:00 21.0 24:00 17.0
2015.09.13 17:04:21 3: CUL_HM set HM_XX burstXmit
2015.09.13 17:05:20 3: CUL_HM set HM_XX_Clima desired-temp 16.5
2015.09.13 17:05:25 3: CUL_HM set HM_XX burstXmit
2015.09.13 17:07:01 3: CUL_HM set HM_XX_Clima desired-temp 10.0
2015.09.13 17:07:13 3: CUL_HM set HM_XX burstXmit
2015.09.13 17:08:26 3: CUL_HM set HM_XX burstXmit
2015.09.13 17:08:31 3: CUL_HM set HM_XX_Clima tempListMon prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:08:31 3: CUL_HM set HM_XX_Clima tempListTue prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:08:31 3: CUL_HM set HM_XX_Clima tempListWed prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:08:31 3: CUL_HM set HM_XX_Clima tempListThu prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:08:31 3: CUL_HM set HM_XX_Clima tempListFri prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.13 17:08:31 3: CUL_HM set HM_XX_Clima tempListSat prep 04:15 17.0 21:00 21.0 24:00 17.0 24:00 21.0 24:00 17.0
2015.09.13 17:08:31 3: CUL_HM set HM_XX_Clima tempListSun exec 04:15 17.0 21:00 21.0 24:00 17.0 24:00 21.0 24:00 17.0
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 13 September 2015, 17:41:28
Mit den Anderen meinte ich controlMode btnLock getConfig burstXmit, aber es scheint ja alles zu funktionieren, zumindest steht ja im Logfile, dass die Befehle gesendet wurden.
Ich vermute, dass es nicht an der readingsGroup liegt.
Teste bitte ob das Device auf commands pending steht und ob du manuell befehle, u.a. auch das Wochenprofil, absetzten kannst.
Ist das Attribut burstAccess auf 1_auto gesetzt? Sonst kann es auch zu Verzögerungen beim Absetzten kommen.
Hast du das Problem bei all deinen Thermostatventilen?

Solltest du dadurch keine Lösung finden bitte einen Thread mit ähnlichem Fehler suchen, oder sonst einen neuen Thread eröffnen.

Grüße
igami

PS: Mit dem automatischen erzeugen von SVGs habe ich mich auch noch nicht beschäftigt, kommt aber noch dieses Jahr ;)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 13 September 2015, 19:10:49
Hallo,

ich habe momentan nur ein Thermostatventil angelernt habe insgesamt aber
3 die ich in Betrieb nehmen will.

die Anzeige steht erstmal auf cmds pending, aber nach einer Zeit springt das um auf cmds done
Ich kann von Auto auf Manuell umstellen, das Vorhängeschloßsymbol ist und bleibt auf offen (rot).
Im Log hab ich nun folgende Meldung gefunden :

015.09.13 18:57:00 3: CUL_HM set HM_XX getConfig
2015.09.13 18:57:00 3:
        set HM_XX regSet btnLock on;
        set HM_XX getConfig;
         : invalid value. use:off,on
2015.09.13 19:01:05 3: CUL_HM set HM_XX getConfig
2015.09.13 19:01:05 3:
        set HM_XX regSet btnLock on;
        set HM_XX getConfig;
         : invalid value. use:off,on
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 13 September 2015, 19:42:31
Bei mir funktioniert alles, die Meldung

         : invalid value. use:off,on

bekomme ich auch nicht. Wenn du nicht selbst etwas in den sub's geändert hast kann ich dir leider nicht helfen. Aber das sieht auch so aus, als wenn die beiden Befehle nicht hintereinander abgesetzt werden. Bitte den folgenden Bereich aus der sub readingsGroup überprüfen

    case 'btnLock' {
      $device = readingsGroup($device, 'device');
      $function = AttrVal('default_hc', 'lockMode', 'btnLock');
      my $btnLock = ReadingsVal($device, 'R-'.$function, '');

      switch ($btnLock) {
        case /off/ {
          $btnLock = 'on';
        }
        else {
          $btnLock = 'off';
        }
      }
      fhem ("
        set $device regSet $function $btnLock;
        set $device getConfig;
        ");
    }

Ich weiß nicht wo dein FHEM den : der im Logfile auftaucht hernimmt.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 14 September 2015, 21:38:10
Hallo,

ich habe nichts an den subs geändert (würde ich mich gar net trauen....)

In der 99_myUtils.pm stand aber das "1;"  nicht am Ende sondern vor der Routine.
Obs daran nun gelegen hat oder an sonst was - keine Ahnung.

Nun geht folgendes bzw. geht nicht

- ich kann zwischen Auto und Manuell umschalten
- ich kann eine Solltemperatur einstellen, im Auto und im Manuell-Modus,
  die Temperatur wird auch eingestellt, d.h. kommt am Thermostat an und wird
  dort und auch in FHEM angezeigt und die "valve position" ändert sich und wird auch angezeigt
   Also Teilerfolg sozusagen....
- was nicht geht ist das btnLock / Vorhängeschloss, da kommt die Fehlermeldung         
    : invalid value. use:off,on    ....wobei ich wie gesagt an der Routine nix geändert habe,
   dein Code steht 1:1 gecopied&gepasted  in der 99_myUtils.pm
- alle Felder der Zeiten und Tag/Nacht-Temperaturen der Dropdown-Liste sind jetzt leer.
   (gestern standen da noch die Zeiten drin....)
   ich kann dann zwar neue Zeiten auswählen und xmit drücken aber es wird nicht übernommen
- habe im log noch diverse "isn't numeric" Fehler gefunden

2015.09.14 21:24:51 1: PERL WARNING: Argument "04:15" isn't numeric in multiplication (*) at ./FHEM/10_CUL_HM.pm line 4308.
2015.09.14 21:24:51 1: PERL WARNING: Argument "04:15" isn't numeric in sprintf at ./FHEM/10_CUL_HM.pm line 4324.
2015.09.13 22:01:26 1: PERL WARNING: Argument "measured-temp" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 735.
2015.09.13 22:01:26 1: PERL WARNING: Argument "ValvePosition" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 735.


Soweit also der Stand.

Noch eine (vielleicht blöde) Frage, ich habe anscheinend ein allgemeines Verständnisproblem mit den Soll/Tag/Nachttemperaturen und Auto/Manuell Einstellung. Ich dachte bis vor kurzem, dass die im dropdown-
Menü gewählte  Solltemperatur dann genommen wird wenn das Thermostat im Manuell-Modus ist
und die  Tag/Nachttemperaturen eben nur im Automodus. Dem scheint aber nicht so zu sein, das Thermostat
übernimmt die Solltemperatur (desired Temp ?) auch im Automodus und steuert das Ventil entsprechend
an. Wie geht das nun oder ist das nun gedacht ?

Gruss

Ralf
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 15 September 2015, 06:10:32
Zitat von: rasti am 14 September 2015, 21:38:10
In der 99_myUtils.pm stand aber das "1;"  nicht am Ende sondern vor der Routine.
Was genau das bewirkt weiß ich auch nicht, aber der Code soll von der 1; stehen, steht so im wiki ;)

Kannst du mal bitte einen Screenshot von deiner jetzigen readingsGroup hoch laden?

Zitat von: rasti am 14 September 2015, 21:38:10
Noch eine (vielleicht blöde) Frage, ich habe anscheinend ein allgemeines Verständnisproblem mit den Soll/Tag/Nachttemperaturen und Auto/Manuell Einstellung. Ich dachte bis vor kurzem, dass die im dropdown-
Menü gewählte  Solltemperatur dann genommen wird wenn das Thermostat im Manuell-Modus ist
und die  Tag/Nachttemperaturen eben nur im Automodus. Dem scheint aber nicht so zu sein, das Thermostat
übernimmt die Solltemperatur (desired Temp ?) auch im Automodus und steuert das Ventil entsprechend
an. Wie geht das nun oder ist das nun gedacht ?
Soll zeigt immer die Temperatur an die am Heikörper eingestellt ist und kann auch verändert werden, ist als ob man am thermostat selbst dreht, hat aber keinen Einfluss auf das Wochenprogramm.
Tag/Nacht sind vorgaben für das Wochenprogramm, wenn das Wochenprogramm übertragen wird, wird auch geprüft welcher Wert nun eigentlich eingestellt sein sollt. Bsp: deine Heizung steht um 16:34 Uhr auf 22.0 °C und du überträgst ein Programm Tags 07:00-21:00 Uhr mit 21.0 °C und Nacht mit 17.0 °C so ändert sich der desired Wert auf 21.0.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 15 September 2015, 15:45:12
Hallo,

nochmal zur Soll/Tag/Nachttemperatur : Nach deiner Erklärung ist
das ja so wie ich es immer dachte, d.h. die im dropdown-Menü gewählte 
Solltemperatur sollte nur im  Manuell-Modus übernommen werden
und die  Tag/Nachttemperaturen nur im Auto-Modus.

Nun steht das Thermostat aber im Auto-Modus und der Sollwert
(der ja nur für Manuell relevant sein sollte) wird trotzdem übernommen.
Passend zum Screenshot steht auf der LCD des Thermostats nun
auch Auto und Off, obwohl ein Wochenprogramm hinterlegt ist.
Das verstehe ich nicht....

Anbei der Screenshot.  Wie du siehst sind fast alle Felder des Dropdownmenüs leer.

=> Klickt man auf Solltemperatur, dann kann man den Wert im Dropdownmenü
      auswählen, anschliessend wird der Befehl ausgeführt (cmd pending ....cmd done)
=> Klickt man auf das Dropdownmenü von Tag/Nachtemp oder die Zeiten kann man
     neue Werte auswählen aber es tut sich nichts (kein cmd pending ....cmd done es tut sich halt nix)
=> klickt man auf das Heizkörpersymbol kann man zwischen Manuell/Auto umschalten
=> Klick auf das Vorhängeschloss führt nur zu besagter Fehlermeldung
=> IST-Temperatur und Ventilposition wird m.E. korrekt angezeigt

Gruss
Ralf
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 15 September 2015, 16:26:21
Solltemperatur wird aber immer übernommen, ist auch nur das desired Reading aus dem Clima Channel.

Dass bei Tag im Dropdown etwas angezeigt wird macht mich stutzig. Ehrlich gesagt weiß ich auch nicht mehr weiter, habe es nach dem Programmieren bei mir auch so eingefügt und alles lief. Vielleicht solltest du alle Devices die von der Sub automatisch angelegt wurden noch ein mal löschen und auch den Code in die myUtils neu kopieren und zwei mal {clean()} aufrufen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 15 September 2015, 21:01:15
Zitat von: igami am 15 September 2015, 16:26:21
Vielleicht solltest du alle Devices die von der Sub automatisch angelegt wurden noch ein mal löschen und auch den Code in die myUtils neu kopieren und zwei mal {clean()} aufrufen.

Hallo Igami,

genau das habe ich nun gemacht.
- den ganzen vom Script angelegten Kram im fhem.cfg gelöscht
- den Code neu in die 99myutils.pm reinpkopiert+gespeichert
- fhem neu gestartet
- 2 mal {clean()} eingegeben, jeweils danach auf save config geklickt
- Alle Dropdownmenü-Zeiten und Temperaturen sind wieder da !
- aber ein Klick aufs Vorhängeschloss ergibt denselben Fehler im Log wie zuvor
2015.09.15 20:01:39 3: CUL_HM set HM_XX getConfig
2015.09.15 20:01:39 3:
        set HM_XX regSet btnLock on;
        set HM_XX getConfig;
         : invalid value. use:off,on


Im Eventmonitor finde ich 
2015-09-15 20:52:22 notify ntfy_rg HM_XX_Clima btnLock

Das manuelle Absetzen von Befehlen scheint zu funktionieren. Gebe ich ein

set HM_XX_Clima tempListSat 05:15 17.5 21:00 21.5 24:00 17.5 24:00 21.0 24:00 17.5

sehe ich das auch im Log. Und später im Eventmonitor
2015-09-15 20:40:43 CUL_HM HM_XX_Clima R_0_tempListSat: 05:15 17.5 21:00 21.5 24:00 17.5


Mache ich das über das vom Skript erzeugte Dropmenü, wird aber egal was darin einstelle, die folgende
Wochenliste rausgehauen:

2015.09.15 20:42:30 3: CUL_HM set HM_XX_Clima tempListMon prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.15 20:42:30 3: CUL_HM set HM_XX_Clima tempListTue prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.15 20:42:30 3: CUL_HM set HM_XX_Clima tempListWed prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.15 20:42:30 3: CUL_HM set HM_XX_Clima tempListThu prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.15 20:42:30 3: CUL_HM set HM_XX_Clima tempListFri prep 04:15 17.0 06:30 21.0 15:15 17.0 06:30 21.0 24:00 17.0
2015.09.15 20:42:30 3: CUL_HM set HM_XX_Clima tempListSat prep 04:15 17.0 21:00 21.0 24:00 17.0 24:00 21.0 24:00 17.0
2015.09.15 20:42:30 3: CUL_HM set HM_XX_Clima tempListSun exec 04:15 17.0 21:00 21.0 24:00 17.0 24:00 21.0 24:00 17.0


Installiert habe ich dein Script aus Post #177 .
Also irgendwas stimmt da nicht. Entweder bei mir keine Ahnung wo oder evtl. doch in deinem Code....
Ich hab mal unten meine gesamte 99_myUtils.pm als Code eingefügt....


Gruss

Ralf



##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.



package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.

  use Switch;

sub clean{
  generate_heating_control();
  inheritance();
}

sub generate_heating_control{
  my $default_hc = 'default_hc';
  if(!(defined($defs{$default_hc}))){
    my $timeDropDown = '00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00';
    my $tempDropDown = '5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0';

    fhem("
      define $default_hc dummy;

      setreading $default_hc 8p1b 04:15;
      setreading $default_hc 8p1e 06:30;
      setreading $default_hc 8p2b 15:15;
      setreading $default_hc 8p2e 21:00;
      setreading $default_hc 6p1b 04:15;
      setreading $default_hc 6p1e 21:00;
      setreading $default_hc 6p2b 24:00;
      setreading $default_hc 6p2e 24:00;
      setreading $default_hc 0p1b 04:15;
      setreading $default_hc 0p1e 21:00;
      setreading $default_hc 0p2b 24:00;
      setreading $default_hc 0p2e 24:00;
      setreading $default_hc dayTemp 21.0;
      setreading $default_hc nightTemp 17.0;

      attr $default_hc userattr attributes devices lockMode model subType wildcard;
      attr $default_hc attributes userattr group readingList setList;
      attr $default_hc devices TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04;
      attr $default_hc group Heizkörper;
      attr $default_hc lockMode btnLock;
      attr $default_hc model heating-control;
      attr $default_hc readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e dayTemp nightTemp;
      attr $default_hc room default;
      attr $default_hc setList  0p1b:$timeDropDown 0p1e:$timeDropDown 0p2b:$timeDropDown 0p2e:$timeDropDown 6p1b:$timeDropDown 6p1e:$timeDropDown 6p2b:$timeDropDown 6p2e:$timeDropDown 8p1b:$timeDropDown 8p1e:$timeDropDown 8p2b:$timeDropDown 8p2e:$timeDropDown dayTemp:$tempDropDown nightTemp:$tempDropDown;
      attr $default_hc subType default;
      attr $default_hc widgetOverride lockMode:btnLock,globalBtnLock,modusBtnLock;
      attr $default_hc wildcard TYPE=dummy:FILTER=model=heating-control:FILTER=subType!=default;
      ",1);
  }else{
    my $devices = AttrVal('default_hc', 'devices', 'TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04');
    my $_8p1b = ReadingsVal($default_hc, '8p1b', '04:15');
    my $_8p1e = ReadingsVal($default_hc, '8p1e', '06:30');
    my $_8p2b = ReadingsVal($default_hc, '8p2b', '15:15');
    my $_8p2e = ReadingsVal($default_hc, '8p2e', '21:00');
    my $_6p1b = ReadingsVal($default_hc, '6p1b', '04:15');
    my $_6p1e = ReadingsVal($default_hc, '6p1e', '21:00');
    my $_6p2b = ReadingsVal($default_hc, '6p2b', '24:00');
    my $_6p2e = ReadingsVal($default_hc, '6p2e', '24:00');
    my $_0p1b = ReadingsVal($default_hc, '0p1b', '04:15');
    my $_0p1e = ReadingsVal($default_hc, '0p1e', '21:00');
    my $_0p2b = ReadingsVal($default_hc, '0p2b', '21:00');
    my $_0p2e = ReadingsVal($default_hc, '0p2e', '21:00');
    my $dayTemp = ReadingsVal($default_hc, 'dayTemp', '04:15');
    my $nightTemp = ReadingsVal($default_hc, 'nightTemp', '04:15');

    foreach (devspec2array($devices)){
      my $room = AttrVal($_, 'room', 'Unsorted');
      my $hc = 'hc_'.string2devspec($room);

      if(!(defined($defs{$hc}))){
        fhem("
          define $hc dummy;

          setreading $hc 8p1b $_8p1b;
          setreading $hc 8p1e $_8p1e;
          setreading $hc 8p2b $_8p2b;
          setreading $hc 8p2e $_8p1e;
          setreading $hc 6p1b $_6p1b;
          setreading $hc 6p1e $_6p1e;
          setreading $hc 6p2b $_6p2b;
          setreading $hc 6p2e $_6p2e;
          setreading $hc 0p1b $_0p1b;
          setreading $hc 0p1e $_0p1e;
          setreading $hc 0p2b $_0p2b;
          setreading $hc 0p2e $_0p2e;
          setreading $hc dayTemp $dayTemp;
          setreading $hc nightTemp $nightTemp;

          attr $hc userattr model;
          attr $hc model heating-control;
          attr $hc room $room;
          ",1);
      }
    }

    my $rg_heater = 'rg_heater';
    if(!(defined($defs{$rg_heater}))){
      fhem("
        define $rg_heater readingsGroup <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<> $devices:<>,!alias,<Soll>,!desired-temp,<Tag>,!dayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!controlMode,!btnLock,<Zeitraum&nbsp\;\;1>,!8p1b\@\{readingsGroup(\$DEVICE,'hc')\},!8p1e\@\{readingsGroup(\$DEVICE,'hc')\},!6p1b\@\{readingsGroup(\$DEVICE,'hc')\},!6p1e\@\{readingsGroup(\$DEVICE,'hc')\},!0p1b\@\{readingsGroup(\$DEVICE,'hc')\},!0p1e\@\{readingsGroup(\$DEVICE,'hc')\},!system_fhem_update,<br>,!state\@\{readingsGroup(\$DEVICE,'device')\},!getConfig,<Ist>,!measured-temp,<Nacht>,!nightTemp\@\{readingsGroup(\$DEVICE,'hc')\},<Ventil>,!ValvePosition,<Zeitraum&nbsp\;\;2>,!8p2b\@\{readingsGroup(\$DEVICE,'hc')\},!8p2e\@\{readingsGroup(\$DEVICE,'hc')\},!6p2b\@\{readingsGroup(\$DEVICE,'hc')\},!6p2e\@\{readingsGroup(\$DEVICE,'hc')\},!0p2b\@\{readingsGroup(\$DEVICE,'hc')\},!0p2e\@\{readingsGroup(\$DEVICE,'hc')\},!burstXmit;

        attr $rg_heater alias Übersicht Heizkörper;
        attr $rg_heater commands \{'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg \$DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg \$DEVICE btnLock', '8p1b' => '8p1b:', '8p1e' => '8p1e:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg \$DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg \$DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg \$DEVICE burstXmit'};
        attr $rg_heater nameStyle \{(\$READING eq \"Temperatur\"|| \$READING eq \"Status\"|| \$READING eq \"Montag-Freitag\"|| \$READING eq \"Samstag\"|| \$READING eq \"Sonntag\"|| \$READING eq \"system_fhem_update\")?'style=\"text-align:center\"':'style=\"\"'};
        attr $rg_heater nonames 1;
        attr $rg_heater room controlRoom;
        attr $rg_heater sortDevices 1;
        attr $rg_heater valueColumns \{'Heizung' => 'colspan=\"2\"', 'alias' => 'colspan=\"2\"', 'Temperatur' => 'colspan=\"4\"', 'Status' => 'colspan=\"2\"', 'Montag-Freitag' => 'colspan=\"2\"', 'Samstag' => 'colspan=\"2\"', 'Sonntag' => 'colspan=\"2\"'};
        attr $rg_heater valueFormat \{'alias' => '\{\"<a href=/fhem?detail=\$DEVICE>\".readingsGroup(\$DEVICE,\"alias\").\"</a>\"\}', 'btnLock' => '\{ReadingsVal(readingsGroup(\$DEVICE,\"device\"),\"R-\".AttrVal(\"default_hc\",\"lockMode\",\"btnLock\"),\"off\")\}', 'measured-temp' => \"%0.1f °C\", 'ValvePosition' => \"%0.1f %%\"\};
        attr $rg_heater valueIcon \{'controlMode.auto' => 'sani_heating_automatic\@green', 'controlMode.set_auto' => 'sani_heating_automatic\@orange', 'controlMode.manual' => 'sani_heating_manual\@red', 'controlMode.set_manual' => 'sani_heating_manual\@orange', 'btnLock.on' => 'secur_locked\@green', 'btnLock.on ' => 'secur_locked\@green', 'btnLock.set_on' => 'secur_locked\@orange', 'btnLock.set_on ' => 'secur_locked\@orange', 'btnLock.off' => 'secur_open\@red', 'btnLock.off ' => 'secur_open\@red', 'btnLock.set_off' => 'secur_open\@orange', 'btnLock.set_off ' => 'secur_open\@orange', 'system_fhem_update' => 'system_fhem_update'\};
        attr $rg_heater visibility hidden;
        ");
    }
  generate_notify_readingsGroup();
  }
}

sub generate_notify_readingsGroup{
  my $ntfy_rg = 'ntfy_rg';
  if(!(defined($defs{$ntfy_rg}))){
    fhem("
      define $ntfy_rg notify $ntfy_rg {readingsGroup(\$EVTPART0, \$EVTPART1)};

      attr $ntfy_rg alias notify readingsGroup;
      attr $ntfy_rg room global;
      ");
  }
}

sub inheritance{
  foreach my $default (devspec2array('TYPE=dummy:FILTER=subType=default')){
    my $wildcard = AttrVal($default, 'wildcard', 'TYPE=none');
    my @attributes = split(' ',AttrVal($default, 'attributes', ''));
    foreach my $attribute (@attributes){
      my $AttrVal = AttrVal($default, $attribute, '');
      fhem("attr $wildcard $attribute $AttrVal", 1);
    }
  }
}

sub readingsGroup($$){
  my ($device, $function) = @_;
  my $room = AttrVal($device, 'room', 'Unsorted');

  switch ($function) {
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'btnLock' {
      $device = readingsGroup($device, 'device');
      $function = AttrVal('default_hc', 'lockMode', 'btnLock');
      my $btnLock = ReadingsVal($device, 'R-'.$function, '');

      switch ($btnLock) {
        case /off/ {
          $btnLock = 'on';
        }
        else {
          $btnLock = 'off';
        }
      }
      fhem ("
        set $device regSet $function $btnLock;
        set $device getConfig;
        ");
    }
    case 'burstXmit' {
      $device = readingsGroup($device, 'device');
      fhem("set $device burstXmit");
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');

      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'getConfig' {
      $device = readingsGroup($device, 'device');
      fhem("set $device getConfig");
    }
    case 'hc' {
      return ('hc_'.string2devspec($room));
    }
    case 'setTimeTable' {
      my $hc = readingsGroup($device, 'hc');
      my $_8p1b = ReadingsVal($hc, '8p1b', '04:15');
      my $_8p1e = ReadingsVal($hc, '8p1e', '06:30');
      my $_8p2b = ReadingsVal($hc, '8p2b', '15:15');
      my $_8p2e = ReadingsVal($hc, '8p2e', '21:00');
      my $_6p1b = ReadingsVal($hc, '6p1b', '04:15');
      my $_6p1e = ReadingsVal($hc, '6p1e', '21:00');
      my $_6p2b = ReadingsVal($hc, '6p2b', '24:00');
      my $_6p2e = ReadingsVal($hc, '6p2e', '24:00');
      my $_0p1b = ReadingsVal($hc, '0p1b', '04:15');
      my $_0p1e = ReadingsVal($hc, '0p1e', '21:00');
      my $_0p2b = ReadingsVal($hc, '0p2b', '21:00');
      my $_0p2e = ReadingsVal($hc, '0p2e', '21:00');
      my $dayTemp = ReadingsVal($hc, 'dayTemp', '04:15');
      my $nightTemp = ReadingsVal($hc, 'nightTemp', '04:15');

      fhem("
        set $device tempListMon prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListTue prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListWed prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListThu prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListFri prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListSat prep $_6p1b $nightTemp $_6p1e $dayTemp $_6p2b $nightTemp $_6p2e $dayTemp 24:00 $nightTemp;
        set $device tempListSun exec $_0p1b $nightTemp $_0p1e $dayTemp $_0p2b $nightTemp $_0p2e $dayTemp 24:00 $nightTemp;
        ",1);
    }
    case 'state' {
      my $state = ReadingsVal($device, 'state', '');

      switch ($state) {
        case /on/ {
          fhem("set $device off");
        }
        else {
          fhem("set $device on");
        }
      }
    }
  }
}

sub string2devspec($){
  my $string = shift;
  my %mutated_vowel =
    ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
  my $mutated_vowel_keys =
    join ("|", keys(%mutated_vowel));

  $string =~ s/($mutated_vowel_keys)/$mutated_vowel{$1}/g;
  $string =~ s/[^A-Za-z0-9\.\_]//g;

  return $string;
}


1;




Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 15 September 2015, 21:24:40
Ich habe nun mal eine zweite FHEM Instanz aufgesetzt und ein Thermostat hinzugefügt, dazu den code aus dem Post 177 Eingefügt, bzw. das ganz als 99_cleanUtils.pm abgespeichert, dann gibt es keine Konflikte mehr mit bestehenden Subs in den my Utils

package main;
  use POSIX;
  use strict;
  use Switch;
  use warnings;

sub cleanUtils_Initialize($$){
  my ($hash) = @_;
}

sub clean{
  generate_heating_control();
  inheritance();
}

sub generate_heating_control{
  my $default_hc = 'default_hc';
  if(!(defined($defs{$default_hc}))){
    my $timeDropDown = '00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00';
    my $tempDropDown = '5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0';

    fhem("
      define $default_hc dummy;

      setreading $default_hc 8p1b 04:15;
      setreading $default_hc 8p1e 06:30;
      setreading $default_hc 8p2b 15:15;
      setreading $default_hc 8p2e 21:00;
      setreading $default_hc 6p1b 04:15;
      setreading $default_hc 6p1e 21:00;
      setreading $default_hc 6p2b 24:00;
      setreading $default_hc 6p2e 24:00;
      setreading $default_hc 0p1b 04:15;
      setreading $default_hc 0p1e 21:00;
      setreading $default_hc 0p2b 24:00;
      setreading $default_hc 0p2e 24:00;
      setreading $default_hc dayTemp 21.0;
      setreading $default_hc nightTemp 17.0;

      attr $default_hc userattr attributes devices lockMode model subType wildcard;
      attr $default_hc attributes userattr group readingList setList;
      attr $default_hc devices TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04;
      attr $default_hc group Heizkörper;
      attr $default_hc lockMode btnLock;
      attr $default_hc model heating-control;
      attr $default_hc readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e dayTemp nightTemp;
      attr $default_hc room default;
      attr $default_hc setList  0p1b:$timeDropDown 0p1e:$timeDropDown 0p2b:$timeDropDown 0p2e:$timeDropDown 6p1b:$timeDropDown 6p1e:$timeDropDown 6p2b:$timeDropDown 6p2e:$timeDropDown 8p1b:$timeDropDown 8p1e:$timeDropDown 8p2b:$timeDropDown 8p2e:$timeDropDown dayTemp:$tempDropDown nightTemp:$tempDropDown;
      attr $default_hc subType default;
      attr $default_hc widgetOverride lockMode:btnLock,globalBtnLock,modusBtnLock;
      attr $default_hc wildcard TYPE=dummy:FILTER=model=heating-control:FILTER=subType!=default;
      ",1);
  }else{
    my $devices = AttrVal('default_hc', 'devices', 'TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04');
    my $_8p1b = ReadingsVal($default_hc, '8p1b', '04:15');
    my $_8p1e = ReadingsVal($default_hc, '8p1e', '06:30');
    my $_8p2b = ReadingsVal($default_hc, '8p2b', '15:15');
    my $_8p2e = ReadingsVal($default_hc, '8p2e', '21:00');
    my $_6p1b = ReadingsVal($default_hc, '6p1b', '04:15');
    my $_6p1e = ReadingsVal($default_hc, '6p1e', '21:00');
    my $_6p2b = ReadingsVal($default_hc, '6p2b', '24:00');
    my $_6p2e = ReadingsVal($default_hc, '6p2e', '24:00');
    my $_0p1b = ReadingsVal($default_hc, '0p1b', '04:15');
    my $_0p1e = ReadingsVal($default_hc, '0p1e', '21:00');
    my $_0p2b = ReadingsVal($default_hc, '0p2b', '21:00');
    my $_0p2e = ReadingsVal($default_hc, '0p2e', '21:00');
    my $dayTemp = ReadingsVal($default_hc, 'dayTemp', '04:15');
    my $nightTemp = ReadingsVal($default_hc, 'nightTemp', '04:15');

    foreach (devspec2array($devices)){
      my $room = AttrVal($_, 'room', 'Unsorted');
      my $hc = 'hc_'.string2devspec($room);

      if(!(defined($defs{$hc}))){
        fhem("
          define $hc dummy;

          setreading $hc 8p1b $_8p1b;
          setreading $hc 8p1e $_8p1e;
          setreading $hc 8p2b $_8p2b;
          setreading $hc 8p2e $_8p1e;
          setreading $hc 6p1b $_6p1b;
          setreading $hc 6p1e $_6p1e;
          setreading $hc 6p2b $_6p2b;
          setreading $hc 6p2e $_6p2e;
          setreading $hc 0p1b $_0p1b;
          setreading $hc 0p1e $_0p1e;
          setreading $hc 0p2b $_0p2b;
          setreading $hc 0p2e $_0p2e;
          setreading $hc dayTemp $dayTemp;
          setreading $hc nightTemp $nightTemp;

          attr $hc userattr model;
          attr $hc model heating-control;
          attr $hc room $room;
          ",1);
      }
    }

    my $rg_heater = 'rg_heater';
    if(!(defined($defs{$rg_heater}))){
      fhem("
        define $rg_heater readingsGroup <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<> $devices:<>,!alias,<Soll>,!desired-temp,<Tag>,!dayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!controlMode,!btnLock,<Zeitraum&nbsp\;\;1>,!8p1b\@\{readingsGroup(\$DEVICE,'hc')\},!8p1e\@\{readingsGroup(\$DEVICE,'hc')\},!6p1b\@\{readingsGroup(\$DEVICE,'hc')\},!6p1e\@\{readingsGroup(\$DEVICE,'hc')\},!0p1b\@\{readingsGroup(\$DEVICE,'hc')\},!0p1e\@\{readingsGroup(\$DEVICE,'hc')\},!system_fhem_update,<br>,!state\@\{readingsGroup(\$DEVICE,'device')\},!getConfig,<Ist>,!measured-temp,<Nacht>,!nightTemp\@\{readingsGroup(\$DEVICE,'hc')\},<Ventil>,!ValvePosition,<Zeitraum&nbsp\;\;2>,!8p2b\@\{readingsGroup(\$DEVICE,'hc')\},!8p2e\@\{readingsGroup(\$DEVICE,'hc')\},!6p2b\@\{readingsGroup(\$DEVICE,'hc')\},!6p2e\@\{readingsGroup(\$DEVICE,'hc')\},!0p2b\@\{readingsGroup(\$DEVICE,'hc')\},!0p2e\@\{readingsGroup(\$DEVICE,'hc')\},!burstXmit;

        attr $rg_heater alias Übersicht Heizkörper;
        attr $rg_heater commands \{'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg \$DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg \$DEVICE btnLock', '8p1b' => '8p1b:', '8p1e' => '8p1e:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg \$DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg \$DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg \$DEVICE burstXmit'};
        attr $rg_heater nameStyle \{(\$READING eq \"Temperatur\"|| \$READING eq \"Status\"|| \$READING eq \"Montag-Freitag\"|| \$READING eq \"Samstag\"|| \$READING eq \"Sonntag\"|| \$READING eq \"system_fhem_update\")?'style=\"text-align:center\"':'style=\"\"'};
        attr $rg_heater nonames 1;
        attr $rg_heater room controlRoom;
        attr $rg_heater sortDevices 1;
        attr $rg_heater valueColumns \{'Heizung' => 'colspan=\"2\"', 'alias' => 'colspan=\"2\"', 'Temperatur' => 'colspan=\"4\"', 'Status' => 'colspan=\"2\"', 'Montag-Freitag' => 'colspan=\"2\"', 'Samstag' => 'colspan=\"2\"', 'Sonntag' => 'colspan=\"2\"'};
        attr $rg_heater valueFormat \{'alias' => '\{\"<a href=/fhem?detail=\$DEVICE>\".readingsGroup(\$DEVICE,\"alias\").\"</a>\"\}', 'btnLock' => '\{ReadingsVal(readingsGroup(\$DEVICE,\"device\"),\"R-\".AttrVal(\"default_hc\",\"lockMode\",\"btnLock\"),\"off\")\}', 'measured-temp' => \"%0.1f °C\", 'ValvePosition' => \"%0.1f %%\"\};
        attr $rg_heater valueIcon \{'controlMode.auto' => 'sani_heating_automatic\@green', 'controlMode.set_auto' => 'sani_heating_automatic\@orange', 'controlMode.manual' => 'sani_heating_manual\@red', 'controlMode.set_manual' => 'sani_heating_manual\@orange', 'btnLock.on' => 'secur_locked\@green', 'btnLock.on ' => 'secur_locked\@green', 'btnLock.set_on' => 'secur_locked\@orange', 'btnLock.set_on ' => 'secur_locked\@orange', 'btnLock.off' => 'secur_open\@red', 'btnLock.off ' => 'secur_open\@red', 'btnLock.set_off' => 'secur_open\@orange', 'btnLock.set_off ' => 'secur_open\@orange', 'system_fhem_update' => 'system_fhem_update'\};
        attr $rg_heater visibility hidden;
        ");
    }
  generate_notify_readingsGroup();
  }
}

sub generate_notify_readingsGroup{
  my $ntfy_rg = 'ntfy_rg';
  if(!(defined($defs{$ntfy_rg}))){
    fhem("
      define $ntfy_rg notify $ntfy_rg {readingsGroup(\$EVTPART0, \$EVTPART1)};

      attr $ntfy_rg alias notify readingsGroup;
      attr $ntfy_rg room global;
      ");
  }
}

sub inheritance{
  foreach my $default (devspec2array('TYPE=dummy:FILTER=subType=default')){
    my $wildcard = AttrVal($default, 'wildcard', 'TYPE=none');
    my @attributes = split(' ',AttrVal($default, 'attributes', ''));
    foreach my $attribute (@attributes){
      my $AttrVal = AttrVal($default, $attribute, '');
      fhem("attr $wildcard $attribute $AttrVal", 1);
    }
  }
}

sub readingsGroup($$){
  my ($device, $function) = @_;
  my $room = AttrVal($device, 'room', 'Unsorted');

  switch ($function) {
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'btnLock' {
      $device = readingsGroup($device, 'device');
      $function = AttrVal('default_hc', 'lockMode', 'btnLock');
      my $btnLock = ReadingsVal($device, 'R-'.$function, '');

      switch ($btnLock) {
        case /off/ {
          $btnLock = 'on';
        }
        else {
          $btnLock = 'off';
        }
      }
      fhem ("
        set $device regSet $function $btnLock;
        set $device getConfig;
        ");
    }
    case 'burstXmit' {
      $device = readingsGroup($device, 'device');
      fhem("set $device burstXmit");
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');

      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'getConfig' {
      $device = readingsGroup($device, 'device');
      fhem("set $device getConfig");
    }
    case 'hc' {
      return ('hc_'.string2devspec($room));
    }
    case 'setTimeTable' {
      my $hc = readingsGroup($device, 'hc');
      my $_8p1b = ReadingsVal($hc, '8p1b', '04:15');
      my $_8p1e = ReadingsVal($hc, '8p1e', '06:30');
      my $_8p2b = ReadingsVal($hc, '8p2b', '15:15');
      my $_8p2e = ReadingsVal($hc, '8p2e', '21:00');
      my $_6p1b = ReadingsVal($hc, '6p1b', '04:15');
      my $_6p1e = ReadingsVal($hc, '6p1e', '21:00');
      my $_6p2b = ReadingsVal($hc, '6p2b', '24:00');
      my $_6p2e = ReadingsVal($hc, '6p2e', '24:00');
      my $_0p1b = ReadingsVal($hc, '0p1b', '04:15');
      my $_0p1e = ReadingsVal($hc, '0p1e', '21:00');
      my $_0p2b = ReadingsVal($hc, '0p2b', '21:00');
      my $_0p2e = ReadingsVal($hc, '0p2e', '21:00');
      my $dayTemp = ReadingsVal($hc, 'dayTemp', '04:15');
      my $nightTemp = ReadingsVal($hc, 'nightTemp', '04:15');

      fhem("
        set $device tempListMon prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListTue prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListWed prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListThu prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListFri prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListSat prep $_6p1b $nightTemp $_6p1e $dayTemp $_6p2b $nightTemp $_6p2e $dayTemp 24:00 $nightTemp;
        set $device tempListSun exec $_0p1b $nightTemp $_0p1e $dayTemp $_0p2b $nightTemp $_0p2e $dayTemp 24:00 $nightTemp;
        ",1);
    }
    case 'state' {
      my $state = ReadingsVal($device, 'state', '');

      switch ($state) {
        case /on/ {
          fhem("set $device off");
        }
        else {
          fhem("set $device on");
        }
      }
    }
  }
}

sub string2devspec($){
  my $string = shift;
  my %mutated_vowel =
    ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
  my $mutated_vowel_keys =
    join ("|", keys(%mutated_vowel));

  $string =~ s/($mutated_vowel_keys)/$mutated_vowel{$1}/g;
  $string =~ s/[^A-Za-z0-9\.\_]//g;

  return $string;
}

1;

Und ich bekomme keine Fehler.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 16 September 2015, 18:44:25
Danke Igami für all deine Arbeit und Mühe
- aber bei mir will es nicht  :(

Ich hab nun versuchsweise den Inhalt der 99_myUtils.pm geleert und alles in eine neue
99_cleanUtils.pm reingepackt. Same Procedure wie zuvor und leider selbes Ergebnis.

Sorry tut mir leid.....  :(
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 16 September 2015, 19:02:02
Ich werde es bei Gelegenheit mal bei bekannten testen, bis dahin musst du selbst suchen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 16 September 2015, 21:21:15
Hallo Igami,

ich habe nun eine vorige Version von dir installiert und zwar aus deinem Post#17

Nun was soll ich sagen : Das geht (fast) !
=> BtnLock produziert zwar noch den Fehler
2015.09.16 21:07:40 3: set HM_XX regSet globalBtnLock on : invalid value. use:off,on
Aber Zeiten und Temperaturlisten werden übertragen und nachher auch angezeigt.

Könntest du mal für das neue Layout (das mit den 2 Tageszeiträumen) den vom Skript
erzeugten fhem.cfg Code posten,  den würde ich vielleicht mal probieren bei mir manuell anzupassen.

Gruss

Ralf

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 20 September 2015, 10:48:05
Hallo Igami,

ich habe nun die ReadingsGroup aus deinem Post #140 nachgebaut.

(auch Post #177 habe ich nochmal neu von vorne installiert aber das geht einfach nicht....)

Also gem. #140 funktioniert es im Prinzip also ich kann Temperaturen bzw. Zeiten
als Templiste übertragen und zwischen Auto/Manuell umschalten.

Leider erscheinen die neuen Temperaturen und Zeiten nicht im Dropdown menü,
d.h. es steht immer auf den Standardwerten (21 17 Grad, 4:15 Uhr etc.).
Mit getconfig kann ich allerdings verifzieren, dass die neuen Templisten
korrekt ans Thermostat übertragen werden.

=> Ist das in der Version halt so oder habe ich da noch einen Fehler ?
=> Zudem ist bei mir die zweite Zeile verrückt (siehe Screenshot) Wo kann da der Fehler liegen ?
=> ButtonLock geht nach wie vor nicht, d.h. es kommt die o.g. Fehlermeldung

Gruss

Ralf







Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 22 September 2015, 17:44:04
Als erstes mal aller besten Dank für die Readingsgroup, klasse teil.

Funktioniert auch soweit nur hab ich im Log beim Server neustart immer:

main::rg() called too early to check prototype at ./FHEM/99_myUtils.pm line 107.
main::rg() called too early to check prototype at ./FHEM/99_myUtils.pm line 121.
main::rg() called too early to check prototype at ./FHEM/99_myUtils.pm line 135.
main::rg() called too early to check prototype at ./FHEM/99_myUtils.pm line 160.
main::rg() called too early to check prototype at ./FHEM/99_myUtils.pm line 164.


bekommt man das weg ?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: 2P4u am 25 September 2015, 08:48:15
Hi Zusammen.
Ich habe das jetzt auch mal versucht mit der Version die alles selbst erstellt.
Jedoch bekomme ich den Fehler, dass die Switch.pm nicht gefunden wird.

Kann mir jemand sagen ob die Standard ist? Wo bekomme ich die her?
Ich bin hier alle durch und konnte die Switch.pm nicht finden :(
http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/ (http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/)

Hoffe mir kann jemand helfen.
Danke und lieben Gruss
Daniel
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 25 September 2015, 17:23:17
Hallo Daniel,

switch.pm sollte standardmäßig bei Perl dabeisein.
Schau mal bei http://forum.fhem.de/index.php?topic=10871.5

Gruss

Ralf
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Jojo11 am 03 Oktober 2015, 12:57:34
Zitat von: igami am 15 September 2015, 21:24:40
Ich habe nun mal eine zweite FHEM Instanz aufgesetzt und ein Thermostat hinzugefügt, dazu den code aus dem Post 177 Eingefügt, bzw. das ganz als 99_cleanUtils.pm abgespeichert, dann gibt es keine Konflikte mehr mit bestehenden Subs in den my Utils
...

Und ich bekomme keine Fehler.

Hallo,

habe den code soeben auch mal ausprobiert und kann bestätigen, dass es bei mir mit 7 Thermostaten auf Anhieb geklappt hat. Vielen Dank dafür!

schöne Grüße
Jo
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: DrJJ am 08 Oktober 2015, 18:39:18
Habe den Code auch mal getestet, ging auch bei mir ohne Probleme.

Was ich bei der Sache noch vermisse, ist ein extra Tag Freitag. Da ich Samstags nicht arbeiten muss bin ich meist länger wach als die Tage Montag bis Donnerstag

Ansonsten vielen Dank für die Mühen diese schöne Steuerung zu programmieren
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: rasti am 09 Oktober 2015, 20:04:52
Hallo,

schön dass es bei euch beiden geht, kann bitte einer von euch mal
den fhem.cfg code für ein Thermostat posten ? -
also das was Igamis Skript bei euch produziert hat

Gruß

Ralf
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 10 Oktober 2015, 18:34:40
Sorry würde gerne helfen aber ich verwende ConfigDB funktioniert übrigens auch bestens. Im Moment versuche ich noch zusätzlich den Batteriestatus und die Fenster Sensoren (hm-sec-rhs) mit in das Script zu integrieren. Leider bin ich ne Perlniete wäre also über Hilfe extrem glücklich
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: DrJJ am 11 Oktober 2015, 11:07:01
@rasti

folgendes hat das script bei mir generiert

define default_hc dummy
attr default_hc userattr attributes devices lockMode model subType wildcard
attr default_hc attributes userattr group readingList setList
attr default_hc devices TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04
attr default_hc group Heizkörper
attr default_hc lockMode btnLock
attr default_hc model heating-control
attr default_hc readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e dayTemp nightTemp
attr default_hc room default
attr default_hc setList 0p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
attr default_hc subType default
attr default_hc widgetOverride lockMode:btnLock,globalBtnLock,modusBtnLock
attr default_hc wildcard TYPE=dummy:FILTER=model=heating-control:FILTER=subType!=default
define hc_Kueche dummy
attr hc_Kueche userattr attributes devices lockMode model subType wildcard
attr hc_Kueche DbLogExclude .*
attr hc_Kueche group Heizkörper
attr hc_Kueche model heating-control
attr hc_Kueche readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e dayTemp nightTemp
attr hc_Kueche room Küche
attr hc_Kueche setList 0p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
define hc_Wohnzimmer dummy
attr hc_Wohnzimmer userattr attributes devices lockMode model subType wildcard
attr hc_Wohnzimmer DbLogExclude .*
attr hc_Wohnzimmer group Heizkörper
attr hc_Wohnzimmer model heating-control
attr hc_Wohnzimmer readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e dayTemp nightTemp
attr hc_Wohnzimmer room Wohnzimmer
attr hc_Wohnzimmer setList 0p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
define rg_heater readingsGroup <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<> TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04:<>,!alias,<Soll>,!desired-temp,<Tag>,!dayTemp@{readingsGroup($DEVICE,'hc')},!controlMode,!btnLock,<Zeitraum&nbsp;;1>,!8p1b@{readingsGroup($DEVICE,'hc')},!8p1e@{readingsGroup($DEVICE,'hc')},!6p1b@{readingsGroup($DEVICE,'hc')},!6p1e@{readingsGroup($DEVICE,'hc')},!0p1b@{readingsGroup($DEVICE,'hc')},!0p1e@{readingsGroup($DEVICE,'hc')},!system_fhem_update,<br>,!state@{readingsGroup($DEVICE,'device')},!getConfig,<Ist>,!measured-temp,<Nacht>,!nightTemp@{readingsGroup($DEVICE,'hc')},<Ventil>,!ValvePosition,<Zeitraum&nbsp;;2>,!8p2b@{readingsGroup($DEVICE,'hc')},!8p2e@{readingsGroup($DEVICE,'hc')},!6p2b@{readingsGroup($DEVICE,'hc')},!6p2e@{readingsGroup($DEVICE,'hc')},!0p2b@{readingsGroup($DEVICE,'hc')},!0p2e@{readingsGroup($DEVICE,'hc')},!burstXmit
attr rg_heater DbLogExclude .*
attr rg_heater alias Übersicht Heizkörper
attr rg_heater commands {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg $DEVICE btnLock', '8p1b' => '8p1b:', '8p1e' => '8p1e:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
attr rg_heater nameStyle {($READING eq "Temperatur"|| $READING eq "Status"|| $READING eq "Montag-Freitag"|| $READING eq "Samstag"|| $READING eq "Sonntag"|| $READING eq "system_fhem_update")?'style="text-align:center"':'style=""'}
attr rg_heater nonames 1
attr rg_heater room Haus
attr rg_heater sortDevices 1
attr rg_heater valueColumns {'Heizung' => 'colspan="2"', 'alias' => 'colspan="2"', 'Temperatur' => 'colspan="4"', 'Status' => 'colspan="2"', 'Montag-Freitag' => 'colspan="2"', 'Samstag' => 'colspan="2"', 'Sonntag' => 'colspan="2"'}
attr rg_heater valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>".readingsGroup($DEVICE,"alias")."</a>"}', 'btnLock' => '{ReadingsVal(readingsGroup($DEVICE,"device"),"R-".AttrVal("default_hc","lockMode","btnLock"),"off")}', 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
attr rg_heater valueIcon {'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'btnLock.on' => 'secur_locked@green', 'btnLock.on ' => 'secur_locked@green', 'btnLock.set_on' => 'secur_locked@orange', 'btnLock.set_on ' => 'secur_locked@orange', 'btnLock.off' => 'secur_open@red', 'btnLock.off ' => 'secur_open@red', 'btnLock.set_off' => 'secur_open@orange', 'btnLock.set_off ' => 'secur_open@orange', 'system_fhem_update' => 'system_fhem_update'}
define ntfy_rg notify ntfy_rg {readingsGroup($EVTPART0, $EVTPART1)}
attr ntfy_rg DbLogExclude .*
attr ntfy_rg alias notify readingsGroup
attr ntfy_rg room global
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Thomas78 am 22 November 2015, 22:35:56
Hallo zusammen,

ich habe das Script aus Post 177 eingefügt , soweit funktioniert alles ohne Probleme.
Allerdings beim toggeln des btnLock wird dieser immer auf off gesetzt und nie auf on.
CUL_HM set Kiz.Heizung regSet btnLock off
2015.11.22 21:13:17 3: CUL_HM set Kiz.Heizung getConfig
Hat jemand eine Idee?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 23 November 2015, 07:40:56
ist bei mir auch so. Seit dem letzten Update sind die Register im Device auch nicht mehr vorhanden.

Edit: habs gerade ausprobiert manuell läßt sich der button lock setzen per "set <device> globalBtnLock on " das funktioniert. Aber das Register taucht weder im device noch im clima channel auf.

Auch das Regl_07 bleibt trotz mehrfacher getConfig leer (der CC ist mit einem wandthermostat gepeert).
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: ReneH am 23 November 2015, 12:41:01
Hallo,

ich bin noch ein Neuling in Bezug auf Perl, daher vielleicht nur ein kleines Problem bei mir.

Ich habe 99_myUtils.pm wie folgt angelegt unter /../fhem/FHEM
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

use Switch;

sub room2devspec($){
  my $room = shift;
    my %umlaute = ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
    my $umlautkeys = join ("|", keys(%umlaute));
    $room =~ s/($umlautkeys)/$umlaute{$1}/g;
    $room =~ s/[^A-Za-z0-9\.\:\_]//g;
   
  return $room;
}

sub makefine{

# climaControl definieren und initialisieren
my @devices = devspec2array(AttrVal('default_cc','devices','.*_Clima'));

foreach my $device (@devices){
   my $room = AttrVal($device, 'room', 'undef');
   if($room ne 'undef'){
     my $cc = room2devspec($room);
      $cc = 'cc_'.$cc;
                             
     if(!(defined($defs{$cc}))){
          {fhem("define $cc dummy")}
          {fhem("setreading $cc dayTemp 21.0")}
          {fhem("setreading $cc nightTemp 17.0")}
          {fhem("setreading $cc 6_period_1_stop 21:00")}
          {fhem("setreading $cc 6_period_1_start 04:15")}
          {fhem("setreading $cc 6_period_2_stop 24:00")}
          {fhem("setreading $cc 6_period_2_start 24:00")}
          {fhem("setreading $cc 0_period_1_stop 21:00")}
          {fhem("setreading $cc 0_period_1_start 04:15")}
          {fhem("setreading $cc 0_period_2_stop 24:00")}
          {fhem("setreading $cc 0_period_2_start 24:00")}
          {fhem("setreading $cc 8_period_1_stop 06:30")}
          {fhem("setreading $cc 8_period_1_start 04:15")}
          {fhem("setreading $cc 8_period_2_stop 21:00")}
          {fhem("setreading $cc 8_period_2_start 15:15")}
          {fhem("attr $cc alias $room")}
          {fhem("attr $cc room $room")}
     }
   }
}

  #Attribute aus Vorgaben übernehmen
  my @defaults = devspec2array('default_.*');

  foreach my $default (@defaults){
    my $wildcard = AttrVal($default,'wildcard','wildcard error');
    my @attributes = split(' ',AttrVal($default,'attributes','attributes error'));
    foreach my $attribute (@attributes){
      my $attrval = AttrVal($default,$attribute,'attribute error');
      fhem("attr $wildcard $attribute $attrval")
    }
  }
}

sub rg($$){
  my $device = shift;
  my $function = shift;

  my $room = AttrVal($device, 'room', 'unsorted');

  switch ($function) {
    case 'cc' {
      return ('cc_'.room2devspec($room));
    }
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');
     
      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'btnLock' {
      $device = rg($device, 'device');
      my $btnLock = ReadingsVal($device, 'R-btnLock', '');
     
      switch ($btnLock) {
        case /off/ {
          fhem("set $device regSet btnLock on");
        }
        else {
          fhem("set $device regSet btnLock off");
        }
      }
      fhem ("set $device getConfig");
    }
    case 'globalBtnLock' {
      $device = rg($device, 'device');
      my $globalBtnLock = ReadingsVal($device, 'R-btnLock', '');
     
      switch ($globalBtnLock) {
        case /off/ {
          fhem("set $device regSet globalBtnLock on");
        }
        else {
          fhem("set $device regSet globalBtnLock off");
        }
      }
      fhem ("set $device getConfig");
    }
    case 'setTimeTable' {
      my $cc = rg($device, 'cc');
      my $dayTemp = ReadingsVal( $cc, "dayTemp" , 21.0 );
      my $nightTemp = ReadingsVal( $cc, "nightTemp" , 17.0 );
      my $workday_period_1_start = ReadingsVal( $cc, "8_period_1_start" , "06:30" );
      my $workday_period_1_stop = ReadingsVal( $cc, "8_period_1_stop" , "18:00" );
      my $workday_period_2_start = ReadingsVal( $cc, "8_period_2_start" , "24:00" );
      my $workday_period_2_stop = ReadingsVal( $cc, "8_period_2_stop" , "24:00" );
      my $saturday_period_1_start = ReadingsVal( $cc, "6_period_1_start" , "06:30" );
      my $saturday_period_1_stop = ReadingsVal( $cc, "6_period_1_stop" , "12:00" );
      my $saturday_period_2_start = ReadingsVal( $cc, "6_period_2_start" , "24:00" );
      my $saturday_period_2_stop = ReadingsVal( $cc, "6_period_2_stop" , "24:00" );
      my $sunday_period_1_start = ReadingsVal( $cc, "0_period_1_start" , "24:00" );
      my $sunday_period_1_stop = ReadingsVal( $cc, "0_period_1_stop" , "24:00" );
      my $sunday_period_2_start = ReadingsVal( $cc, "0_period_2_start" , "24:00" );
      my $sunday_period_2_stop = ReadingsVal( $cc, "0_period_2_stop" , "24:00" );
   
      fhem("set $device tempListMon prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListTue prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListWed prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListThu prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListFri prep $workday_period_1_start  $nightTemp $workday_period_1_stop  $dayTemp $workday_period_2_start  $nightTemp $workday_period_2_stop  $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListSat prep $saturday_period_1_start $nightTemp $saturday_period_1_stop $dayTemp $saturday_period_2_start $nightTemp $saturday_period_2_stop $dayTemp 24:00 $nightTemp");
      fhem("set $device tempListSun exec $sunday_period_1_start   $nightTemp $sunday_period_1_stop   $dayTemp $sunday_period_2_start   $nightTemp $sunday_period_2_stop   $dayTemp 24:00 $nightTemp");
    }
    case 'getConfig' {
      $device = rg($device, 'device');
  fhem("set $device getConfig");
    }
    case 'burstXmit' {
      $device = rg($device, 'device');
      fhem("set $device burstXmit");
    }
  }
}


1;


In der fhem.cfg habe ich das eingetragen
define default_cc dummy
attr default_cc userattr attributes wildcard
attr default_cc attributes setList
attr default_cc room test
attr default_cc setList dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 workday_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 workday_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 workday_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 workday_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_period_1_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_period_1_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_period_2_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_period_2_stop:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00
attr default_cc wildcard cc_.*

define ntfy_setreading notify (cc|d)_.* {\
if(($EVENT ~~ / /) and ($EVENT !~ /: /))\
  {fhem("sleep 0.001;; setreading $NAME $EVENT")}\
}

define ntfy_rg notify ntfy_rg {rg($EVTPART0, $EVTPART1)}


Wenn ich jetzt {makefine} in der Weboberfläche aufrufe werden keine dummy Einträge generiert.

Was mache ich falsch?

Gruß

René
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 24 November 2015, 00:45:19
Anscheinend haben sich die Readings wegen btnLock geändert. Anbei meine geänderten 99_myUtils.pm einträge zur readingsgroup. Funktionieren wieder. Allerdings wird das schloss erst nach einem Page-reload geändert (internal readings werden nur beim reload gesetzt).

ACHTUNG: Ich verwende einen anderen namen für den Readingsgroup Raum (KontrollRaum statt Controlroom)

sub cleanUtils_Initialize($$){
  my ($hash) = @_;
}

sub clean{
  generate_heating_control();
  inheritance();
}

sub generate_heating_control{
  my $default_hc = 'default_hc';
  if(!(defined($defs{$default_hc}))){
    my $timeDropDown = '00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00';
    my $tempDropDown = '5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0';

    fhem("
      define $default_hc dummy;

      setreading $default_hc 8p1b 04:15;
      setreading $default_hc 8p1e 06:30;
      setreading $default_hc 8p2b 15:15;
      setreading $default_hc 8p2e 21:00;
      setreading $default_hc 6p1b 04:15;
      setreading $default_hc 6p1e 21:00;
      setreading $default_hc 6p2b 24:00;
      setreading $default_hc 6p2e 24:00;
      setreading $default_hc 0p1b 04:15;
      setreading $default_hc 0p1e 21:00;
      setreading $default_hc 0p2b 24:00;
      setreading $default_hc 0p2e 24:00;
      setreading $default_hc dayTemp 21.0;
      setreading $default_hc nightTemp 17.0;

      attr $default_hc userattr attributes devices lockMode model subType wildcard;
      attr $default_hc attributes userattr group readingList setList;
      attr $default_hc devices TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04;
      attr $default_hc group Heizung;
      attr $default_hc lockMode btnLock;
      attr $default_hc model heating-control;
      attr $default_hc readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e dayTemp nightTemp;
      attr $default_hc room System;
      attr $default_hc setList  0p1b:$timeDropDown 0p1e:$timeDropDown 0p2b:$timeDropDown 0p2e:$timeDropDown 6p1b:$timeDropDown 6p1e:$timeDropDown 6p2b:$timeDropDown 6p2e:$timeDropDown 8p1b:$timeDropDown 8p1e:$timeDropDown 8p2b:$timeDropDown 8p2e:$timeDropDown dayTemp:$tempDropDown nightTemp:$tempDropDown;
      attr $default_hc subType default;
      attr $default_hc widgetOverride lockMode:btnLock,globalBtnLock,modusBtnLock;
      attr $default_hc wildcard TYPE=dummy:FILTER=model=heating-control:FILTER=subType!=default;
      ",1);
  }else{
    my $devices = AttrVal('default_hc', 'devices', 'TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04');
    my $_8p1b = ReadingsVal($default_hc, '8p1b', '04:15');
    my $_8p1e = ReadingsVal($default_hc, '8p1e', '06:30');
    my $_8p2b = ReadingsVal($default_hc, '8p2b', '15:15');
    my $_8p2e = ReadingsVal($default_hc, '8p2e', '21:00');
    my $_6p1b = ReadingsVal($default_hc, '6p1b', '04:15');
    my $_6p1e = ReadingsVal($default_hc, '6p1e', '21:00');
    my $_6p2b = ReadingsVal($default_hc, '6p2b', '24:00');
    my $_6p2e = ReadingsVal($default_hc, '6p2e', '24:00');
    my $_0p1b = ReadingsVal($default_hc, '0p1b', '04:15');
    my $_0p1e = ReadingsVal($default_hc, '0p1e', '21:00');
    my $_0p2b = ReadingsVal($default_hc, '0p2b', '21:00');
    my $_0p2e = ReadingsVal($default_hc, '0p2e', '21:00');
    my $dayTemp = ReadingsVal($default_hc, 'dayTemp', '04:15');
    my $nightTemp = ReadingsVal($default_hc, 'nightTemp', '04:15');

    foreach (devspec2array($devices)){
      my $room = AttrVal($_, 'room', 'Unsorted');
      my $hc = 'hc_'.string2devspec($room);

      if(!(defined($defs{$hc}))){
        fhem("
          define $hc dummy;

          setreading $hc 8p1b $_8p1b;
          setreading $hc 8p1e $_8p1e;
          setreading $hc 8p2b $_8p2b;
          setreading $hc 8p2e $_8p1e;
          setreading $hc 6p1b $_6p1b;
          setreading $hc 6p1e $_6p1e;
          setreading $hc 6p2b $_6p2b;
          setreading $hc 6p2e $_6p2e;
          setreading $hc 0p1b $_0p1b;
          setreading $hc 0p1e $_0p1e;
          setreading $hc 0p2b $_0p2b;
          setreading $hc 0p2e $_0p2e;
          setreading $hc dayTemp $dayTemp;
          setreading $hc nightTemp $nightTemp;

          attr $hc userattr model;
          attr $hc model heating-control;
          attr $hc room $room;
          ",1);
      }
    }

    my $rg_heater = 'rg_heater';
    if(!(defined($defs{$rg_heater}))){
      fhem("
        define $rg_heater readingsGroup <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<> $devices:<>,!alias,<Soll>,!desired-temp,<Tag>,!dayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!controlMode,!+btnLock,<Zeitraum&nbsp\;\;1>,!8p1b\@\{readingsGroup(\$DEVICE,'hc')\},!8p1e\@\{readingsGroup(\$DEVICE,'hc')\},!6p1b\@\{readingsGroup(\$DEVICE,'hc')\},!6p1e\@\{readingsGroup(\$DEVICE,'hc')\},!0p1b\@\{readingsGroup(\$DEVICE,'hc')\},!0p1e\@\{readingsGroup(\$DEVICE,'hc')\},!system_fhem_update,<br>,!state\@\{readingsGroup(\$DEVICE,'device')\},!getConfig,<Ist>,!measured-temp,<Nacht>,!nightTemp\@\{readingsGroup(\$DEVICE,'hc')\},<Ventil>,!ValvePosition,<Zeitraum&nbsp\;\;2>,!8p2b\@\{readingsGroup(\$DEVICE,'hc')\},!8p2e\@\{readingsGroup(\$DEVICE,'hc')\},!6p2b\@\{readingsGroup(\$DEVICE,'hc')\},!6p2e\@\{readingsGroup(\$DEVICE,'hc')\},!0p2b\@\{readingsGroup(\$DEVICE,'hc')\},!0p2e\@\{readingsGroup(\$DEVICE,'hc')\},!burstXmit;

        attr $rg_heater alias Übersicht Heizkörper;
        attr $rg_heater commands \{'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg \$DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg \$DEVICE btnLock', '8p1b' => '8p1b:', '8p1e' => '8p1e:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg \$DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg \$DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg \$DEVICE burstXmit'};
        attr $rg_heater nameStyle \{(\$READING eq \"Temperatur\"|| \$READING eq \"Status\"|| \$READING eq \"Montag-Freitag\"|| \$READING eq \"Samstag\"|| \$READING eq \"Sonntag\"|| \$READING eq \"system_fhem_update\")?'style=\"text-align:center\"':'style=\"\"'};
        attr $rg_heater nonames 1;
        attr $rg_heater room controlRoom;
        attr $rg_heater sortDevices 1;
        attr $rg_heater valueColumns \{'Heizung' => 'colspan=\"2\"', 'alias' => 'colspan=\"2\"', 'Temperatur' => 'colspan=\"4\"', 'Status' => 'colspan=\"2\"', 'Montag-Freitag' => 'colspan=\"2\"', 'Samstag' => 'colspan=\"2\"', 'Sonntag' => 'colspan=\"2\"'};
        attr $rg_heater valueFormat \{'alias' => '\{\"<a href=/fhem?detail=\$DEVICE>\".readingsGroup(\$DEVICE,\"alias\").\"</a>\"\}', 'btnLock' => '\{ReadingsVal(readingsGroup(\$DEVICE,\"device\"),\".R-\".AttrVal(\"default_hc\",\"lockMode\",\"btnLock\"),\"off\")\}', 'measured-temp' => \"%0.1f °C\", 'ValvePosition' => \"%0.1f %%\"\};
        attr $rg_heater valueIcon \{'controlMode.auto' => 'sani_heating_automatic\@green', 'controlMode.set_auto' => 'sani_heating_automatic\@orange', 'controlMode.manual' => 'sani_heating_manual\@red', 'controlMode.set_manual' => 'sani_heating_manual\@orange', 'btnLock.on' => 'secur_locked\@green', 'btnLock.on ' => 'secur_locked\@green', 'btnLock.set_on' => 'secur_locked\@orange', 'btnLock.set_on ' => 'secur_locked\@orange', 'btnLock.off' => 'secur_open\@red', 'btnLock.off ' => 'secur_open\@red', 'btnLock.set_off' => 'secur_open\@orange', 'btnLock.set_off ' => 'secur_open\@orange', 'system_fhem_update' => 'system_fhem_update'\};
        attr $rg_heater visibility hidden;
        ");
    }
  generate_notify_readingsGroup();
  }
}

sub generate_notify_readingsGroup{
  my $ntfy_rg = 'ntfy_rg';
  if(!(defined($defs{$ntfy_rg}))){
    fhem("
      define $ntfy_rg notify $ntfy_rg {readingsGroup(\$EVTPART0, \$EVTPART1)};

      attr $ntfy_rg alias notify readingsGroup;
      attr $ntfy_rg room System;
      ");
  }
}

sub inheritance{
  foreach my $default (devspec2array('TYPE=dummy:FILTER=subType=default')){
    my $wildcard = AttrVal($default, 'wildcard', 'TYPE=none');
    my @attributes = split(' ',AttrVal($default, 'attributes', ''));
    foreach my $attribute (@attributes){
      my $AttrVal = AttrVal($default, $attribute, '');
      fhem("attr $wildcard $attribute $AttrVal", 1);
    }
  }
}

sub readingsGroup($$){
  my ($device, $function) = @_;
  my $room = AttrVal($device, 'room', 'Unsorted');

  switch ($function) {
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'btnLock' {
      $device = readingsGroup($device, 'device');
      $function = AttrVal('default_hc', 'lockMode', 'btnLock');
      my $btnLock = ReadingsVal($device, '.R-'.$function, '');

      switch ($btnLock) {
        case /off/ {
          $btnLock = 'on';
        }
        else {
          $btnLock = 'off';
        }
      }
      fhem ("
        set $device regSet $function $btnLock;
        set $device getConfig;
        ");
    }
    case 'burstXmit' {
      $device = readingsGroup($device, 'device');
      fhem("set $device burstXmit");
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');

      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'getConfig' {
      $device = readingsGroup($device, 'device');
      fhem("set $device getConfig");
    }
    case 'hc' {
      return ('hc_'.string2devspec($room));
    }
    case 'setTimeTable' {
      my $hc = readingsGroup($device, 'hc');
      my $_8p1b = ReadingsVal($hc, '8p1b', '04:15');
      my $_8p1e = ReadingsVal($hc, '8p1e', '06:30');
      my $_8p2b = ReadingsVal($hc, '8p2b', '15:15');
      my $_8p2e = ReadingsVal($hc, '8p2e', '21:00');
      my $_6p1b = ReadingsVal($hc, '6p1b', '04:15');
      my $_6p1e = ReadingsVal($hc, '6p1e', '21:00');
      my $_6p2b = ReadingsVal($hc, '6p2b', '24:00');
      my $_6p2e = ReadingsVal($hc, '6p2e', '24:00');
      my $_0p1b = ReadingsVal($hc, '0p1b', '04:15');
      my $_0p1e = ReadingsVal($hc, '0p1e', '21:00');
      my $_0p2b = ReadingsVal($hc, '0p2b', '21:00');
      my $_0p2e = ReadingsVal($hc, '0p2e', '21:00');
      my $dayTemp = ReadingsVal($hc, 'dayTemp', '04:15');
      my $nightTemp = ReadingsVal($hc, 'nightTemp', '04:15');

      fhem("
        set $device tempListMon prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListTue prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListWed prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListThu prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListFri prep $_8p1b $nightTemp $_8p1e $dayTemp $_8p2b $nightTemp $_8p2e $dayTemp 24:00 $nightTemp;
        set $device tempListSat prep $_6p1b $nightTemp $_6p1e $dayTemp $_6p2b $nightTemp $_6p2e $dayTemp 24:00 $nightTemp;
        set $device tempListSun exec $_0p1b $nightTemp $_0p1e $dayTemp $_0p2b $nightTemp $_0p2e $dayTemp 24:00 $nightTemp;
        ",1);
    }
    case 'state' {
      my $state = ReadingsVal($device, 'state', '');

      switch ($state) {
        case /on/ {
          fhem("set $device off");
        }
        else {
          fhem("set $device on");
        }
      }
    }
  }
}

sub string2devspec($){
  my $string = shift;
  my %mutated_vowel =
    ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
  my $mutated_vowel_keys =
    join ("|", keys(%mutated_vowel));

  $string =~ s/($mutated_vowel_keys)/$mutated_vowel{$1}/g;
  $string =~ s/[^A-Za-z0-9\.\_]//g;

  return $string;
}


hoffe hab alle manuellen Änderungen an der Group ins Script übertragen
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: ReneH am 26 November 2015, 07:24:21
Hallo,

habe 99_myUtils.pm entfernt und wie im Post 200 beschrieben 99_cleanUtils.pm angelegt. Nach dem zweiten Aufruf von {clean} wurden zwei dummys default_hc und hc_Unsorted angelegt und rg_heater.

In der Oberfläche werden auch meine Thermostate angezeigt nur bei den Drop-Down für Tag/Nacht bzw. Wocheneinstellung wird scheinbar überall das hc_Unsorted verwendet :-(.

Gruß

René
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Thomas78 am 26 November 2015, 09:30:02
Hallo zusammen,

ich habe das script von "kleinerDrache" aus Post 216 installiert soweit ich es bisher testen konnte scheint alles zu funktionieren.


Gruß

Thomas
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 26 November 2015, 23:45:42
hmpf irgendwie spinnt meine Readingsgroup etwas. Kann es sein das die Group mit den Raumthermostaten von HM nicht klar kommt ??

Irgendwie bringen mir die Dinger alles durcheinander.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: nettiger am 21 Dezember 2015, 15:03:30
Hallo zusammen,

wie sieht das den aus, wenn man Heizungs und Raumthermostate installiert hat? Welches Device muss ich hier dann setzen? Welches Device "trägt" das Wochenprogramm? HT,WT oder beide?
Und dann kommt noch dazu dass ich die umbenannt habe, allerdings nach dem selben schema:

GESCHOSS_RAUM_HT für den Heizungsthermostat
GESCHOSS_RAUM_WT für den Wandthermostat

Danke schonmal für die Hilfe

Gruß
Jens
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 22 Dezember 2015, 20:15:12
Was haltet ihr von folgendem neuem Layout?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 23 Dezember 2015, 18:40:20
uiii schick schick.

Ist das mit dem standart dark theme erstellt ?? Sieht fast aus wie der config Dialog aus der HM-Software.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 23 Dezember 2015, 18:47:17
Zitat von: kleinerDrache am 23 Dezember 2015, 18:40:20
Ist das mit dem standart dark theme erstellt ?? Sieht fast aus wie der config Dialog aus der HM-Software.
Ja, ist mit dem UZSU widget gebaut, momentan aber noch ohne Funktion, fand es aber doof nur zwei feste Intervalle zu haben. Ich glaube den Fenster- und Batteriestatus packe ich da auch noch rein... nächstes Jahr :D
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: stefan-kiefer am 23 Dezember 2015, 20:24:04
Hallo zusammen,

ich hatte gestern auf meinem RasPi ein neues System installiert. Als Basis dient Raspian Jessy Lite und ein firsches FHEM 5.7. Nach einigen Konfigurationsänderungen in der fhem.cfg habe ich mich an Post #177 gewagt, aber alles direkt wie in Post #200 in eine 99_cleanUtils.pm gepackt. Aber es wollte nicht funktionieren und ich bekam nach dem Befehl "{clean()}" immer die Meldung "Undefined subroutine &main::clean called at (eval 71) line 1.". Letzendlich kam ich durch einige andere Post hier auf die Lösung, da ich die switch.pm mit dem Befehl "sudo apt-get install libswitch-perl" erst installieren musste. Sie ist also keineswegs automatisch dabei.

Danach lief alles einwandfrei und es wurde soweit ich das bis jetzt überblicken konnte korrekt installiert.


Frohe Weihnachten und vielen Dank für die gute Arbeit
Stefan
--
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 23 Dezember 2015, 21:51:14
Sieht echt gut aus Igami
Wäre echt geil wenn das dann am ende auch mit den Wandthermostaten zusammen funktionieren würde und nicht nur mit den Heizkörperreglern.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 24 Dezember 2015, 06:08:10
Kannst du mir zu den Wandthermostaten mal einen Link zum Wiki oder so schicken wo ich ein bisschen lesen kann?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 24 Dezember 2015, 19:47:43
aber klar

HM-TC-IT-WM-W-EU_Funk-Wandthermostat (http://www.fhemwiki.de/wiki/HM-TC-IT-WM-W-EU_Funk-Wandthermostat_AP) ist der nachfolger vom  HM-CC-TC und lässt sich vollständig mit dem HM-CC-RT-DN Peeren und übernimmt auch das messen der Raumtemperatur und Luftfeuchtigkeit.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 25 Dezember 2015, 09:38:11
Ich denke ich werde es hiermit kombinieren
http://forum.fhem.de/index.php/topic,46117.0.html
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 25 Dezember 2015, 09:42:52
sieht interessant aus.

ich hab bisher entweder deine Group oder die aus der Wiki (http://www.fhemwiki.de/wiki/ReadingsGroup#Heizungsteuerung_f.C3.BCr_HM_Wand-_und_Heizk.C3.B6rperthermostate) verwendet und versucht die für mich anzupassen aber dat klappte net wie ich das wollte  ;)

Machst du das eigentlich dann über smartvisu oder bleibt das ne normale readingsgroup im FHEM ?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 30 Dezember 2015, 22:17:39
Hallo zusammen,
nachdem ich, nach dem Update von FHEM auf Version 5.7, Probleme mit dem Dropdown-Menü hatte, habe ich mal das Script aus Post 177 ausprobiert.
Das klappt alles wunderbar, aber...
das Sperren über das Schloss klappt nicht und ich kann keine Templisten zum Thermostat schicken.
Der Button und auch burstXmit zeigen keine Reaktion. Was ist hier eigentlich der Unterschied?
Soll-Temperatur setzen und Modus umschalten klappt aber wunderbar.
Wenn ich es richtig verstehe, wird im Script das Thermostat über das Reading btnLock gesperrt. Ein Thermostat was bei mir geperrt ist hat aber das Reading GlobalBtnLock gesetzt. Liegt das vielleicht hier dran?

Gruß
Jan
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Tho-Gra am 13 Januar 2016, 21:54:57
Zitat von: budda85 am 30 Dezember 2015, 22:17:39
... habe ich mal das Script aus Post 177 ausprobiert.
Das klappt alles wunderbar, aber...
das Sperren über das Schloss klappt nicht und ich kann keine Templisten zum Thermostat schicken.
Der Button und auch burstXmit zeigen keine Reaktion.
Was ist hier eigentlich der Unterschied?
Soll-Temperatur setzen und Modus umschalten klappt aber wunderbar.
Wenn ich es richtig verstehe, wird im Script das Thermostat über das Reading btnLock gesperrt. Ein Thermostat was bei mir geperrt ist hat aber das Reading GlobalBtnLock gesetzt. Liegt das vielleicht hier dran?

Gruß
Jan

Hallo alle zusammen,

Ich habe das selbe Problem...
@ Budda85 : hast du schon eine Lösung?

Grüße

Tho-Gra
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: gloob am 14 Januar 2016, 09:20:15
Ich hab das ganze jetzt bei mir probiert und es funktioniert auf anhieb.
Welche Funktion hat denn das FHEM Häuschen am Ende und das "burstXmit"?

Was muss ich machen, wenn ich jetzt neue Thermostate in FHEM einbinde? Muss ich den clear Befehl dann wieder ausführen?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 14 Januar 2016, 15:07:40
das "Häuschen" überträgt die Einstellungen sofort zum HM-CC ansonsten dauert das 2 - 2,5 min.

Neue Thermostate werden nach dem anlernen automatisch eingefügt soweit ich weiss.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 20 Januar 2016, 21:11:01
Ich habe jetzt nochmal alles aus dem Post 177 neu gemacht.
Es wird alles wunderbar erstellt, so wie es sein sollte,
aber ich bleib dabei:

kleinerDrache hat ja anscheinend auch Probleme wenn er das Script schon umgeschrieben hat, es aber immer noch nicht richtig läuft  :)

Gruß
Jan
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kleinerDrache am 21 Januar 2016, 12:59:28
Bei einigen Registern haben sich die Namen geändert deswegen funktioniert das Script aus 177 nicht mehr richtig. Zum sperren war es früher btnLock heist jetzt R-btnLock usw. deswegen hab ich das Script ja verändert ;-)

Zu den Templisten kann ich im moment nix sagen da ich die Readingsgroup aktuell nicht verwende.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Manuel16 am 06 März 2016, 00:28:49
Hallo zusammen,

mir fehlt bei meinen beiden Thermostaten (Firmware 1.4) das Reading "R-globalBtnLock". Muss das manuell angelegt werden?

Bin Newbie  :)

Viele Grüße,
Manuel
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: ph1959de am 06 März 2016, 12:49:37
Zitat von: Manuel16 am 06 März 2016, 00:28:49
mir fehlt bei meinen beiden Thermostaten (Firmware 1.4) das Reading "R-globalBtnLock". Muss das manuell angelegt werden?
Das ist beim Device (also nicht bei einem der Channel) und wird nur sichtbar, wenn Du das Attribut expert auf den Wert  1_allReg setzt.

Gruß, Peter
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Manuel16 am 06 März 2016, 13:42:36
Perfekt! Funktioniert :)

Vielen Dank!
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: SlrG am 01 Mai 2016, 10:45:32
Hallo,

ich habe igamis genialen Code zur Erstellung der Readings Gruppe mal etwas angepasst. Nun kann man die Temperaturen für die Woche sowie Samstags und Sonntags getrennt regeln. Für die Installation folgt bitte igamis Anweisungen von hier (Post 177) (https://forum.fhem.de/index.php/topic,26479.msg314364.html#msg314364). Der Button Lock sollte nun auch wieder funktionieren.

SlrG

(https://forum.fhem.de/index.php?action=dlattach;topic=26479.0;attach=51533;image)


use Switch;

sub clean{
  generate_heating_control();
  inheritance();
}

sub generate_heating_control{
  my $default_hc = 'default_hc';
  if(!(defined($defs{$default_hc}))){
    my $timeDropDown = '00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00';
    my $tempDropDown = '5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0';

    fhem("
      define $default_hc dummy;

      setreading $default_hc 8p1b 04:15;
      setreading $default_hc 8p1e 06:30;
      setreading $default_hc 8p2b 15:15;
      setreading $default_hc 8p2e 21:00;
      setreading $default_hc 6p1b 04:15;
      setreading $default_hc 6p1e 21:00;
      setreading $default_hc 6p2b 24:00;
      setreading $default_hc 6p2e 24:00;
      setreading $default_hc 0p1b 04:15;
      setreading $default_hc 0p1e 21:00;
      setreading $default_hc 0p2b 24:00;
      setreading $default_hc 0p2e 24:00;
      setreading $default_hc mfdayTemp 21.0;
      setreading $default_hc mfnightTemp 17.0;
      setreading $default_hc sadayTemp 21.0;
      setreading $default_hc sanightTemp 17.0;
      setreading $default_hc sodayTemp 21.0;
      setreading $default_hc sofnightTemp 17.0;

      attr $default_hc userattr attributes devices lockMode model subType wildcard;
      attr $default_hc attributes userattr group readingList setList;
      attr $default_hc devices TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04;
      attr $default_hc group Heizkörper;
      attr $default_hc lockMode R-btnLock;
      attr $default_hc model heating-control;
      attr $default_hc readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e mfdayTemp mfnightTemp sadayTemp sanightTemp sodayTemp sonightTemp;
      attr $default_hc room default;
      attr $default_hc setList  0p1b:$timeDropDown 0p1e:$timeDropDown 0p2b:$timeDropDown 0p2e:$timeDropDown 6p1b:$timeDropDown 6p1e:$timeDropDown 6p2b:$timeDropDown 6p2e:$timeDropDown 8p1b:$timeDropDown 8p1e:$timeDropDown 8p2b:$timeDropDown 8p2e:$timeDropDown mfdayTemp:$tempDropDown mfnightTemp:$tempDropDown sadayTemp:$tempDropDown sanightTemp:$tempDropDown sodayTemp:$tempDropDown sonightTemp:$tempDropDown;
      attr $default_hc subType default;
      attr $default_hc widgetOverride lockMode:R-btnLock,R-globalBtnLock,R-modusBtnLock;
      attr $default_hc wildcard TYPE=dummy:FILTER=model=heating-control:FILTER=subType!=default;
      ",1);
  }else{
    my $devices = AttrVal('default_hc', 'devices', 'TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04');
    my $_8p1b = ReadingsVal($default_hc, '8p1b', '04:15');
    my $_8p1e = ReadingsVal($default_hc, '8p1e', '06:30');
    my $_8p2b = ReadingsVal($default_hc, '8p2b', '15:15');
    my $_8p2e = ReadingsVal($default_hc, '8p2e', '21:00');
    my $_6p1b = ReadingsVal($default_hc, '6p1b', '04:15');
    my $_6p1e = ReadingsVal($default_hc, '6p1e', '21:00');
    my $_6p2b = ReadingsVal($default_hc, '6p2b', '24:00');
    my $_6p2e = ReadingsVal($default_hc, '6p2e', '24:00');
    my $_0p1b = ReadingsVal($default_hc, '0p1b', '04:15');
    my $_0p1e = ReadingsVal($default_hc, '0p1e', '21:00');
    my $_0p2b = ReadingsVal($default_hc, '0p2b', '24:00');
    my $_0p2e = ReadingsVal($default_hc, '0p2e', '24:00');
    my $mfdayTemp = ReadingsVal($default_hc, 'mfdayTemp', '21.0');
    my $mfnightTemp = ReadingsVal($default_hc, 'mfnightTemp', '17.0');
    my $sadayTemp = ReadingsVal($default_hc, 'sadayTemp', '21.0');
    my $sanightTemp = ReadingsVal($default_hc, 'sanightTemp', '17.0');
    my $sodayTemp = ReadingsVal($default_hc, 'sodayTemp', '21.0');
    my $sonightTemp = ReadingsVal($default_hc, 'sonightTemp', '17.0');

    foreach (devspec2array($devices)){
      my $room = AttrVal($_, 'room', 'Unsorted');
      my $hc = 'hc_'.string2devspec($room);

      if(!(defined($defs{$hc}))){
        fhem("
          define $hc dummy;

          setreading $hc 8p1b $_8p1b;
          setreading $hc 8p1e $_8p1e;
          setreading $hc 8p2b $_8p2b;
          setreading $hc 8p2e $_8p1e;
          setreading $hc 6p1b $_6p1b;
          setreading $hc 6p1e $_6p1e;
          setreading $hc 6p2b $_6p2b;
          setreading $hc 6p2e $_6p2e;
          setreading $hc 0p1b $_0p1b;
          setreading $hc 0p1e $_0p1e;
          setreading $hc 0p2b $_0p2b;
          setreading $hc 0p2e $_0p2e;
          setreading $hc mfdayTemp $mfdayTemp;
          setreading $hc mfnightTemp $mfnightTemp;
          setreading $hc sadayTemp $sadayTemp;
          setreading $hc sanightTemp $sanightTemp;
          setreading $hc sodayTemp $sodayTemp;
          setreading $hc sonightTemp $sonightTemp;

          attr $hc userattr model;
          attr $hc model heating-control;
          attr $hc room $room;
          ",1);
      }
    }

    my $rg_heater = 'rg_heater';
    if(!(defined($defs{$rg_heater}))){
      fhem("
        define $rg_heater readingsGroup <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Tag/Nacht °C>,<Montag-Freitag>,<Tag/Nacht °C>,<Samstag>,<Tag/Nacht °C>,<Sonntag>,<> $devices:<>,!alias,<Soll>,!desired-temp,!controlMode,!btnLock,<Zeitraum&nbsp\;\;1>,!mfdayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!8p1b\@\{readingsGroup(\$DEVICE,'hc')\},!8p1e\@\{readingsGroup(\$DEVICE,'hc')\},!sadayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!6p1b\@\{readingsGroup(\$DEVICE,'hc')\},!6p1e\@\{readingsGroup(\$DEVICE,'hc')\},!sodayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!0p1b\@\{readingsGroup(\$DEVICE,'hc')\},!0p1e\@\{readingsGroup(\$DEVICE,'hc')\},!system_fhem_update,<br>,!state\@\{readingsGroup(\$DEVICE,'device')\},!getConfig,<Ist>,!measured-temp,<Ventil>,!ValvePosition,<Zeitraum&nbsp\;\;2>,!mfnightTemp\@\{readingsGroup(\$DEVICE,'hc')\},!8p2b\@\{readingsGroup(\$DEVICE,'hc')\},!8p2e\@\{readingsGroup(\$DEVICE,'hc')\},!sanightTemp\@\{readingsGroup(\$DEVICE,'hc')\},!6p2b\@\{readingsGroup(\$DEVICE,'hc')\},!6p2e\@\{readingsGroup(\$DEVICE,'hc')\},!sonightTemp\@\{readingsGroup(\$DEVICE,'hc')\},!0p2b\@\{readingsGroup(\$DEVICE,'hc')\},!0p2e\@\{readingsGroup(\$DEVICE,'hc')\},!burstXmit;

        attr $rg_heater alias Übersicht Heizkörper;
        attr $rg_heater commands \{'desired-temp' => 'desired-temp:', 'controlMode' => 'trigger ntfy_rg \$DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg \$DEVICE btnLock', 'mfdayTemp' => 'mfdayTemp:', '8p1b' => '8p1b:', '8p1e' => '8p1e:', 'sadayTemp' => 'sadayTemp:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', 'sodayTemp' => 'sodayTemp:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg \$DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg \$DEVICE getConfig', 'mfnightTemp' => 'mfnightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', 'sanightTemp' => 'sanightTemp:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', 'sonightTemp' => 'sonightTemp:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg \$DEVICE burstXmit'};
        attr $rg_heater nameStyle \{(\$READING eq \"Temperatur\"|| \$READING eq \"Status\"|| \$READING eq \"Montag-Freitag\"|| \$READING eq \"Samstag\"|| \$READING eq \"Sonntag\"|| \$READING eq \"system_fhem_update\")?'style=\"text-align:center\"':'style=\"\"'};
        attr $rg_heater nonames 1;
        attr $rg_heater room controlRoom;
        attr $rg_heater sortDevices 1;
        attr $rg_heater valueColumns \{'Heizung' => 'colspan=\"2\"', 'alias' => 'colspan=\"2\"', 'Temperatur' => 'colspan=\"2\"', 'Status' => 'colspan=\"2\"', 'Montag-Freitag' => 'colspan=\"2\"', 'Samstag' => 'colspan=\"2\"', 'Sonntag' => 'colspan=\"2\"'};
        attr $rg_heater valueFormat \{'alias' => '\{\"<a href=/fhem?detail=\$DEVICE>\".readingsGroup(\$DEVICE,\"alias\").\"</a>\"\}', 'btnLock' => '\{ReadingsVal(readingsGroup(\$DEVICE,\"device\"),\"R-\".AttrVal(\"default_hc\",\"lockMode\",\"btnLock\"),\"off\")\}', 'measured-temp' => \"  %0.1f °C\", 'ValvePosition' => \"%0.1f %%\"\};
        attr $rg_heater valueIcon \{'controlMode.auto' => 'sani_heating_automatic\@green', 'controlMode.set_auto' => 'sani_heating_automatic\@orange', 'controlMode.manual' => 'sani_heating_manual\@red', 'controlMode.set_manual' => 'sani_heating_manual\@orange', 'btnLock.on' => 'secur_locked\@green', 'btnLock.on ' => 'secur_locked\@green', 'btnLock.set_on' => 'secur_locked\@orange', 'btnLock.set_on ' => 'secur_locked\@orange', 'btnLock.off' => 'secur_open\@red', 'btnLock.off ' => 'secur_open\@red', 'btnLock.set_off' => 'secur_open\@orange', 'btnLock.set_off ' => 'secur_open\@orange', 'system_fhem_update' => 'system_fhem_update'\};
        attr $rg_heater visibility hidden;
        ");
    }
  generate_notify_readingsGroup();
  }
}

sub generate_notify_readingsGroup{
  my $ntfy_rg = 'ntfy_rg';
  if(!(defined($defs{$ntfy_rg}))){
    fhem("
      define $ntfy_rg notify $ntfy_rg {readingsGroup(\$EVTPART0, \$EVTPART1)};

      attr $ntfy_rg alias notify readingsGroup;
      attr $ntfy_rg room global;
      ");
  }
}

sub inheritance{
  foreach my $default (devspec2array('TYPE=dummy:FILTER=subType=default')){
    my $wildcard = AttrVal($default, 'wildcard', 'TYPE=none');
    my @attributes = split(' ',AttrVal($default, 'attributes', ''));
    foreach my $attribute (@attributes){
      my $AttrVal = AttrVal($default, $attribute, '');
      fhem("attr $wildcard $attribute $AttrVal", 1);
    }
  }
}

sub readingsGroup($$){
  my ($device, $function) = @_;
  my $room = AttrVal($device, 'room', 'Unsorted');

  switch ($function) {
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'btnLock' {
      $device = readingsGroup($device, 'device');
      $function = AttrVal('default_hc', 'lockMode', 'btnLock');
      my $btnLock = ReadingsVal($device, 'R-'.$function, '');

      switch ($btnLock) {
        case /off/ {
          $btnLock = 'on';
        }
        else {
          $btnLock = 'off';
        }
      }
      fhem ("
        set $device regSet $function $btnLock;
        set $device getConfig;
        ");
    }
    case 'burstXmit' {
      $device = readingsGroup($device, 'device');
      fhem("set $device burstXmit");
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');

      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'getConfig' {
      $device = readingsGroup($device, 'device');
      fhem("set $device getConfig");
    }
    case 'hc' {
      return ('hc_'.string2devspec($room));
    }
    case 'setTimeTable' {
      my $hc = readingsGroup($device, 'hc');
      my $_8p1b = ReadingsVal($hc, '8p1b', '04:15');
      my $_8p1e = ReadingsVal($hc, '8p1e', '06:30');
      my $_8p2b = ReadingsVal($hc, '8p2b', '15:15');
      my $_8p2e = ReadingsVal($hc, '8p2e', '21:00');
      my $_6p1b = ReadingsVal($hc, '6p1b', '04:15');
      my $_6p1e = ReadingsVal($hc, '6p1e', '21:00');
      my $_6p2b = ReadingsVal($hc, '6p2b', '24:00');
      my $_6p2e = ReadingsVal($hc, '6p2e', '24:00');
      my $_0p1b = ReadingsVal($hc, '0p1b', '04:15');
      my $_0p1e = ReadingsVal($hc, '0p1e', '21:00');
      my $_0p2b = ReadingsVal($hc, '0p2b', '24:00');
      my $_0p2e = ReadingsVal($hc, '0p2e', '24:00');
      my $mfdayTemp = ReadingsVal($hc, 'mfdayTemp', '21.0');
      my $mfnightTemp = ReadingsVal($hc, 'mfnightTemp', '17.0');
      my $sadayTemp = ReadingsVal($hc, 'sadayTemp', '21.0');
      my $sanightTemp = ReadingsVal($hc, 'sanightTemp', '17.0');
      my $sodayTemp = ReadingsVal($hc, 'sodayTemp', '21.0');
      my $sonightTemp = ReadingsVal($hc, 'sonightTemp', '17.0');

      fhem("
        set $device tempListMon prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListTue prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListWed prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListThu prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListFri prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListSat prep $_6p1b $sanightTemp $_6p1e $sadayTemp $_6p2b $sanightTemp $_6p2e $sadayTemp 24:00 $sanightTemp;
        set $device tempListSun exec $_0p1b $sonightTemp $_0p1e $sodayTemp $_0p2b $sonightTemp $_0p2e $sodayTemp 24:00 $sonightTemp;
        ",1);
    }
    case 'state' {
      my $state = ReadingsVal($device, 'state', '');

      switch ($state) {
        case /on/ {
          fhem("set $device off");
        }
        else {
          fhem("set $device on");
        }
      }
    }
  }
}

sub string2devspec($){
  my $string = shift;
  my %mutated_vowel =
    ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
  my $mutated_vowel_keys =
    join ("|", keys(%mutated_vowel));

  $string =~ s/($mutated_vowel_keys)/$mutated_vowel{$1}/g;
  $string =~ s/[^A-Za-z0-9\.\_]//g;

  return $string;
}
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: gloob am 03 Mai 2016, 14:19:05
Ich habe deine Funktion heute mal eingebunden und werde sie testen. Das Anlegen der Dummys und der ReadingsGroup hat zumindest schon einmal funktioniert.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MarkusHiba am 09 August 2016, 02:21:06
Hallo Liebes Forum,

ich bin relativ neu obwohl ich schon über ein Jahr ich mich mit FHEM beschäftige.

Aus Post #239 habe ich es erfolgreich eingefügt und funktioniert auch tadellos.
Nun zu meinem anliegen, gibt es eine Möglichkeit mehrere Zeiträume anzulegen (zum Bsp.: Zeitraum 3 und 4) ?
aber wie legt man den 3. und 4. Zeitraum an ?

Der Grund dahinter ist das man zum Bsp in der Woche früh Morgens aufsteht und zur Arbeit geht und erst nach 8 Stunden oder länger von der Arbeit erst kommt, da brauch die Heizung nicht tagsüber laufen.


Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 09 August 2016, 06:05:08
Hallo MarkusHiba,

auf meiner ToDo Liste steht schon länger das mittels UZSU Widget zu machen, aber irgendwie bin ich noch nicht dazu gekommen das umzusetzten :D
Eine einfache möglichkeit mehr Zeiträume zu nutzen gibt es momentan nicht.

Grüße
igami
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MarkusHiba am 09 August 2016, 18:53:51
Ich bin gerade dabei die Readings Gruppe etwas anzupassen, den 3. Zeitraum habe ich schon mal angelegt aber der stellt sich noch mit den 2 Zeitraum gleich. Somit muss ich noch den Dummy bearbeiten und das Attribut setList bearbeiten oder ist das falsch?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 09 August 2016, 19:14:17
Das ist nicht falsch, reicht aber auch nicht aus, es ist in einer sub hart kodiert, dass es nur zwei zeiträume gibt, dass muss auch noch angepasst werden.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MarkusHiba am 09 August 2016, 19:23:04
Ok wo finde ich die Sub die man bearbeiten müsste,
was müsste da verändert werden das das alles funktioniert.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 09 August 2016, 19:33:55
Zitat von: MarkusHiba am 09 August 2016, 19:23:04
Ok wo finde ich die Sub die man bearbeiten müsste,
Ist in dem code vom post #239
Zitat von: MarkusHiba am 09 August 2016, 19:23:04
was müsste da verändert werden das das alles funktioniert.
Der folgende Teil muss angepasst werden

    case 'setTimeTable' {
      my $hc = readingsGroup($device, 'hc');
      my $_8p1b = ReadingsVal($hc, '8p1b', '04:15');
      my $_8p1e = ReadingsVal($hc, '8p1e', '06:30');
      my $_8p2b = ReadingsVal($hc, '8p2b', '15:15');
      my $_8p2e = ReadingsVal($hc, '8p2e', '21:00');
      my $_6p1b = ReadingsVal($hc, '6p1b', '04:15');
      my $_6p1e = ReadingsVal($hc, '6p1e', '21:00');
      my $_6p2b = ReadingsVal($hc, '6p2b', '24:00');
      my $_6p2e = ReadingsVal($hc, '6p2e', '24:00');
      my $_0p1b = ReadingsVal($hc, '0p1b', '04:15');
      my $_0p1e = ReadingsVal($hc, '0p1e', '21:00');
      my $_0p2b = ReadingsVal($hc, '0p2b', '24:00');
      my $_0p2e = ReadingsVal($hc, '0p2e', '24:00');
      my $mfdayTemp = ReadingsVal($hc, 'mfdayTemp', '21.0');
      my $mfnightTemp = ReadingsVal($hc, 'mfnightTemp', '17.0');
      my $sadayTemp = ReadingsVal($hc, 'sadayTemp', '21.0');
      my $sanightTemp = ReadingsVal($hc, 'sanightTemp', '17.0');
      my $sodayTemp = ReadingsVal($hc, 'sodayTemp', '21.0');
      my $sonightTemp = ReadingsVal($hc, 'sonightTemp', '17.0');

      fhem("
        set $device tempListMon prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListTue prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListWed prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListThu prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListFri prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfdayTemp 24:00 $mfnightTemp;
        set $device tempListSat prep $_6p1b $sanightTemp $_6p1e $sadayTemp $_6p2b $sanightTemp $_6p2e $sadayTemp 24:00 $sanightTemp;
        set $device tempListSun exec $_0p1b $sonightTemp $_0p1e $sodayTemp $_0p2b $sonightTemp $_0p2e $sodayTemp 24:00 $sonightTemp;
        ",1);
    }
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MarkusHiba am 09 August 2016, 19:40:43
Ok danke ich werde mich mal heute daran versuchen und probieren mal sehen wie ich es hinbekomme und werde dann das fertige Skript hier rein stellen
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MarkusHiba am 14 August 2016, 08:45:13
Hallo

so habe mich mal dran gesetzt und einen dritten Zeitraum hinzugefügt und noch etwas geändert.


use Switch;

sub clean{
  generate_heating_control();
  inheritance();
}

sub generate_heating_control{
  my $default_hc = 'default_hc';
  if(!(defined($defs{$default_hc}))){
    my $timeDropDown = '00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00';
    my $tempDropDown = '5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0';

    fhem("
      define $default_hc dummy;

      setreading $default_hc 8p1b 04:15;
      setreading $default_hc 8p1e 06:30;
      setreading $default_hc 8p2b 15:15;
      setreading $default_hc 8p2e 21:00;
      setreading $default_hc 8p3b 24:00;
      setreading $default_hc 8p3e 24:00;
      setreading $default_hc 6p1b 04:15;
      setreading $default_hc 6p1e 21:00;
      setreading $default_hc 6p2b 24:00;
      setreading $default_hc 6p2e 24:00;
      setreading $default_hc 6p3b 24:00;
      setreading $default_hc 6p3e 24:00;
      setreading $default_hc 0p1b 04:15;
      setreading $default_hc 0p1e 21:00;
      setreading $default_hc 0p2b 24:00;
      setreading $default_hc 0p2e 24:00;
      setreading $default_hc 0p3b 24:00;
      setreading $default_hc 0p3e 24:00;
      setreading $default_hc mfdayTemp 21.0;
      setreading $default_hc mfnightTemp 17.0;
      setreading $default_hc sadayTemp 21.0;
      setreading $default_hc sanightTemp 17.0;
      setreading $default_hc sodayTemp 21.0;
      setreading $default_hc sofnightTemp 17.0;
      setreading $default_hc mfworkdayTemp 17.0;
      setreading $default_hc saworkdayTemp 17.0;
      setreading $default_hc soworkdayTemp 17.0;

      attr $default_hc userattr attributes devices lockMode model subType wildcard;
      attr $default_hc attributes userattr group readingList setList;
      attr $default_hc devices TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04;
      attr $default_hc group Heizkörper;
      attr $default_hc lockMode R-btnLock;
      attr $default_hc model heating-control;
      attr $default_hc readingList 8p1b 8p1e 8p2b 8p2e 8p3b 8p3e 6p1b 6p1e 6p2b 6p2e 6p3b 6p3e 0p1b 0p1e 0p2b 0p2e 0p3b 0p3e mfdayTemp mfnightTemp sadayTemp sanightTemp sodayTemp sonightTemp mfworkdayTemp saworkdayTemp soworkdayTemp;
      attr $default_hc room default;
      attr $default_hc setList  0p1b:$timeDropDown 0p1e:$timeDropDown 0p2b:$timeDropDown 0p2e:$timeDropDown 0p3b:$timeDropDown 0p3e:$timeDropDown 6p1b:$timeDropDown 6p1e:$timeDropDown 6p2b:$timeDropDown 6p2e:$timeDropDown 6p3b:$timeDropDown 6p3e:$timeDropDown 8p1b:$timeDropDown 8p1e:$timeDropDown 8p2b:$timeDropDown 8p2e:$timeDropDown 8p3b:$timeDropDown 8p3e:$timeDropDown mfdayTemp:$tempDropDown mfnightTemp:$tempDropDown sadayTemp:$tempDropDown sanightTemp:$tempDropDown sodayTemp:$tempDropDown sonightTemp:$tempDropDown mfworkdayTemp:$tempDropDown saworkdayTemp:$tempDropDown soworkdayTemp:$tempDropDown;
      attr $default_hc subType default;
      attr $default_hc widgetOverride lockMode:R-btnLock,R-globalBtnLock,R-modusBtnLock;
      attr $default_hc wildcard TYPE=dummy:FILTER=model=heating-control:FILTER=subType!=default;
      ",1);
  }else{
    my $devices = AttrVal('default_hc', 'devices', 'TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04');
    my $_8p1b = ReadingsVal($default_hc, '8p1b', '04:15');
    my $_8p1e = ReadingsVal($default_hc, '8p1e', '06:30');
    my $_8p2b = ReadingsVal($default_hc, '8p2b', '15:15');
    my $_8p2e = ReadingsVal($default_hc, '8p2e', '21:00');
    my $_8p3b = ReadingsVal($default_hc, '8p3b', '24:00');
    my $_8p3e = ReadingsVal($default_hc, '8p3e', '24:00');
    my $_6p1b = ReadingsVal($default_hc, '6p1b', '04:15');
    my $_6p1e = ReadingsVal($default_hc, '6p1e', '21:00');
    my $_6p2b = ReadingsVal($default_hc, '6p2b', '24:00');
    my $_6p2e = ReadingsVal($default_hc, '6p2e', '24:00');
    my $_6p3b = ReadingsVal($default_hc, '6p3b', '24:00');
    my $_6p3e = ReadingsVal($default_hc, '6p3e', '24:00');
    my $_0p1b = ReadingsVal($default_hc, '0p1b', '04:15');
    my $_0p1e = ReadingsVal($default_hc, '0p1e', '21:00');
    my $_0p2b = ReadingsVal($default_hc, '0p2b', '24:00');
    my $_0p2e = ReadingsVal($default_hc, '0p2e', '24:00');
    my $_0p3b = ReadingsVal($default_hc, '0p3b', '24:00');
    my $_0p3e = ReadingsVal($default_hc, '0p3e', '24:00');
    my $mfdayTemp = ReadingsVal($default_hc, 'mfdayTemp', '21.0');
    my $mfnightTemp = ReadingsVal($default_hc, 'mfnightTemp', '17.0');
    my $sadayTemp = ReadingsVal($default_hc, 'sadayTemp', '21.0');
    my $sanightTemp = ReadingsVal($default_hc, 'sanightTemp', '17.0');
    my $sodayTemp = ReadingsVal($default_hc, 'sodayTemp', '21.0');
    my $sonightTemp = ReadingsVal($default_hc, 'sonightTemp', '17.0');
    my $mfworkdayTemp = ReadingsVal($default_hc, 'mfworkdayTemp', '17.0');
    my $saworkdayTemp = ReadingsVal($default_hc, 'saworkdayTemp', '17.0');
    my $soworkdayTemp = ReadingsVal($default_hc, 'soworkdayTemp', '17.0');

    foreach (devspec2array($devices)){
      my $room = AttrVal($_, 'room', 'Unsorted');
      my $hc = 'hc_'.string2devspec($room);

      if(!(defined($defs{$hc}))){
        fhem("
          define $hc dummy;

          setreading $hc 8p1b $_8p1b;
          setreading $hc 8p1e $_8p1e;
          setreading $hc 8p2b $_8p2b;
          setreading $hc 8p2e $_8p1e;
          setreading $hc 8p3b $_8p3b;
          setreading $hc 8p3e $_8p3e;
          setreading $hc 6p1b $_6p1b;
          setreading $hc 6p1e $_6p1e;
          setreading $hc 6p2b $_6p2b;
          setreading $hc 6p2e $_6p2e;
          setreading $hc 6p3b $_6p3b;
          setreading $hc 6p3e $_6p3e;
          setreading $hc 0p1b $_0p1b;
          setreading $hc 0p1e $_0p1e;
          setreading $hc 0p2b $_0p2b;
          setreading $hc 0p2e $_0p2e;
          setreading $hc 0p3b $_0p3b;
          setreading $hc 0p3e $_0p3e;
          setreading $hc mfdayTemp $mfdayTemp;
          setreading $hc mfnightTemp $mfnightTemp;
          setreading $hc sadayTemp $sadayTemp;
          setreading $hc sanightTemp $sanightTemp;
          setreading $hc sodayTemp $sodayTemp;
          setreading $hc sonightTemp $sonightTemp;
          setreading $hc mfworkdayTemp $mfworkdayTemp;
          setreading $hc saworkdayTemp $saworkdayTemp;
          setreading $hc soworkdayTemp $soworkdayTemp;

          attr $hc userattr model;
          attr $hc model heating-control;
          attr $hc room $room;
          ",1);
      }
    }

    my $rg_heater = 'rg_heater';
    if(!(defined($defs{$rg_heater}))){
      fhem("
        define $rg_heater readingsGroup <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Tag/Nacht °C>,<Montag-Freitag>,<Tag/Nacht °C>,<Samstag>,<Tag/Nacht °C>,<Sonntag>,<> $devices:<>,!alias,<Soll>,!desired-temp,!controlMode,!btnLock,<Zeitraum&nbsp\;\;1>,!mfdayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!8p1b\@\{readingsGroup(\$DEVICE,'hc')\},!8p1e\@\{readingsGroup(\$DEVICE,'hc')\},!sadayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!6p1b\@\{readingsGroup(\$DEVICE,'hc')\},!6p1e\@\{readingsGroup(\$DEVICE,'hc')\},!sodayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!0p1b\@\{readingsGroup(\$DEVICE,'hc')\},!0p1e\@\{readingsGroup(\$DEVICE,'hc')\},!system_fhem_update,<br>,!state\@\{readingsGroup(\$DEVICE,'device')\},!getConfig,<Ist>,!measured-temp,<Ventil>,!ValvePosition,<Zeitraum&nbsp\;\;2>,!mfnightTemp\@\{readingsGroup(\$DEVICE,'hc')\},!8p2b\@\{readingsGroup(\$DEVICE,'hc')\},!8p2e\@\{readingsGroup(\$DEVICE,'hc')\},!sanightTemp\@\{readingsGroup(\$DEVICE,'hc')\},!6p2b\@\{readingsGroup(\$DEVICE,'hc')\},!6p2e\@\{readingsGroup(\$DEVICE,'hc')\},!sonightTemp\@\{readingsGroup(\$DEVICE,'hc')\},!0p2b\@\{readingsGroup(\$DEVICE,'hc')\},!0p2e\@\{readingsGroup(\$DEVICE,'hc')\},<br>,<>,<>,<>,<>,<>,<>,<Zeitraum&nbsp\;\;3>,!mfworkdayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!8p3b\@\{readingsGroup(\$DEVICE,'hc')\},!8p3e\@\{readingsGroup(\$DEVICE,'hc')\},!saworkdayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!6p3b\@\{readingsGroup(\$DEVICE,'hc')\},!6p3e\@\{readingsGroup(\$DEVICE,'hc')\},!soworkdayTemp\@\{readingsGroup(\$DEVICE,'hc')\},!0p3b\@\{readingsGroup(\$DEVICE,'hc')\},!0p3e\@\{readingsGroup(\$DEVICE,'hc')\},!burstXmit;

        attr $rg_heater alias Übersicht Heizkörper;
        attr $rg_heater commands \{'desired-temp' => 'desired-temp:', 'controlMode' => 'trigger ntfy_rg \$DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg \$DEVICE btnLock', 'mfdayTemp' => 'mfdayTemp:', '8p1b' => '8p1b:', '8p1e' => '8p1e:', 'mfworkdayTemp' => 'mfworkdayTemp:', '8p3b' => '8p3b:', '8p3e' => '8p3e:', 'sadayTemp' => 'sadayTemp:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', 'saworkdayTemp' => 'saworkdayTemp:', '6p3b' => '6p3b:', '6p3e' => '6p3e:', 'sodayTemp' => 'sodayTemp:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'soworkdayTemp' => 'soworkdayTemp:', '0p3b' => '0p3b:', '0p3e' => '0p3e:', 'system_fhem_update' => 'trigger ntfy_rg \$DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg \$DEVICE getConfig', 'mfnightTemp' => 'mfnightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', '8p4b' => '8p4b:', '8p4e' => '8p4e:', 'sanightTemp' => 'sanightTemp:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', '6p3b' => '6p3b:', '6p3e' => '6p3e:', 'sonightTemp' => 'sonightTemp:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', '0p3b' => '0p3b:', '0p3e' => '0p3e:', 'burstXmit' => 'trigger ntfy_rg \$DEVICE burstXmit'};
        attr $rg_heater nameStyle \{(\$READING eq \"Temperatur\"|| \$READING eq \"Status\"|| \$READING eq \"Montag-Freitag\"|| \$READING eq \"Samstag\"|| \$READING eq \"Sonntag\"|| \$READING eq \"system_fhem_update\")?'style=\"text-align:center\"':'style=\"\"'};
        attr $rg_heater nonames 1;
        attr $rg_heater room controlRoom;
        attr $rg_heater sortDevices 1;
        attr $rg_heater valueColumns \{'Heizung' => 'colspan=\"2\"', 'alias' => 'colspan=\"2\"', 'Temperatur' => 'colspan=\"2\"', 'Status' => 'colspan=\"2\"', 'Montag-Freitag' => 'colspan=\"2\"', 'Samstag' => 'colspan=\"2\"', 'Sonntag' => 'colspan=\"2\"'};
        attr $rg_heater valueFormat \{'alias' => '\{\"<a href=/fhem?detail=\$DEVICE>\".readingsGroup(\$DEVICE,\"alias\").\"</a>\"\}', 'btnLock' => '\{ReadingsVal(readingsGroup(\$DEVICE,\"device\"),\"R-\".AttrVal(\"default_hc\",\"lockMode\",\"btnLock\"),\"off\")\}', 'measured-temp' => \"  %0.1f °C\", 'ValvePosition' => \"%0.1f %%\"\};
        attr $rg_heater valueIcon \{'controlMode.auto' => 'sani_heating_automatic\@green', 'controlMode.set_auto' => 'sani_heating_automatic\@orange', 'controlMode.manual' => 'sani_heating_manual\@red', 'controlMode.set_manual' => 'sani_heating_manual\@orange', 'btnLock.on' => 'secur_locked\@green', 'btnLock.on ' => 'secur_locked\@green', 'btnLock.set_on' => 'secur_locked\@orange', 'btnLock.set_on ' => 'secur_locked\@orange', 'btnLock.off' => 'secur_open\@red', 'btnLock.off ' => 'secur_open\@red', 'btnLock.set_off' => 'secur_open\@orange', 'btnLock.set_off ' => 'secur_open\@orange', 'system_fhem_update' => 'system_fhem_update'\};
        attr $rg_heater visibility hidden;
        ");
    }
  generate_notify_readingsGroup();
  }
}

sub generate_notify_readingsGroup{
  my $ntfy_rg = 'ntfy_rg';
  if(!(defined($defs{$ntfy_rg}))){
    fhem("
      define $ntfy_rg notify $ntfy_rg {readingsGroup(\$EVTPART0, \$EVTPART1)};

      attr $ntfy_rg alias notify readingsGroup;
      attr $ntfy_rg room global;
      ");
  }
}

sub inheritance{
  foreach my $default (devspec2array('TYPE=dummy:FILTER=subType=default')){
    my $wildcard = AttrVal($default, 'wildcard', 'TYPE=none');
    my @attributes = split(' ',AttrVal($default, 'attributes', ''));
    foreach my $attribute (@attributes){
      my $AttrVal = AttrVal($default, $attribute, '');
      fhem("attr $wildcard $attribute $AttrVal", 1);
    }
  }
}

sub readingsGroup($$){
  my ($device, $function) = @_;
  my $room = AttrVal($device, 'room', 'Unsorted');

  switch ($function) {
    case 'alias' {
      return (AttrVal($device, 'alias', $device));
    }
    case 'btnLock' {
      $device = readingsGroup($device, 'device');
      $function = AttrVal('default_hc', 'lockMode', 'btnLock');
      my $btnLock = ReadingsVal($device, 'R-'.$function, '');

      switch ($btnLock) {
        case /off/ {
          $btnLock = 'on';
        }
        else {
          $btnLock = 'off';
        }
      }
      fhem ("
        set $device regSet $function $btnLock;
        set $device getConfig;
        ");
    }
    case 'burstXmit' {
      $device = readingsGroup($device, 'device');
      fhem("set $device burstXmit");
    }
    case 'controlMode' {
      my $controlMode = ReadingsVal($device, 'controlMode', '');

      switch ($controlMode) {
        case /manual/ {
          fhem("set $device controlMode auto");
        }
        else {
          fhem("set $device controlMode manual");
        }
      }
    }
    case 'device' {
      return (InternalVal($device, 'device', $device));
    }
    case 'getConfig' {
      $device = readingsGroup($device, 'device');
      fhem("set $device getConfig");
    }
    case 'hc' {
      return ('hc_'.string2devspec($room));
    }
    case 'setTimeTable' {
      my $hc = readingsGroup($device, 'hc');
      my $_8p1b = ReadingsVal($hc, '8p1b', '24:00');
      my $_8p1e = ReadingsVal($hc, '8p1e', '24:00');
      my $_8p2b = ReadingsVal($hc, '8p2b', '24:00');
      my $_8p2e = ReadingsVal($hc, '8p2e', '24:00');
      my $_8p3b = ReadingsVal($hc, '8p3b', '24:00');
      my $_8p3e = ReadingsVal($hc, '8p3e', '24:00');
      my $_6p1b = ReadingsVal($hc, '6p1b', '24:00');
      my $_6p1e = ReadingsVal($hc, '6p1e', '24:00');
      my $_6p2b = ReadingsVal($hc, '6p2b', '24:00');
      my $_6p2e = ReadingsVal($hc, '6p2e', '24:00');
      my $_6p3b = ReadingsVal($hc, '6p3b', '24:00');
      my $_6p3e = ReadingsVal($hc, '6p3e', '24:00');
      my $_0p1b = ReadingsVal($hc, '0p1b', '04:15');
      my $_0p1e = ReadingsVal($hc, '0p1e', '21:00');
      my $_0p2b = ReadingsVal($hc, '0p2b', '24:00');
      my $_0p2e = ReadingsVal($hc, '0p2e', '24:00');
      my $_0p3b = ReadingsVal($hc, '0p3b', '24:00');
      my $_0p3e = ReadingsVal($hc, '0p3e', '24:00');
      my $mfdayTemp = ReadingsVal($hc, 'mfdayTemp', '21.0');
      my $mfnightTemp = ReadingsVal($hc, 'mfnightTemp', '17.0');
      my $sadayTemp = ReadingsVal($hc, 'sadayTemp', '21.0');
      my $sanightTemp = ReadingsVal($hc, 'sanightTemp', '17.0');
      my $sodayTemp = ReadingsVal($hc, 'sodayTemp', '21.0');
      my $sonightTemp = ReadingsVal($hc, 'sonightTemp', '17.0');
      my $mfworkdayTemp = ReadingsVal($hc, 'mfworkdayTemp', '17.0');
      my $saworkdayTemp = ReadingsVal($hc, 'saworkdayTemp', '17.0');
      my $soworkdayTemp = ReadingsVal($hc, 'soworkdayTemp', '17.0');

      fhem("
        set $device tempListMon prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfworkdayTemp $_8p3b $mfnightTemp $_8p3e $mfnightTemp 24:00 $mfnightTemp;
        set $device tempListTue prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfworkdayTemp $_8p3b $mfnightTemp $_8p3e $mfnightTemp 24:00 $mfnightTemp;
        set $device tempListWed prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfworkdayTemp $_8p3b $mfnightTemp $_8p3e $mfnightTemp 24:00 $mfnightTemp;
        set $device tempListThu prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfworkdayTemp $_8p3b $mfnightTemp $_8p3e $mfnightTemp 24:00 $mfnightTemp;
        set $device tempListFri prep $_8p1b $mfnightTemp $_8p1e $mfdayTemp $_8p2b $mfnightTemp $_8p2e $mfworkdayTemp $_8p3b $mfnightTemp $_8p3e $mfnightTemp 24:00 $mfnightTemp;
        set $device tempListSat prep $_6p1b $sanightTemp $_6p1e $sadayTemp $_6p2b $sanightTemp $_6p2e $saworkdayTemp $_6p3b $sanightTemp $_6p3e $sanightTemp 24:00 $sanightTemp;
        set $device tempListSun exec $_0p1b $sonightTemp $_0p1e $sodayTemp $_0p2b $sonightTemp $_0p2e $soworkdayTemp $_0p3b $sonightTemp $_0p3e $sonightTemp 24:00 $sonightTemp;
        ",1);
    }
    case 'state' {
      my $state = ReadingsVal($device, 'state', '');

      switch ($state) {
        case /on/ {
          fhem("set $device off");
        }
        else {
          fhem("set $device on");
        }
      }
    }
  }
}

sub string2devspec($){
  my $string = shift;
  my %mutated_vowel =
    ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
  my $mutated_vowel_keys =
    join ("|", keys(%mutated_vowel));

  $string =~ s/($mutated_vowel_keys)/$mutated_vowel{$1}/g;
  $string =~ s/[^A-Za-z0-9\.\_]//g;

  return $string;
}
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MarkusHiba am 15 August 2016, 08:21:59
Hallo igami 
zu Post #242 bzw. #222
Wie hast du das Layout hinbekommen? Hättest du paar Codes für mich? Oder ist das mit weekday timer widget hergestellt? Ich wollte sowas gerne in meine tablet ui mit einbauen
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 16 August 2016, 18:24:30
Zitat von: MarkusHiba am 15 August 2016, 08:21:59
Wie hast du das Layout hinbekommen? Hättest du paar Codes für mich? Oder ist das mit weekday timer widget hergestellt? Ich wollte sowas gerne in meine tablet ui mit einbauen
Hab das mit dem UZSU widget gemacht
https://forum.fhem.de/index.php/topic,32660.0.html
http://fhem.de/commandref#widgetOverride
Dafür habe ich aber einige js und css Dateien angepasst.

Insgesamt verwende ich vier Devices für die Steuerung: dummy, weekdaytimer, DOIF, readingsGroup
dummy:

Internals:
   NAME       Badezimmer_climate_controlUnit
   NR         201
   STATE      manual
   STILLDONETIME 0
   TYPE       dummy
   Helper:
     Dblog:
       Desired-temp:
         Mydblog:
           TIME       1471353300.26348
           VALUE      17.0
       State:
         Mydblog:
           TIME       1471353300.26348
           VALUE      enabled
   Readings:
     2016-07-03 12:05:18   controlMode     manual
     2016-05-03 18:06:51   dayTemp         21.5
     2016-08-16 15:15:00   desired-temp    17.0
     2016-05-03 18:06:51   nightTemp       17.0
     2016-05-03 19:35:13   program         Mo,Di,Mi,Do,Fr|04:30|enabled Mo,Di,Mi,Do,Fr|06:30|disabled Mo,Di,Mi,Do,Fr|15:15|enabled Mo,Di,Mi,Do,Fr|22:00|disabled Sa,So|04:30|enabled Sa,So|21:30|disabled
     2016-08-16 15:15:00   state           enabled
Attributes:
   alias      Badezimmer: Raumtemperatur
   desiredUnit °C
   devStateIcon auto:time_automatic@green manual:time_manual_mode@red
   group      Raumtemperatur
   icon       hm_ccu
   model      climate
   readingList controlMode dayTemp desired-temp nightTemp program
   room       Badezimmer
   setList    controlMode:auto,manual dayTemp:16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 program:uzsu
   sortby     100
   stateFormat controlMode
   userattr   desiredUnit

weekdayTimer

Internals:
   COMMAND
   CONDITION
   DEF        Badezimmer_climate_controlUnit Mo,Di,Mi,Do,Fr|04:30|enabled Mo,Di,Mi,Do,Fr|06:30|disabled Mo,Di,Mi,Do,Fr|15:15|enabled Mo,Di,Mi,Do,Fr|22:00|disabled Sa,So|04:30|enabled Sa,So|21:30|disabled
   DEVICE     Badezimmer_climate_controlUnit
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       Badezimmer_climate_timeSwitch
   NR         203
   Profil 0: Sonntag 04:30:00 enabled, 21:30:00 disabled
   Profil 1: Montag 04:30:00 enabled, 06:30:00 disabled, 15:15:00 enabled, 22:00:00 disabled
   Profil 2: Dienstag 04:30:00 enabled, 06:30:00 disabled, 15:15:00 enabled, 22:00:00 disabled
   Profil 3: Mittwoch 04:30:00 enabled, 06:30:00 disabled, 15:15:00 enabled, 22:00:00 disabled
   Profil 4: Donnerstag 04:30:00 enabled, 06:30:00 disabled, 15:15:00 enabled, 22:00:00 disabled
   Profil 5: Freitag 04:30:00 enabled, 06:30:00 disabled, 15:15:00 enabled, 22:00:00 disabled
   Profil 6: Samstag 04:30:00 enabled, 21:30:00 disabled
   STATE      enabled
   STILLDONETIME 0
   TYPE       WeekdayTimer
   Helper:
     Dblog:
       Currvalue:
         Mydblog:
           TIME       1471353300.284
           VALUE      enabled
       Nextupdate:
         Mydblog:
           TIME       1471353300.284
           VALUE      2016-08-16 22:00:00
       Nextvalue:
         Mydblog:
           TIME       1471353300.284
           VALUE      disabled
       State:
         Mydblog:
           TIME       1471353300.284
           VALUE      enabled
   Readings:
     2016-08-16 15:15:00   currValue       enabled
     2016-08-16 15:15:00   nextUpdate      2016-08-16 22:00:00
     2016-08-16 15:15:00   nextValue       disabled
     2016-08-16 15:15:00   state           enabled
   SWITCHINGTIMES:
     Mo,Di,Mi,Do,Fr|04:30|enabled
     Mo,Di,Mi,Do,Fr|06:30|disabled
     Mo,Di,Mi,Do,Fr|15:15|enabled
     Mo,Di,Mi,Do,Fr|22:00|disabled
     Sa,So|04:30|enabled
     Sa,So|21:30|disabled
   Timer:
     Badezimmer_climate_timeswitch_1:
       HASH       Badezimmer_climate_timeSwitch
       MODIFIER   1
       NAME       Badezimmer_climate_timeSwitch_1
     Badezimmer_climate_timeswitch_2:
       HASH       Badezimmer_climate_timeSwitch
       MODIFIER   2
       NAME       Badezimmer_climate_timeSwitch_2
     Badezimmer_climate_timeswitch_3:
       HASH       Badezimmer_climate_timeSwitch
       MODIFIER   3
       NAME       Badezimmer_climate_timeSwitch_3
     Badezimmer_climate_timeswitch_4:
       HASH       Badezimmer_climate_timeSwitch
       MODIFIER   4
       NAME       Badezimmer_climate_timeSwitch_4
     Badezimmer_climate_timeswitch_5:
       HASH       Badezimmer_climate_timeSwitch
       MODIFIER   5
       NAME       Badezimmer_climate_timeSwitch_5
     Badezimmer_climate_timeswitch_6:
       HASH       Badezimmer_climate_timeSwitch
       MODIFIER   6
       NAME       Badezimmer_climate_timeSwitch_6
     Badezimmer_climate_timeswitch_settimerofday:
       HASH       Badezimmer_climate_timeSwitch
       MODIFIER   SetTimerOfDay
       NAME       Badezimmer_climate_timeSwitch_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
   Daynumber:
     !$we       8
     $we        7
     di         2
     do         4
     fr         5
     mi         3
     mo         1
     sa         6
     so         0
   Helper:
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
     Switchingtime:
       0:
         04:30:00   enabled
         21:30:00   disabled
       1:
         04:30:00   enabled
         06:30:00   disabled
         15:15:00   enabled
         22:00:00   disabled
       2:
         04:30:00   enabled
         06:30:00   disabled
         15:15:00   enabled
         22:00:00   disabled
       3:
         04:30:00   enabled
         06:30:00   disabled
         15:15:00   enabled
         22:00:00   disabled
       4:
         04:30:00   enabled
         06:30:00   disabled
         15:15:00   enabled
         22:00:00   disabled
       5:
         04:30:00   enabled
         06:30:00   disabled
         15:15:00   enabled
         22:00:00   disabled
       6:
         04:30:00   enabled
         21:30:00   disabled
   Longdays:
     de:
       Sonntag
       Montag
       Dienstag
       Mittwoch
       Donnerstag
       Freitag
       Samstag
       Wochenende
       Werktags
     en:
       Sunday
       Monday
       Tuesday
       Wednesday
       Thursday
       Friday
       Saturday
       weekend
       weekdays
     fr:
       Dimanche
       Lundi
       Mardi
       Mercredi
       Jeudi
       Vendredi
       Samedi
       weekend
       jours de la semaine
   Profil:
     1:
       EPOCH      1471314600
       PARA       enabled
       TIME       04:30
       TAGE:
         1
         2
         3
         4
         5
     2:
       EPOCH      1471321800
       PARA       disabled
       TIME       06:30
       TAGE:
         1
         2
         3
         4
         5
     3:
       EPOCH      1471353300
       PARA       enabled
       TIME       15:15
       TAGE:
         1
         2
         3
         4
         5
     4:
       EPOCH      1471377600
       PARA       disabled
       TIME       22:00
       TAGE:
         1
         2
         3
         4
         5
     5:
       EPOCH      1471314600
       PARA       enabled
       TIME       04:30
       TAGE:
         0
         6
     6:
       EPOCH      1471375800
       PARA       disabled
       TIME       21:30
       TAGE:
         0
         6
   Profile_idx:
     0:
       04:30:00   5
       21:30:00   6
     1:
       04:30:00   1
       06:30:00   2
       15:15:00   3
       22:00:00   4
     2:
       04:30:00   1
       06:30:00   2
       15:15:00   3
       22:00:00   4
     3:
       04:30:00   1
       06:30:00   2
       15:15:00   3
       22:00:00   4
     4:
       04:30:00   1
       06:30:00   2
       15:15:00   3
       22:00:00   4
     5:
       04:30:00   1
       06:30:00   2
       15:15:00   3
       22:00:00   4
     6:
       04:30:00   5
       21:30:00   6
   Shortdays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
Attributes:
   alias      Badezimmer: Raumtemperatur Zeitschalteinheit
   group      Raumtemperatur
   icon       time_clock
   room       Badezimmer
   sortby     105
   stateFormat currValue
   switchInThePast 1

DOIF

Internals:
   CHANGED
   DEF
([Badezimmer_climate_controlUnit:"program"])(
  defmod Badezimmer_climate_controlUnit_program at +00:03 {program2Clima("Badezimmer_climate_controlUnit")},
  sleep 0.001; attr Badezimmer_climate_controlUnit_program defined_by $SELF,
  sleep 0.001; attr Badezimmer_climate_controlUnit_program room hidden
)
DOELSEIF
([Badezimmer_climate_controlUnit:"dayTemp|nighTemp"])(
  defmod Badezimmer_climate_controlUnit_program at +00:03 {program2Clima("Badezimmer_climate_controlUnit")},
  sleep 0.001; attr Badezimmer_climate_controlUnit_program defined_by $SELF,
  sleep 0.001; attr Badezimmer_climate_controlUnit_program room hidden,

  IF
  ([Badezimmer_climate_controlUnit:state] eq "enabled" and
   [Badezimmer_climate_controlUnit:controlMode] eq "auto"
  )(
    set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:dayTemp]
  ),
  IF
  ([Badezimmer_climate_controlUnit:state] eq "disabled" and
   [Badezimmer_climate_controlUnit:controlMode] eq "auto"
  )(
    set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:nightTemp]
  ),

  sleep 0.001; setreading $SELF state [$SELF:state]
)
DOELSEIF
([Badezimmer_climate_controlUnit:state] eq "enabled" and
[Badezimmer_climate_controlUnit:controlMode] eq "auto"
)(
  set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:dayTemp],
  (set model=HM-CC-RT-DN(-\d)?:FILTER=chanNo=04:FILTER=room={(string2FILTER(AttrVal("Badezimmer_climate_controlUnit", "room", "Unsorted")))} controlMode auto)
)
DOELSEIF
([Badezimmer_climate_controlUnit:state] eq "disabled" and
[Badezimmer_climate_controlUnit:controlMode] eq "auto"
)(
  set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:nightTemp],
  (set model=HM-CC-RT-DN(-\d)?:FILTER=chanNo=04:FILTER=room={(string2FILTER(AttrVal("Badezimmer_climate_controlUnit", "room", "Unsorted")))} controlMode auto)
)
DOELSEIF
([Badezimmer_climate_controlUnit:controlMode] ne "auto")(
  set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:nightTemp],
  (set model=HM-CC-RT-DN(-\d)?:FILTER=chanNo=04:FILTER=room={(string2FILTER(AttrVal("Badezimmer_climate_controlUnit", "room", "Unsorted")))} controlManu [Badezimmer_climate_controlUnit:nightTemp])
)
   NAME       Badezimmer_climate_automation
   NR         202
   NTFY_ORDER 50-Badezimmer_climate_automation
   STATE      manual
   TYPE       DOIF
   Readings:
     2016-08-16 15:15:00   Device          Badezimmer_climate_controlUnit
     2016-08-16 15:15:00   cmd             5
     2016-08-16 15:15:00   cmd_event       Badezimmer_climate_controlUnit
     2016-08-16 15:15:00   cmd_nr          5
     2016-08-16 15:15:00   e_Badezimmer_climate_controlUnit_controlMode manual
     2016-08-16 15:15:00   e_Badezimmer_climate_controlUnit_events enabled
     2016-08-16 15:15:00   e_Badezimmer_climate_controlUnit_state enabled
     2016-08-16 15:15:00   state           manual
   Condition:
     0          EventDoIf('Badezimmer_climate_controlUnit',$hash,'program',1)
     1          EventDoIf('Badezimmer_climate_controlUnit',$hash,'dayTemp|nighTemp',1)
     2          ReadingValDoIf($hash,'Badezimmer_climate_controlUnit','state','','',AttrVal($hash->{NAME},'notexist',undef)) eq "enabled" and  ReadingValDoIf($hash,'Badezimmer_climate_controlUnit','controlMode','','',AttrVal($hash->{NAME},'notexist',undef)) eq "auto"
     3          ReadingValDoIf($hash,'Badezimmer_climate_controlUnit','state','','',AttrVal($hash->{NAME},'notexist',undef)) eq "disabled" and  ReadingValDoIf($hash,'Badezimmer_climate_controlUnit','controlMode','','',AttrVal($hash->{NAME},'notexist',undef)) eq "auto"
     4          ReadingValDoIf($hash,'Badezimmer_climate_controlUnit','controlMode','','',AttrVal($hash->{NAME},'notexist',undef)) ne "auto"
   Devices:
     0           Badezimmer_climate_controlUnit
     1           Badezimmer_climate_controlUnit
     2           Badezimmer_climate_controlUnit
     3           Badezimmer_climate_controlUnit
     4           Badezimmer_climate_controlUnit
     all         Badezimmer_climate_controlUnit
   Do:
     0:
       0             defmod Badezimmer_climate_controlUnit_program at +00:03 {program2Clima("Badezimmer_climate_controlUnit")},   sleep 0.001; attr Badezimmer_climate_controlUnit_program defined_by Badezimmer_climate_automation,   sleep 0.001; attr Badezimmer_climate_controlUnit_program room hidden
     1:
       0             defmod Badezimmer_climate_controlUnit_program at +00:03 {program2Clima("Badezimmer_climate_controlUnit")},   sleep 0.001; attr Badezimmer_climate_controlUnit_program defined_by Badezimmer_climate_automation,   sleep 0.001; attr Badezimmer_climate_controlUnit_program room hidden,      IF   ([Badezimmer_climate_controlUnit:state] eq "enabled" and    [Badezimmer_climate_controlUnit:controlMode] eq "auto"   )(     set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:dayTemp]   ),   IF   ([Badezimmer_climate_controlUnit:state] eq "disabled" and    [Badezimmer_climate_controlUnit:controlMode] eq "auto"   )(     set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:nightTemp]   ),    sleep 0.001; setreading Badezimmer_climate_automation state [Badezimmer_climate_automation:state]
     2:
       0             set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:dayTemp],   (set model=HM-CC-RT-DN(-\d)?:FILTER=chanNo=04:FILTER=room={(string2FILTER(AttrVal("Badezimmer_climate_controlUnit", "room", "Unsorted")))} controlMode auto)
     3:
       0             set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:nightTemp],   (set model=HM-CC-RT-DN(-\d)?:FILTER=chanNo=04:FILTER=room={(string2FILTER(AttrVal("Badezimmer_climate_controlUnit", "room", "Unsorted")))} controlMode auto)
     4:
       0             set Badezimmer_climate_controlUnit desired-temp [Badezimmer_climate_controlUnit:nightTemp],   (set model=HM-CC-RT-DN(-\d)?:FILTER=chanNo=04:FILTER=room={(string2FILTER(AttrVal("Badezimmer_climate_controlUnit", "room", "Unsorted")))} controlManu [Badezimmer_climate_controlUnit:nightTemp])
   Helper:
     event      enabled
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Badezimmer_climate_controlUnit
     timerevent enabled
     triggerDev Badezimmer_climate_controlUnit
     timerevents:
       enabled
       desired-temp: 17.0
     timereventsState:
       state: enabled
     triggerEvents:
       enabled
       desired-temp: 17.0
     triggerEventsState:
       state: enabled
   Internals:
   Itimer:
   Readings:
     2           Badezimmer_climate_controlUnit:state Badezimmer_climate_controlUnit:controlMode
     3           Badezimmer_climate_controlUnit:state Badezimmer_climate_controlUnit:controlMode
     4           Badezimmer_climate_controlUnit:controlMode
     all         Badezimmer_climate_controlUnit:state Badezimmer_climate_controlUnit:controlMode
   Regexp:
     0:
     1:
     2:
     3:
     4:
     All:
   State:
   Trigger:
     all         Badezimmer_climate_controlUnit
Attributes:
   alias      Badezimmer: Raumtemperatur Automatik
   cmdState   program|temp|enabled|disabled|manual
   devStateIcon enabled:weather_sun (disabled|manual):weather_moon_phases_8 initialized:unknown
   do         always
   event-on-change-reading state
   group      Raumtemperatur
   icon       time_automatic
   model      climate
   room       Badezimmer
   sortby     110

readingsGroup

Internals:
   DEF        <>,<Steuerung>,<Vorgabe>,<Modus>,<Status>,<>
Badezimmer_climate_controlUnit:<>,!alias,dayTemp,!?desiredUnit,<>,<>,!controlMode,!state@Badezimmer_climate_automation,<>,<br>,!program,<>
   NAME       Badezimmer_automation_readingsGroup
   NR         206
   NTFY_ORDER 50-Badezimmer_automation_readingsGroup
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Badezimmer_climate_controlUnit 1
   Content2:
     Badezimmer_climate_automation 1
   DEVICES:
     ARRAY(0x4370858)
     ARRAY(0x458c3a0)
   DEVICES2:
     ARRAY(0x4370858)
     ARRAY(0x458c3a0)
     ARRAY(0x3ad0238)
   Fhem:
     lastDefChange 14
     last_update 1471364152.7903
   Helper:
     DEF
     commands   {"controlMode.auto" => "set $DEVICE controlMode manual",
"controlMode.manual" => "set $DEVICE controlMode auto",
"dayTemp" => "dayTemp:",
"desired" => "desired:",
"program" => "program:",
"wait" => "wait:"
}
     nameStyle  {($READING =~ /Steuerung|Vorgabe/) ?
   'style="text-align: left; font-size:20px; color:#025995"'
:
   'style="font-size:20px;;color:#025995"'
}
     valueFormat {"alias" => '{AttrVal("$DEVICE", "alias", "$DEVICE")}'
}
     valueStyle {($READING =~ /program/) ?
   'style="width: 568px"'
:
($READING =~ /desiredUnit|waitUnit/) ?
   'style="text-align: left; margin-left: -20px"'
:
($READING =~ /alias|dayTemp|desired/) ?
   'style="text-align: left"'
:
   ''
}
     Positions:
       Badezimmer_climate_automation.state 2:8
       Badezimmer_climate_controlUnit.alias 2:2
       Badezimmer_climate_controlUnit.controlMode 2:7
       Badezimmer_climate_controlUnit.dayTemp 2:3
       Badezimmer_climate_controlUnit.desiredUnit 2:4
       Badezimmer_climate_controlUnit.program 3:1
     Valuecolumns:
       Vorgabe    colspan = 4
       program    colspan = 7
     Valueicon:
       controlMode.auto time_automatic@green
       controlMode.manual time_manual_mode@red
       state      %devStateIcon
     Values:
       formated:

         ARRAY(0x43ae9b8)
         ARRAY(0x3d451f8)
         ARRAY(0x41f8790)
         ARRAY(0x45e0018)


         ARRAY(0x4c5ff58)
         ARRAY(0x45cab78)
       orig:

         ARRAY(0x4c5f568)
         ARRAY(0x42c2000)
         ARRAY(0x45d9ea8)
         ARRAY(0x48fe0d0)


         ARRAY(0x3e2b090)
         ARRAY(0x4b40438)
       prefixsuffix:

         ARRAY(0x443e058)
         ARRAY(0x3c3e990)
         ARRAY(0x45b33a8)
         ARRAY(0x430a920)


         ARRAY(0x4b3e200)
         ARRAY(0x4a1b7a8)
Attributes:
   commands   {"controlMode.auto" => "set $DEVICE controlMode manual",
"controlMode.manual" => "set $DEVICE controlMode auto",
"dayTemp" => "dayTemp:",
"desired" => "desired:",
"program" => "program:",
"wait" => "wait:"
}
   defined_by default_automation_readingsGroup
   model      automation
   nameStyle  {($READING =~ /Steuerung|Vorgabe/) ?
   'style="text-align: left; font-size:20px; color:#025995"'
:
   'style="font-size:20px;;color:#025995"'
}
   noheading  1
   nonames    1
   room       Badezimmer
   style      style="text-align: center"
   valueColumns {"Vorgabe" => "colspan = 4",
"program" => "colspan = 7"
}
   valueFormat {"alias" => '{AttrVal("$DEVICE", "alias", "$DEVICE")}'
}
   valueIcon  {"controlMode.auto" => 'time_automatic@green',
"controlMode.manual" => 'time_manual_mode@red',
"state" => "%devStateIcon"
}
   valueStyle {($READING =~ /program/) ?
   'style="width: 568px"'
:
($READING =~ /desiredUnit|waitUnit/) ?
   'style="text-align: left; margin-left: -20px"'
:
($READING =~ /alias|dayTemp|desired/) ?
   'style="text-align: left"'
:
   ''
}

und ein notify gibt es auch noch

Internals:
   DEF        .*program:.* {
  if(InternalVal("$NAME", "TYPE", undef) eq "dummy"){
    my $timeSwitch =  "$NAME";
    $timeSwitch =~ s/controlUnit/timeSwitch/g;
    my $program =  ReadingsVal("$NAME", "program", undef);

    fhem("modify $timeSwitch $NAME $program");
  }
}
   NAME       climate_program_notify
   NR         159
   NTFY_ORDER 50-climate_program_notify
   REGEXP     .*program:.*
   STATE      active
   TYPE       notify
   Readings:
     2016-08-14 09:06:04   state           active
Attributes:
   devStateIcon inactive:ios-off:active .*:ios-on-blue:inactive
   group      dummy
   icon       audio_mic
   room       global


Ist aber noch alles nicht ganz rund.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: gloob am 21 September 2016, 14:13:39
Gibt es hier etwas neues, was man aktuell nutzen kann?

Schön wäre auch eine Version für FTUI.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MarkusHiba am 21 September 2016, 14:27:42
Hallo
ich habe es mit Weekprofile  http://www.fhemwiki.de/wiki/Weekprofile und https://forum.fhem.de/index.php?topic=50197.0 gemacht funktioniert ganz gut



Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: gloob am 05 Oktober 2016, 15:18:07
Irgendwie wird meine Readingsgroup seit einem Update nicht mehr richtig angezeigt. Es ist alles verschoben.

Hat noch jemand das Problem und vielleicht auch eine Lösung?

Internals:
   DEF        <>,<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Montag-Freitag>,<Samstag>,<Sonntag>,<> TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04:<>,!alias,<Soll>,!desired-temp,<Tag>,!dayTemp@{readingsGroup($DEVICE,'hc')},!controlMode,!+btnLock,<Zeitraum&nbsp;1>,!8p1b@{readingsGroup($DEVICE,'hc')},!8p1e@{readingsGroup($DEVICE,'hc')},!6p1b@{readingsGroup($DEVICE,'hc')},!6p1e@{readingsGroup($DEVICE,'hc')},!0p1b@{readingsGroup($DEVICE,'hc')},!0p1e@{readingsGroup($DEVICE,'hc')},!system_fhem_update,<br>,!state@{readingsGroup($DEVICE,'device')},!getConfig,<Ist>,!measured-temp,<Nacht>,!nightTemp@{readingsGroup($DEVICE,'hc')},<Ventil>,!ValvePosition,<Zeitraum&nbsp;2>,!8p2b@{readingsGroup($DEVICE,'hc')},!8p2e@{readingsGroup($DEVICE,'hc')},!6p2b@{readingsGroup($DEVICE,'hc')},!6p2e@{readingsGroup($DEVICE,'hc')},!0p2b@{readingsGroup($DEVICE,'hc')},!0p2e@{readingsGroup($DEVICE,'hc')},!burstXmit
   NAME       rg_heater
   NR         397
   NTFY_ORDER 50-rg_heater
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     HM_BA_Heizung_Clima 1
     HM_KU_Heizung_Clima 1
     HM_KZ_Heizung_Clima 1
     HM_WZ_Heizung_Clima 1
   Content2:
     HM_BA_Heizung 1
     HM_KU_Heizung 1
     HM_KZ_Heizung 1
     HM_WZ_Heizung 1
     hc_HomematicBad 1
     hc_HomematicKinderzimmer 1
     hc_HomematicKueche 1
     hc_HomematicWohnzimmer 1
   DEVICES:
     ARRAY(0x12c6b48)
     ARRAY(0x13739b8)
     ARRAY(0x118c1b0)
     ARRAY(0x1373c70)
     ARRAY(0x2a40d78)
   DEVICES2:
     ARRAY(0x12c6b48)
     ARRAY(0x13739b8)
     ARRAY(0x1373c70)
     ARRAY(0x118c1b0)
     ARRAY(0x2a40d78)
     ARRAY(0x3a7de70)
     ARRAY(0x3a041c8)
     ARRAY(0x3461568)
     ARRAY(0x34650c8)
     ARRAY(0x1362820)
     ARRAY(0x1373ad8)
     ARRAY(0x136d120)
     ARRAY(0x3976078)
     ARRAY(0x3bcfd30)
     ARRAY(0x12e1280)
     ARRAY(0x3adcc70)
     ARRAY(0x3bcd178)
     ARRAY(0x3a47ae8)
     ARRAY(0x134edc8)
     ARRAY(0x12cf128)
     ARRAY(0x1377108)
     ARRAY(0x1313688)
     ARRAY(0x3bccd28)
     ARRAY(0x1366568)
     ARRAY(0x3bcd1f0)
     ARRAY(0x3972948)
     ARRAY(0x3973080)
     ARRAY(0x3bccfc8)
     ARRAY(0x134e948)
     ARRAY(0x3bc6200)
     ARRAY(0x3bd03a8)
     ARRAY(0x3bd0630)
     ARRAY(0x3ab30a0)
     ARRAY(0x13779a8)
     ARRAY(0x1362df0)
     ARRAY(0x3bc60e0)
     ARRAY(0x136ecf8)
     ARRAY(0x1366c28)
     ARRAY(0x135fe28)
     ARRAY(0x3ab09c0)
     ARRAY(0x3972f30)
     ARRAY(0x3a8a500)
     ARRAY(0x12a9fa0)
     ARRAY(0x34616d0)
     ARRAY(0x1362a00)
     ARRAY(0x3aad500)
     ARRAY(0x3bcd748)
     ARRAY(0x3ae9050)
     ARRAY(0x3529588)
     ARRAY(0x3488e48)
     ARRAY(0x3468c48)
     ARRAY(0x3ad6d30)
     ARRAY(0x3bd0600)
     ARRAY(0x3a8ad10)
     ARRAY(0x3bd0498)
     ARRAY(0x38e74e8)
     ARRAY(0x38e7728)
     ARRAY(0x1373e98)
     ARRAY(0x36428a8)
     ARRAY(0x12b1010)
     ARRAY(0x1362b50)
     ARRAY(0x136e998)
     ARRAY(0x124c928)
     ARRAY(0x136ecb0)
     ARRAY(0x3522a70)
   Fhem:
     lastDefChange 1
     last_update 1475673510.40068
   Helper:
     DEF
     commands   {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg $DEVICE btnLock', '8p1b' => '8p1b:', '8p1e' => '8p1e:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
     nameStyle  {($READING eq "Temperatur"|| $READING eq "Status"|| $READING eq "Montag-Freitag"|| $READING eq "Samstag"|| $READING eq "Sonntag"|| $READING eq "system_fhem_update")?'style="text-align:center"':'style=""'}
     valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>".readingsGroup($DEVICE,"alias")."</a>"}', 'btnLock' => '{ReadingsVal(readingsGroup($DEVICE,"device"),".R-".AttrVal("default_hc","lockMode","btnLock"),"off")}', 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
     Positions:
       HM_BA_Heizung.state 3:1
       HM_BA_Heizung_Clima.ValvePosition 3:8
       HM_BA_Heizung_Clima.alias 2:2
       HM_BA_Heizung_Clima.btnLock 2:8
       HM_BA_Heizung_Clima.burstXmit 3:16
       HM_BA_Heizung_Clima.controlMode 2:7
       HM_BA_Heizung_Clima.desired-temp 2:4
       HM_BA_Heizung_Clima.getConfig 3:2
       HM_BA_Heizung_Clima.measured-temp 3:4
       HM_BA_Heizung_Clima.system_fhem_update 2:16
       HM_KU_Heizung.state 7:1
       HM_KU_Heizung_Clima.ValvePosition 7:8
       HM_KU_Heizung_Clima.alias 6:2
       HM_KU_Heizung_Clima.btnLock 6:8
       HM_KU_Heizung_Clima.burstXmit 7:16
       HM_KU_Heizung_Clima.controlMode 6:7
       HM_KU_Heizung_Clima.desired-temp 6:4
       HM_KU_Heizung_Clima.getConfig 7:2
       HM_KU_Heizung_Clima.measured-temp 7:4
       HM_KU_Heizung_Clima.system_fhem_update 6:16
       HM_KZ_Heizung.state 5:1
       HM_KZ_Heizung_Clima.ValvePosition 5:8
       HM_KZ_Heizung_Clima.alias 4:2
       HM_KZ_Heizung_Clima.btnLock 4:8
       HM_KZ_Heizung_Clima.burstXmit 5:16
       HM_KZ_Heizung_Clima.controlMode 4:7
       HM_KZ_Heizung_Clima.desired-temp 4:4
       HM_KZ_Heizung_Clima.getConfig 5:2
       HM_KZ_Heizung_Clima.measured-temp 5:4
       HM_KZ_Heizung_Clima.system_fhem_update 4:16
       HM_WZ_Heizung.state 9:1
       HM_WZ_Heizung_Clima.ValvePosition 9:8
       HM_WZ_Heizung_Clima.alias 8:2
       HM_WZ_Heizung_Clima.btnLock 8:8
       HM_WZ_Heizung_Clima.burstXmit 9:16
       HM_WZ_Heizung_Clima.controlMode 8:7
       HM_WZ_Heizung_Clima.desired-temp 8:4
       HM_WZ_Heizung_Clima.getConfig 9:2
       HM_WZ_Heizung_Clima.measured-temp 9:4
       HM_WZ_Heizung_Clima.system_fhem_update 8:16
       hc_HomematicBad.0p1b 2:14
       hc_HomematicBad.0p1e 2:15
       hc_HomematicBad.0p2b 3:14
       hc_HomematicBad.0p2e 3:15
       hc_HomematicBad.6p1b 2:12
       hc_HomematicBad.6p1e 2:13
       hc_HomematicBad.6p2b 3:12
       hc_HomematicBad.6p2e 3:13
       hc_HomematicBad.8p1b 2:10
       hc_HomematicBad.8p1e 2:11
       hc_HomematicBad.8p2b 3:10
       hc_HomematicBad.8p2e 3:11
       hc_HomematicBad.dayTemp 2:6
       hc_HomematicBad.nightTemp 3:6
       hc_HomematicKinderzimmer.0p1b 4:14
       hc_HomematicKinderzimmer.0p1e 4:15
       hc_HomematicKinderzimmer.0p2b 5:14
       hc_HomematicKinderzimmer.0p2e 5:15
       hc_HomematicKinderzimmer.6p1b 4:12
       hc_HomematicKinderzimmer.6p1e 4:13
       hc_HomematicKinderzimmer.6p2b 5:12
       hc_HomematicKinderzimmer.6p2e 5:13
       hc_HomematicKinderzimmer.8p1b 4:10
       hc_HomematicKinderzimmer.8p1e 4:11
       hc_HomematicKinderzimmer.8p2b 5:10
       hc_HomematicKinderzimmer.8p2e 5:11
       hc_HomematicKinderzimmer.dayTemp 4:6
       hc_HomematicKinderzimmer.nightTemp 5:6
       hc_HomematicKueche.0p1b 6:14
       hc_HomematicKueche.0p1e 6:15
       hc_HomematicKueche.0p2b 7:14
       hc_HomematicKueche.0p2e 7:15
       hc_HomematicKueche.6p1b 6:12
       hc_HomematicKueche.6p1e 6:13
       hc_HomematicKueche.6p2b 7:12
       hc_HomematicKueche.6p2e 7:13
       hc_HomematicKueche.8p1b 6:10
       hc_HomematicKueche.8p1e 6:11
       hc_HomematicKueche.8p2b 7:10
       hc_HomematicKueche.8p2e 7:11
       hc_HomematicKueche.dayTemp 6:6
       hc_HomematicKueche.nightTemp 7:6
       hc_HomematicWohnzimmer.0p1b 8:14
       hc_HomematicWohnzimmer.0p1e 8:15
       hc_HomematicWohnzimmer.0p2b 9:14
       hc_HomematicWohnzimmer.0p2e 9:15
       hc_HomematicWohnzimmer.6p1b 8:12
       hc_HomematicWohnzimmer.6p1e 8:13
       hc_HomematicWohnzimmer.6p2b 9:12
       hc_HomematicWohnzimmer.6p2e 9:13
       hc_HomematicWohnzimmer.8p1b 8:10
       hc_HomematicWohnzimmer.8p1e 8:11
       hc_HomematicWohnzimmer.8p2b 9:10
       hc_HomematicWohnzimmer.8p2e 9:11
       hc_HomematicWohnzimmer.dayTemp 8:6
       hc_HomematicWohnzimmer.nightTemp 9:6
     recalc:




       ARRAY(0x3bc5990)



       ARRAY(0x3a8acc8)
     Valuecolumns:
       Heizung    colspan="2"
       Montag-Freitag colspan="2"
       Samstag    colspan="2"
       Sonntag    colspan="2"
       Status     colspan="2"
       Temperatur colspan="4"
       alias      colspan="2"
     Valueicon:
       btnLock.off secur_open@red
       btnLock.off  secur_open@red
       btnLock.on secur_locked@green
       btnLock.on  secur_locked@green
       btnLock.set_off secur_open@orange
       btnLock.set_off  secur_open@orange
       btnLock.set_on secur_locked@orange
       btnLock.set_on  secur_locked@orange
       controlMode.auto sani_heating_automatic@green
       controlMode.manual sani_heating_manual@red
       controlMode.set_auto sani_heating_automatic@orange
       controlMode.set_manual sani_heating_manual@orange
       system_fhem_update system_fhem_update
     Values:
       formated:

         ARRAY(0x38e6d50)
         ARRAY(0x3642998)

         ARRAY(0x36423e0)

         ARRAY(0x38e78d8)
         ARRAY(0x36431e0)
         ARRAY(0x38e72d8)

         ARRAY(0x3465418)
         ARRAY(0xcca2e0)
         ARRAY(0x3464dc8)
         ARRAY(0x3643348)
         ARRAY(0x367b768)
         ARRAY(0x3a8a830)
         ARRAY(0x3642770)
       orig:

         ARRAY(0x38f2070)
         ARRAY(0x367b420)

         ARRAY(0x38eade0)

         ARRAY(0x367b390)
         ARRAY(0x36438b8)
         ARRAY(0x1373e68)

         ARRAY(0x36430f0)
         ARRAY(0x3643e10)
         ARRAY(0x3521c18)
         ARRAY(0x36346f0)
         ARRAY(0x3643b10)
         ARRAY(0x38eacd8)
         ARRAY(0x3a8aae8)
       prefixsuffix:

         ARRAY(0x3a8aa10)
         ARRAY(0x3ab0dc8)

         ARRAY(0x391cb68)

         ARRAY(0x38eae88)
         ARRAY(0x38e72a8)
         ARRAY(0x3642bf0)

         ARRAY(0x1360068)
         ARRAY(0x38ead38)
         ARRAY(0x38e7698)
         ARRAY(0x3643918)
         ARRAY(0x3465f70)
         ARRAY(0x391cbc8)
         ARRAY(0x3469fd0)
Attributes:
   alias      Übersicht Heizkörper
   commands   {'desired-temp' => 'desired-temp:', 'dayTemp' => 'dayTemp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg $DEVICE btnLock', '8p1b' => '8p1b:', '8p1e' => '8p1e:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'nightTemp' => 'nightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
   nameStyle  {($READING eq "Temperatur"|| $READING eq "Status"|| $READING eq "Montag-Freitag"|| $READING eq "Samstag"|| $READING eq "Sonntag"|| $READING eq "system_fhem_update")?'style="text-align:center"':'style=""'}
   nonames    1
   room       Homematic
   sortDevices 1
   valueColumns {'Heizung' => 'colspan="2"', 'alias' => 'colspan="2"', 'Temperatur' => 'colspan="4"', 'Status' => 'colspan="2"', 'Montag-Freitag' => 'colspan="2"', 'Samstag' => 'colspan="2"', 'Sonntag' => 'colspan="2"'}
   valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>".readingsGroup($DEVICE,"alias")."</a>"}', 'btnLock' => '{ReadingsVal(readingsGroup($DEVICE,"device"),".R-".AttrVal("default_hc","lockMode","btnLock"),"off")}', 'measured-temp' => "%0.1f °C", 'ValvePosition' => "%0.1f %%"}
   valueIcon  {'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'btnLock.on' => 'secur_locked@green', 'btnLock.on ' => 'secur_locked@green', 'btnLock.set_on' => 'secur_locked@orange', 'btnLock.set_on ' => 'secur_locked@orange', 'btnLock.off' => 'secur_open@red', 'btnLock.off ' => 'secur_open@red', 'btnLock.set_off' => 'secur_open@orange', 'btnLock.set_off ' => 'secur_open@orange', 'system_fhem_update' => 'system_fhem_update'}
   visibility collapsible



Edit: Es scheint am Update des ReadingsGroup Moduls zu liegen. Mit einem älteren Backup sieht wieder alles normal aus.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: justme1968 am 05 Oktober 2016, 15:39:54
setz mal nonames auf 1. ist es dann besser?

wie sollte es aussehen?

gruss
  andre
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: gloob am 05 Oktober 2016, 15:45:27
nonames auf 1 bringt keine Veränderung.

So sah es vor dem Update aus:

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: justme1968 am 05 Oktober 2016, 18:42:26
zusätzlich musst du noch die <> vor <Heizung> und !alias weg machen.

der grund ist das die readingsGroup bis jetzt fehlerhafter weise eine leere spalte am anfang gezeigt hat wenn sie im multi reading mode war. das musste ich für das gruppieren von readings aus bauen.

ich habe gerade keine idee wie das rückwärts kompatibel möglich ist.

gruss
  andre
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: gloob am 05 Oktober 2016, 19:03:40
Vielen Dank für die Hilfe. Damit funktioniert es jetzt wieder richtig und sieht auch gut aus.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Jojo11 am 06 Oktober 2016, 19:58:51
Hallo,

vielen Dank für den Hinweis. Bei mir wird es nun auch wieder richtig angezeigt,
Allerdings habe ich seit ca. Mai nicht mehr rein geschaut. Jetzt zeigen die pulldown-Menüs nichts mehr an (außer jeweils die aktuelle Soll-Temperatur).
Gibt es eine Möglichkeit, die Daten wieder herzustellen?

schöne Grüße
Jo
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: ChHerrm am 11 Januar 2017, 22:07:46
Hallo! Ich habe mich in den letzten Tagen sehr stark mit der Einbindung des Thermostats per CCU2 in FHEM beschäftigt und auch schon in anderen Themen meine Frage gestellt. Inzwischen bin ich ganz gut vorangekommen, nur an einem Problem komme ich noch immer nicht weiter.
In einer Readingsgroup lese ich alles mögliche aus den Thermostaten aus. Mein Minimalbeispiel der readinggroup ist folgendes, es dreht sich nur um "Soll neu" bzw. darum die Temperatur zu setzen:

DEF:

<%sani_heating@D4BA90>,<Soll>,<Soll neu>,<Ist>,<Ventil>,<Modus>,<Batterie>,<Boost>,<Auto>,<Manu>,<An>,<Aus>
HM_HM_CC_RT_DN_NEQ1011241:4.SET_TEMPERATURE,<sollsetz>,4.ACTUAL_TEMPERATURE,4.VALVE_STATE,4.CONTROL_MODE,4.BATTERY_STATE,<%sani_heating_boost>,<%sani_heating_automatic>,<%sani_heating_manual>,<%general_an>,<%general_aus>


commands:

{'HeizungRg.sollsetz' => 'desired-temp:17.0,18.0,19.0,20.0,21.0,22.0,23.0',"HeizungRg.sani_heating_boost"=>"set %DEVICE Boost","HeizungRg.sani_heating_automatic"=>"set %DEVICE Auto","HeizungRg.sani_heating_manual"=>"set %DEVICE Manu","HeizungRg.general_an"=>"set %DEVICE on","HeizungRg.general_aus"=>"set %DEVICE off"}


eventmap:

/set %DEVICE datapoint 4.SET_TEMPERATURE desired-temp/datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost


Auf die Art und Weise funktioniert alles, ausser dem Setzen der Temperatur. Und ich habe überhaupt keine Ideen mehr, wie ich das sonst machen kann:-/ Ein command wie 'HeizungRg.sollsetz' => 'set %DEVICE datapoint 4.SET_TEMPERATURE 20.0'. Wie erreiche ich das aber mit einer dropdown list, anstelle eines festen Wertes? Die vielfach gefundenen Beispiele mit desired-temp funktionieren bei mir nicht, desired-temp kennt mein HM-CC-RT-DN scheinbar nicht.
Für Denkanstöße und Hinweise in jede Richtung wäre ich sehr dankbar;)
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: ChHerrm am 12 Januar 2017, 18:49:12
Inzwischen habe ich meine Probleme mit dem Thermostat endlich alle gelöst. Für Interessenten, die ggf. mal vor dem selben Problem stehen, hier nochmal meine fertige Lösung auf die ich nun nach vielen Stunden und Versuchen gekommen bin. Im Anhang ein Bild der fertigen readingsgroup.


# Homematic-Konfiguration

define HMLAN1 HMCCU 192.168.0.21
attr HMLAN1 rpcport 2001,9292
attr HMLAN1 rpcserver on
attr HMLAN1 stateFormat rpcstate/state
#attr HMLAN1 rpcinterval 5

#set HMLAN1 rpcserver on


# Schlafzimmer-Thermostat
define HM_HM_CC_RT_DN_NEQ1005861 HMCCUDEV NEQ1005861
attr HM_HM_CC_RT_DN_NEQ1005861 IODev HMLAN1
attr HM_HM_CC_RT_DN_NEQ1005861 alias Schlafzimmer
attr HM_HM_CC_RT_DN_NEQ1005861 ccureadingfilter (^UNREACH|LOWBAT|TEMPERATURE|VALVE_STATE|CONTROL|BATTERY_STATE)
attr HM_HM_CC_RT_DN_NEQ1005861 ccureadingformat datapoint
attr HM_HM_CC_RT_DN_NEQ1005861 cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HM_HM_CC_RT_DN_NEQ1005861 controldatapoint 4.SET_TEMPERATURE
attr HM_HM_CC_RT_DN_NEQ1005861 event-on-change-reading .*
attr HM_HM_CC_RT_DN_NEQ1005861 eventMap /datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/
attr HM_HM_CC_RT_DN_NEQ1005861 stateFormat Temperatur: 4.ACTUAL_TEMPERATURE°C\
Batterie: 4.BATTERY_STATE[V]\
Ventil: 4.VALVE_STATE%
attr HM_HM_CC_RT_DN_NEQ1005861 statedatapoint 4.SET_TEMPERATURE
attr HM_HM_CC_RT_DN_NEQ1005861 stripnumber 1
attr HM_HM_CC_RT_DN_NEQ1005861 substexcl control
attr HM_HM_CC_RT_DN_NEQ1005861 substitute UNREACH,LOWBAT!(0|false):no,(1|true):yes;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;SET_TEMPERATURE!#0-3.5:off,#30.5-40:on
attr HM_HM_CC_RT_DN_NEQ1005861 webCmd control:Auto:Manu:Boost:on:off
attr HM_HM_CC_RT_DN_NEQ1005861 widgetOverride control:5.0,17.0,20.0,21.0,22.0

# Readinggroup der Werte
define HeizungRg readingsGroup <%sani_heating@D4BA90>,<Soll>,<Vorgabewert>,<Ist>,<Ventil>,<Modus>,<Batterie>,<Boost>,<Auto>,<Manu>,<An>,<Aus>\
HM_HM_CC_RT_DN_NEQ1011241:4.SET_TEMPERATURE,<sollsetz>,4.ACTUAL_TEMPERATURE,4.VALVE_STATE,4.CONTROL_MODE,4.BATTERY_STATE,<%sani_heating_boost>,<%sani_heating_automatic>,<%sani_heating_manual>,<%general_an>,<%general_aus>\
HM_HM_CC_RT_DN_NEQ1005861:4.SET_TEMPERATURE,<sollsetz>,4.ACTUAL_TEMPERATURE,4.VALVE_STATE,4.CONTROL_MODE,4.BATTERY_STATE,<%sani_heating_boost>,<%sani_heating_automatic>,<%sani_heating_manual>,<%general_an>,<%general_aus>\
HM_HM_CC_RT_DN_NEQ1011150:4.SET_TEMPERATURE,<sollsetz>,4.ACTUAL_TEMPERATURE,4.VALVE_STATE,4.CONTROL_MODE,4.BATTERY_STATE,<%sani_heating_boost>,<%sani_heating_automatic>,<%sani_heating_manual>,<%general_an>,<%general_aus>\
HM_HM_CC_RT_DN_NEQ1011157:4.SET_TEMPERATURE,<sollsetz>,4.ACTUAL_TEMPERATURE,4.VALVE_STATE,4.CONTROL_MODE,4.BATTERY_STATE,<%sani_heating_boost>,<%sani_heating_automatic>,<%sani_heating_manual>,<%general_an>,<%general_aus>
attr HeizungRg alias Heizungsübersicht
attr HeizungRg commands {'HeizungRg.sollsetz' => 'control:17.0,18.0,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,24.0,25.0',"HeizungRg.sani_heating_boost"=>"set %DEVICE Boost","HeizungRg.sani_heating_automatic"=>"set %DEVICE Auto","HeizungRg.sani_heating_manual"=>"set %DEVICE Manu","HeizungRg.general_an"=>"set %DEVICE on","HeizungRg.general_aus"=>"set %DEVICE off"}
attr HeizungRg eventMap /datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost
attr HeizungRg group Raumklima
attr HeizungRg nameStyle style="color:white;;font-weight:bold"
attr HeizungRg room Wohnzimmer
attr HeizungRg sortDevices 1
attr HeizungRg valueFormat {if(($READING eq "4.ACTUAL_TEMPERATURE")or( $READING eq "4.SET_TEMPERATURE") ){ "$VALUE °C"}elsif(($READING eq "4.VALVE_STATE")){"$VALUE %"}}
attr HeizungRg valueIcon {if($READING eq "4.BATTERY_STATE" && $VALUE > 3.0){'measure_battery_100@green'}elsif($READING eq "4.BATTERY_STATE" && $VALUE > 2.8){'measure_battery_75@lightgreen'}elsif($READING eq "4.BATTERY_STATE" && $VALUE > 2.6){'measure_battery_50@yellow'}elsif($READING eq "4.BATTERY_STATE" && $VALUE >= 2.3){'measure_battery_25@orange'}elsif($READING eq "4.BATTERY_STATE" && $VALUE <= 2.2){'measure_battery_0@red'}elsif($READING eq "4.CONTROL_MODE" && $VALUE eq "AUTO"){'sani_heating_automatic@yellow'}elsif($READING eq "4.CONTROL_MODE" && $VALUE eq "MANU"){'sani_heating_manual@yellow'}elsif($READING eq "4.CONTROL_MODE" && $VALUE eq "BOOST"){'sani_heating_boost@red'}}
attr HeizungRg valueStyle {if($READING eq "4.VALVE_STATE" && $VALUE < 10){ 'style="color:blue;;;;font-weight:bold"'}elsif($READING eq "4.VALVE_STATE" && $VALUE >= 80){ 'style="color:red;;;;font-weight:bold"'}elsif($READING eq "4.ACTUAL_TEMPERATURE" && $VALUE < 19){ 'style="color:blue;;;;font-weight:bold"'}elsif($READING eq "4.ACTUAL_TEMPERATURE" && $VALUE >= 22){ 'style="color:red;;;;font-weight:bold"'}elsif($READING eq "4.SET_TEMPERATURE" && $VALUE < 19){ 'style="color:blue;;;;font-weight:bold"'}elsif($READING eq "4.SET_TEMPERATURE" && $VALUE >= 22){ 'style="color:red;;;;font-weight:bold"'}}
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: MrMaxy am 02 März 2017, 13:27:46
Hallo und vielen Dank für diese tolle readings group. :-)

ich habe sie insoweit abgeändert, dass ich darüber meine Homematic Thermostate vom Typ HM-TC-IT-WM-W-EU auslesen kann. Diese steuern dann wiederum einige Homematic Heizungssregler.
Mein Problem besteht darin, dass ich den btnLock nicht steuern kann. Auch iste es nicht möglich, die eingestellten Werte per burstXmit zu übertragen.
Was mich aber am Meisten irritiert, ist die Tatsache, dass das STATE vom default_hc Dummy, sowie der jeweilige Dummy der einzelnen Devices immer '???' anzeigt.

Ich habe allerdings gesehen, dass das so ziemlich alle Dummies in meinem System betrifft.
Es könnte sich hierbei also auch um ein globales Problem handeln.

Kann mir eventuell jemand behilflich sein und mir beim Suchen nach der Ursache einen Tipp geben?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: FHEM_Starter am 14 Mai 2017, 15:49:12
Liebe Mitstreiter,

als Anfänger stehe ich vor einem (für mich) unlösbaren Problem. Ich habe versucht, das Wochenprofil laut Wiki Eintrag https://wiki.fhem.de/wiki/ReadingsGroup#Heizungswerte.2C_Status.2C_Steuerung_und_Wochenprofil (https://wiki.fhem.de/wiki/ReadingsGroup#Heizungswerte.2C_Status.2C_Steuerung_und_Wochenprofil)zu erstellen.
Dort gibt es unter der Überschrift "Heizungswerte, Status, Steuerung und Wochenprofil" eine Anleitung für meine Thermostate.

Kann es sein, dass diese Anleitung nicht mehr aktuell ist? Und wenn ja, was muss geändert werden, damit auch Anfänger dieses nachbauen können?

Danke im voraus,
Wolfgang
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: KernSani am 14 Mai 2017, 16:06:15
Vielleicht beschreibst du mal, wo deine Probleme liegen und was nicht funktioniert...
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 14 Mai 2017, 20:58:35
Zitat von: FHEM_Starter am 14 Mai 2017, 15:49:12
Kann es sein, dass diese Anleitung nicht mehr aktuell ist? Und wenn ja, was muss geändert werden, damit auch Anfänger dieses nachbauen können?
Ja, die Anleitung ist wirklich nicht mehr aktuell. Ich verde versuchen sie diesen Monat noch zu überarbeiten.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: gloob am 10 August 2017, 11:54:34
Gibt es hier ein aktualisierte Version, die ohne Probleme funktioniert?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: igami am 11 August 2017, 19:50:00
Zitat von: gloob am 10 August 2017, 11:54:34
Gibt es hier ein aktualisierte Version, die ohne Probleme funktioniert?
Leider nein, müsste echt mal eine zusammenbauen ::)
Was ist denn gewollt? Eine für alle Thermostate oder für jeden Raum eine separate?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 02 November 2017, 00:26:05
Zitat von: igami am 11 August 2017, 19:50:00
Leider nein, müsste echt mal eine zusammenbauen ::)
Was ist denn gewollt? Eine für alle Thermostate oder für jeden Raum eine separate?
Wenn keiner was sagt, wünsche ich mir mal was [emoji1]
Eine für alle Thermostate.

Gruß
Jan

Gesendet von meinem Wileyfox Swift mit Tapatalk

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 04 Januar 2018, 11:10:48
Hallo zusammen,
ich probiere gerade die Reading Group "neu" zu erstellen.
Ich teste das gerade mit einem ARCHETYPE welche dann die Dropdown-Listen & Co an die Thermostate vererben soll.
Da die Listen aber ziemlich groß und lang sind, wäre meine Frage ob man das irgendwie verhindern kann, das die Devices so in die breite gezogen werden.
Siehe Bild

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: martinp876 am 04 Januar 2018, 17:08:40
Ich nutze für die RTs keine reading group sondern einfach einfach die dei room Darstellung. Ist alles drn, was ich brauche - und sonst brauche ich auch nichts.
Ich habe meine Temperaturprofile in HMinfo definiert. Und nun kann ich sie anwenden.
Ich sehe den aktuellen Zustand, kann die Temperatur regeln oder ein Profil aktivieren.
dazu ist nur das Attribut
webCmd  desired-temp:controlMode:tempTmplSet
zu setzen. was braucht man mehr zur Kontrolle?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 07 Januar 2018, 11:15:58
Das mit den Temperatur-Listen, hatte ich so gar nicht mehr auf dem Schirm.
Da ich es ein wenig bunter schöner finde, habe ich mir mal was zusammen kopiert und die Listen mit integriert 8)

Das setzen der Listen geht aber nur mit einem restore im HMinfo, korrekt?
Wo kommt denn der defaultWeekplan her?

Dann noch eine Frage:
In der ReadingGroup von Igami, wird, wenn ich es richtig verstehe, über
R-globalBtnLock@{rg($DEVICE."§device")}
von dem xxx_clima Channel über das Internal 'device' auf das "Haupt-device" zugegriffen, wo ich dann das reading 'R-globalBtnLock' finde. Das klappt bei mir aber so nicht.
Gibt es da noch andere möglichkeiten?
Ich habe es bei mir jetzt mit dem Hauptdevice definiert und bastel dann hinten ein _Clima dran wenn es benötigt wird, aber andersherum würde es mich auch mal interssieren.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: martinp876 am 07 Januar 2018, 20:01:09
Beim Systemstart sollten die Listen erst einmal geladen werden.
Beim Ausführen werden die Listen immer neu geladen.

defaultWeekplan siehe Commandref "Climate-Control (HM-CC-RT-DN|HM-CC-RT-DN-BoM)"

Wenn ich eine neue Liste im Dropdown eintrage wird dei Liste übertragen (wie immer... es werden alle Unerschiede zwischen den neuen Werten und den in FHEM gelesenen übertragen). Zum Welchsel der Liste musst du also nicht nach HMInfo gehen, einfach ändern. Klappt bei mir eigentlich problemlos, ich ändere alle wochen einmal einen RT...

globalBtnLock ist im Device eingebaut, nicht im Kanal.

Auch bei den RTs nutze ich templates. da kann man sich dann auch den Button-Lock als parameter definieren.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 10 Januar 2018, 10:23:44
Im wiki stand halt immer ein restore am Ende der Beispiele.

Ich habe die Reading Gruppe so definiert:
<%sani_heating>,<Ist>,<Soll>,<Ventil>,<Modus>,<Lock>,<Bat>,<Plan>
......RT:measured-temp,desired-temp@{("$DEVICE"."_Clima")},ValvePosition@{("$DEVICE"."_Clima")},controlMode@{("$DEVICE"."_Clima")},R-btnLock@{($DEVICE)},batteryLevel@{($DEVICE)},?tempListTmpl@{("$DEVICE"."_Clima")}, <Test>

Damit ich an die Readings vom Clima-Channel komme, bastel ich das _Clima an das Device dran.
Hier ist das $DEVICE ja, das Device.
Wenn ich es so definieren würde:
<%sani_heating>,<Ist>,<Soll>,<Ventil>,<Modus>,<Lock>,<Bat>,<Plan>
......RT_Clima:measured-temp,desired-temp@{($DEVICE)},ValvePosition@{.....

Ist das $DEVICE der Clima-Channel oder? Wie kann ich jetzt auf das Device zugreifen und nicht auf den Channel?
Verstanden?  ;D :o


Nebenbei
Das Wiki und die commandref passen auch nicht so überein...
ZitatGibt eine Liste mit Temperaturintervallen an. Bis zu 24 Intervall können pro Wochentag definiert werden, die Auflösung dabei sind 10 Minuten. Die letzte Zeitangabe muss immer 24:00 Uhr sein.
ZitatUhrzeiten sind auf halbe Stunden beschränkt. Einträge 08:00 und 08:30 sind gültig. 08:20 ist ungültig.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 10 Januar 2018, 21:14:42
Zitat von: budda85 am 10 Januar 2018, 10:23:44
<%sani_heating>,<Ist>,<Soll>,<Ventil>,<Modus>,<Lock>,<Bat>,<Plan>
......RT:measured-temp,desired-temp@{("$DEVICE"."_Clima")},ValvePosition@{("$DEVICE"."_Clima")},controlMode@{("$DEVICE"."_Clima")},R-btnLock@{($DEVICE)},batteryLevel@{($DEVICE)},?tempListTmpl@{("$DEVICE"."_Clima")}, <Test>

Damit ich an die Readings vom Clima-Channel komme, bastel ich das _Clima an das Device dran.
Hier ist das $DEVICE ja, das Device.
Wenn ich es so definieren würde:
<%sani_heating>,<Ist>,<Soll>,<Ventil>,<Modus>,<Lock>,<Bat>,<Plan>
......RT_Clima:measured-temp,desired-temp@{($DEVICE)},ValvePosition@{.....

Ist das $DEVICE der Clima-Channel oder? Wie kann ich jetzt auf das Device zugreifen und nicht auf den Channel?
Verstanden?  ;D :o


Du tust dich wahrscheinlich leichter, wenn du die *_Clima durchgehst und nur die wenigen Werte vom "Mutter"-Device holst. Dein 2. Codebeispielt. Im Prinzip aber egal. $Device ist das Gerät das gerade bearbeitet wird. Nicht der Clima sondern das darüber. Darum hängst du mit _Clima noch einen Suffix dran, kannst du als Textverkettung sehen.
-> Deine RG bearbeitet Heizung, das steht in $Device. Durch die Verkettung wird an "Heizung" + "_Clima" zu Channel "Heizung_Clima" wo die Felder dann gefunden werden. Mit dem Doppelpunkt dahinter sprichst du die Readings an.

Beispiel wie es bei mir aussieht ...

<%hc_wht_regler>,<Ist>,<Soll>,<Ventil>,<Batterie>,<cmd Status> .*_Clima:measured-temp,desired-temp,ValvePosition,batteryLevel@{$DEVICE}
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 10 Januar 2018, 21:40:36
Das funktioniert bei mir leider nicht.
<%sani_heating>,<Ist>,<Soll>,<Ventil>,<Modus>,<Lock>,<Bat>,<Plan> 
.*RT_Clima:measured-temp,desired-temp,ValvePosition,controlMode,R-btnLock@{$DEVICE},batteryLevel@{$DEVICE},?tempListTmpl
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 10 Januar 2018, 22:22:56
nimm mal das RT aus. .... .*_Clima statt .*RT_Clima
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 10 Januar 2018, 22:39:11
Nein geht auch nicht.
Habe schon jede Menge an kombinationen durch
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 10 Januar 2018, 22:49:21
es geht um ein HM Heizkörperthermostat oder? Mach mal von einem Thermostat _Clima-Channel und der rg ein List und häng es an.

z. B. list rg_HM_Readings ... bei mir funktioniert das schon ewig

SChau mal im Log, hast du da Meldungen zur RG?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 11 Januar 2018, 21:44:03
Hier das List von der Readinggroup
Internals:
   DEF        <%sani_heating>,<Ist>,<Soll>,<Ventil>,<Modus>,<Lock>,<Bat>,<Plan> 
.*RT_Clima:measured-temp,desired-temp,ValvePosition,controlMode,R-btnLock@{$DEVICE},batteryLevel@{$DEVICE},?tempListTmpl
   NAME       heatingInfo
   NR         204
   NTFY_ORDER 50-heatingInfo
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   CONTENT:
     EG.bd.RT_Clima 1
     EG.bu.RT_Clima 1
     EG.fl.RT_Clima 1
     EG.ku.RT_Clima 1
     EG.sz.RT_Clima 1
     EG.wz.RT_Clima 1
   CONTENT2:
     EG.bd.RT_Clima 1
     EG.bu.RT_Clima 1
     EG.fl.RT_Clima 1
     EG.ku.RT_Clima 1
     EG.sz.RT_Clima 1
     EG.wz.RT_Clima 1
   DEVICES:
     ARRAY(0x6883f70)
     ARRAY(0x664f248)
     ARRAY(0x68688f8)
     ARRAY(0x639d800)
     ARRAY(0x6a98a20)
     ARRAY(0x6842dd0)
     ARRAY(0x6a2efc8)
   DEVICES2:
     ARRAY(0x6883f70)
     ARRAY(0x664f248)
     ARRAY(0x68688f8)
     ARRAY(0x639d800)
     ARRAY(0x6a98a20)
     ARRAY(0x6842dd0)
     ARRAY(0x6a2efc8)
     ARRAY(0x6a5a2b8)
     ARRAY(0x6a33300)
     ARRAY(0x639ce70)
     ARRAY(0x66331a8)
     ARRAY(0x68abb80)
     ARRAY(0x6823818)
     ARRAY(0x6aa19a8)
     ARRAY(0x639a030)
     ARRAY(0x63a9a08)
     ARRAY(0x6870248)
     ARRAY(0x63a8978)
     ARRAY(0x6815b00)
   fhem:
     lastDefChange 13
     last_update 1515702236.2107
   helper:
     DEF       
     valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}
elsif($READING eq "batteryLevel"){if($VALUE>=3){$VALUE=100}
elsif($VALUE>=2.7){$VALUE=75}elsif($VALUE>=2.5){$VALUE=50}elsif($VALUE>=2.2){$VALUE=25}
else{$VALUE=0}}}
     valueStyle {if($READING eq "measured-temp")
{my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;
if($t-$d>=1){'style="color:rgb(251,63,11);;"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'}
else{'style="color:rgb(12,251,12);;"'}}}
     valueSuffix {"desired-temp"=>" °C", "measured-temp"=>" °C",
"ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",
"humidity"=>" ".ReadingsVal($DEVICE,$READING,0)." % RH",
"batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"}
     commands:
       R-btnLock.off set %DEVICE regSet btnLock on
       R-btnLock.on set %DEVICE regSet btnLock off
       controlMode.auto set %DEVICE controlMode manual
       controlMode.manual set %DEVICE controlMode auto
       desired-temp desired-temp:
       tempListTmpl tempListTmpl:
     positions:
       EG.bd.RT_Clima.ValvePosition 2:3
       EG.bd.RT_Clima.controlMode 2:4
       EG.bd.RT_Clima.desired-temp 2:2
       EG.bd.RT_Clima.measured-temp 2:1
       EG.bd.RT_Clima.tempListTmpl 2:5
       EG.bu.RT_Clima.ValvePosition 3:3
       EG.bu.RT_Clima.controlMode 3:4
       EG.bu.RT_Clima.desired-temp 3:2
       EG.bu.RT_Clima.measured-temp 3:1
       EG.bu.RT_Clima.tempListTmpl 3:5
       EG.fl.RT_Clima.ValvePosition 4:3
       EG.fl.RT_Clima.controlMode 4:4
       EG.fl.RT_Clima.desired-temp 4:2
       EG.fl.RT_Clima.measured-temp 4:1
       EG.fl.RT_Clima.tempListTmpl 4:5
       EG.ku.RT_Clima.ValvePosition 5:3
       EG.ku.RT_Clima.controlMode 5:4
       EG.ku.RT_Clima.desired-temp 5:2
       EG.ku.RT_Clima.measured-temp 5:1
       EG.ku.RT_Clima.tempListTmpl 5:5
       EG.sz.RT_Clima.ValvePosition 6:3
       EG.sz.RT_Clima.controlMode 6:4
       EG.sz.RT_Clima.desired-temp 6:2
       EG.sz.RT_Clima.measured-temp 6:1
       EG.sz.RT_Clima.tempListTmpl 6:5
       EG.wz.RT_Clima.ValvePosition 7:3
       EG.wz.RT_Clima.controlMode 7:4
       EG.wz.RT_Clima.desired-temp 7:2
       EG.wz.RT_Clima.measured-temp 7:1
       EG.wz.RT_Clima.tempListTmpl 7:5
     recalc:
       undef
       ARRAY(0x6885bb8)
     valueIcon:
       R-btnLock.off secur_open@0CFB0C
       R-btnLock.on secur_locked@F7301D
       R-btnLock.set_off hourglass
       R-btnLock.set_on hourglass
       ValvePosition.0 sani_heating_level_0@002AE0
       ValvePosition.10 sani_heating_level_10@F8D53D
       ValvePosition.100 sani_heating_level_100@E50005
       ValvePosition.20 sani_heating_level_20@FF9341
       ValvePosition.30 sani_heating_level_30@F17F3F
       ValvePosition.40 sani_heating_level_40@E46C3C
       ValvePosition.50 sani_heating_level_50@DE3B3A
       ValvePosition.60 sani_heating_level_60@A30D2D
       ValvePosition.70 sani_heating_level_70@B40A23
       ValvePosition.80 sani_heating_level_80@C40619
       ValvePosition.90 sani_heating_level_90@D4030F
       batteryLevel.0 measure_battery_0@E50005
       batteryLevel.100 measure_battery_100@0CFB0C
       batteryLevel.25 measure_battery_25@FB5909
       batteryLevel.50 measure_battery_50@F5FF10
       batteryLevel.75 measure_battery_75@42BC0A
       controlMode.auto sani_heating_automatic@FFC13A
       controlMode.boost sani_heating_boost@FB0C02
       controlMode.manual sani_heating_manual@795CFF
       controlMode.set_auto hourglass
       controlMode.set_boost hourglass
       controlMode.set_manual hourglass
       humidity   humidity@6FD9FB
     values:
       formated:
         undef
         ARRAY(0x6a64f40)
         ARRAY(0x6a1cd18)
         ARRAY(0x687b3a0)
         ARRAY(0x6855988)
         ARRAY(0x63ae938)
       orig:
         undef
         ARRAY(0x6933670)
         ARRAY(0x69334a8)
         ARRAY(0x63af310)
         ARRAY(0x61cffb0)
         ARRAY(0x6a35348)
       prefixsuffix:
         undef
         ARRAY(0x680c378)
         ARRAY(0x681e798)
         ARRAY(0x6643770)
         ARRAY(0x6a48490)
         ARRAY(0x6a20c40)
Attributes:
   commands   { 'desired-temp' => 'desired-temp:', 'tempListTmpl' => 'tempListTmpl:',
"controlMode.manual"=>"set %DEVICE controlMode auto","controlMode.auto"=>"set %DEVICE controlMode manual",
"R-btnLock.on"=>"set %DEVICE regSet btnLock off",
"R-btnLock.off"=>"set %DEVICE regSet btnLock on"}
   room       Temperaturen
   valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}
elsif($READING eq "batteryLevel"){if($VALUE>=3){$VALUE=100}
elsif($VALUE>=2.7){$VALUE=75}elsif($VALUE>=2.5){$VALUE=50}elsif($VALUE>=2.2){$VALUE=25}
else{$VALUE=0}}}
   valueIcon  {'controlMode.manual' => 'sani_heating_manual@795CFF',
'controlMode.auto' => 'sani_heating_automatic@FFC13A', 'controlMode.boost' => 'sani_heating_boost@FB0C02',
'humidity'=>'humidity@6FD9FB', 'R-btnLock.on'=>'secur_locked@F7301D',
'R-btnLock.off'=>'secur_open@0CFB0C','ValvePosition.0' => 'sani_heating_level_0@002AE0',
'ValvePosition.10' => 'sani_heating_level_10@F8D53D','ValvePosition.20' => 'sani_heating_level_20@FF9341',
'ValvePosition.30' => 'sani_heating_level_30@F17F3F','ValvePosition.40' => 'sani_heating_level_40@E46C3C',
'ValvePosition.50' => 'sani_heating_level_50@DE3B3A','ValvePosition.60' => 'sani_heating_level_60@A30D2D',
'ValvePosition.70' => 'sani_heating_level_70@B40A23','ValvePosition.80' => 'sani_heating_level_80@C40619',
'ValvePosition.90' => 'sani_heating_level_90@D4030F','ValvePosition.100' => 'sani_heating_level_100@E50005',
'batteryLevel.100'=>'measure_battery_100@0CFB0C','batteryLevel.75'=>'measure_battery_75@42BC0A',
'batteryLevel.50'=>'measure_battery_50@F5FF10','batteryLevel.25'=>'measure_battery_25@FB5909',
'batteryLevel.0'=>'measure_battery_0@E50005','controlMode.set_boost' => 'hourglass',
'controlMode.set_auto' => 'hourglass','controlMode.set_manual' => 'hourglass',
'R-btnLock.set_on' => 'hourglass','R-btnLock.set_off' => 'hourglass'}
   valueStyle {if($READING eq "measured-temp")
{my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;
if($t-$d>=1){'style="color:rgb(251,63,11);;"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'}
else{'style="color:rgb(12,251,12);;"'}}}
   valueSuffix {"desired-temp"=>" °C", "measured-temp"=>" °C",
"ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",
"humidity"=>" ".ReadingsVal($DEVICE,$READING,0)." % RH",
"batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"}


List vom Clima-Channel:
Internals:
   DEF        3CF4C204
   NAME       EG.bd.RT_Clima
   NOTIFYDEV  global
   NR         50
   NTFY_ORDER 50-EG.bd.RT_Clima
   STATE      T: 22.5 desired: 21.0 valve: 22
   TYPE       CUL_HM
   chanNo     04
   device     EG.bd.RT
   READINGS:
     2017-03-16 07:27:16   CommandAccepted yes
     2017-01-31 09:16:27   R-boostPeriod   5 min
     2017-01-31 09:16:27   R-boostPos      80 %
     2017-01-31 09:16:27   R-btnNoBckLight off
     2017-01-31 09:16:27   R-dayTemp       21 C
     2017-01-31 09:16:27   R-daylightSaveTime on
     2017-01-31 09:16:27   R-decalcTime    11:00
     2017-01-31 09:16:27   R-decalcWeekday Sat
     2017-01-31 09:16:27   R-modePrioManu  all
     2017-01-31 09:16:27   R-modePrioParty all
     2017-01-31 09:16:27   R-nightTemp     17 C
     2017-01-31 09:16:27   R-noMinMax4Manu off
     2017-01-31 09:16:27   R-regAdaptive   on
     2017-01-31 09:16:27   R-reguExtI      15
     2017-01-31 09:16:27   R-reguExtP      30
     2017-01-31 09:16:27   R-reguExtPstart 30
     2017-01-31 09:16:27   R-reguIntI      18
     2017-01-31 09:16:27   R-reguIntP      33
     2017-12-30 14:24:43   R-reguIntPstart 45
     2017-01-31 09:16:27   R-showInfo      time
     2017-01-31 09:16:27   R-showWeekday   off
     2017-01-31 09:16:23   R-sign          off
     2017-01-31 09:16:27   R-tempMax       30.5 C
     2017-01-31 09:16:27   R-tempMin       4.5 C
     2017-01-31 09:16:27   R-tempOffset    0.0K
     2017-01-31 09:16:27   R-valveErrPos   15 %
     2017-01-31 09:16:27   R-valveMaxPos   100 %
     2017-01-31 09:16:27   R-valveOffsetRt 0 %
     2017-01-31 09:16:27   R-winOpnBoost   off
     2017-01-31 09:16:27   R-winOpnDetFall 1.4 K
     2017-01-31 09:16:27   R-winOpnMode    off
     2017-01-31 09:16:27   R-winOpnPeriod  15 min
     2017-01-31 09:16:27   R-winOpnTemp    12 C
     2018-01-07 15:16:08   R_0_tempListSat 07:00 18.5 10:00 22.0 18:00 20.0 22:30 21.0 24:00 18.5
     2018-01-07 15:16:08   R_1_tempListSun 07:00 18.5 10:00 22.0 18:00 20.0 22:30 21.0 24:00 18.5
     2018-01-07 15:16:08   R_2_tempListMon 04:30 18.5 08:30 22.0 18:00 20.0 22:00 21.0 24:00 18.5
     2018-01-07 15:16:08   R_3_tempListTue 04:30 18.5 08:30 22.0 18:00 20.0 22:00 21.0 24:00 18.5
     2018-01-07 15:16:08   R_4_tempListWed 04:30 18.5 08:30 22.0 18:00 20.0 22:00 21.0 24:00 18.5
     2018-01-07 15:16:08   R_5_tempListThu 04:30 18.5 08:30 22.0 18:00 20.0 22:00 21.0 24:00 18.5
     2018-01-07 15:16:08   R_6_tempListFri 04:30 18.5 08:30 22.0 18:00 20.0 22:00 21.0 24:00 18.5
     2018-01-07 15:16:08   R_tempList_State verified
     2018-01-11 21:40:50   ValvePosition   22
     2018-01-11 21:40:50   boostTime       -
     2018-01-11 21:40:50   controlMode     auto
     2018-01-11 21:40:50   desired-temp    21.0
     2018-01-11 21:40:50   measured-temp   22.5
     2018-01-11 21:40:50   partyEnd        -
     2018-01-11 21:40:50   partyStart      -
     2018-01-11 21:40:50   partyTemp       -
     2017-03-16 07:27:16   recentStateType ack
     2018-01-11 21:40:50   state           T: 22.5 desired: 21.0 valve: 22
     2018-01-10 21:29:15   tempTmplSet     Badezimmer
   helper:
     regLst     ,1,7
     expert:
       def        1
       det        1
       raw        0
       tpl        0
     role:
       chn        1
     shRegR:
       07         00
     shadowReg:
     tmpl:
Attributes:
   model      HM-CC-RT-DN
   peerIDs    00000000,
   tempListTmpl Badezimmer


List vom Device:
Internals:
   DEF        3CF4C2
   HMLAN_MSGCNT 575
   HMLAN_RAWMSG E3CF4C2,0000,11D5E479,FF,FFC6,2186103CF4C20000000AA8E10A1600
   HMLAN_RSSI -58
   HMLAN_TIME 2018-01-11 21:40:50
   IODev      HMLAN
   LASTInputDev HMLAN
   MSGCNT     575
   NAME       EG.bd.RT
   NOTIFYDEV  global
   NR         46
   NTFY_ORDER 50-EG.bd.RT
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 EG.bd.RT_Weather
   channel_02 EG.bd.RT_Climate
   channel_03 EG.bd.RT_WindowRec
   channel_04 EG.bd.RT_Clima
   channel_05 EG.bd.RT_ClimaTeam
   channel_06 EG.bd.RT_remote
   lastMsg    No:21 - t:10 s:3CF4C2 d:000000 0AA8E10A1600
   protLastRcv 2018-01-11 21:40:50
   protSnd    2 last_at:2018-01-11 07:05:01
   protState  CMDs_done
   rssi_at_HMLAN min:-74 lst:-58 avg:-57.4 cnt:575 max:-52
   READINGS:
     2018-01-10 21:29:19   Activity        alive
     2018-01-10 16:10:41   CommandAccepted yes
     2017-01-30 17:14:06   D-firmware      1.4
     2017-01-30 17:14:06   D-serialNr      MEQ0800503
     2017-01-31 09:16:20   PairedTo        0x1C68F9
     2017-01-31 09:16:20   R-backOnTime    10 s
     2017-09-12 16:50:36   R-btnLock       on
     2017-01-31 09:16:20   R-burstRx       on
     2017-01-31 09:16:20   R-cyclicInfoMsg on
     2017-01-31 09:16:20   R-cyclicInfoMsgDis 0
     2017-01-31 09:16:20   R-globalBtnLock off
     2017-01-31 09:16:20   R-localResDis   off
     2017-01-31 09:16:20   R-lowBatLimitRT 2.1 V
     2017-01-31 09:16:20   R-modusBtnLock  off
     2017-01-31 09:16:20   R-pairCentral   0x1C68F9
     2018-01-11 21:40:50   actuator        22
     2018-01-11 21:40:50   battery         ok
     2018-01-11 21:40:50   batteryLevel    2.5
     2018-01-11 21:40:50   desired-temp    21.0
     2018-01-11 21:40:50   measured-temp   22.5
     2018-01-11 21:40:50   motorErr        ok
     2018-01-11 07:05:01   state           CMDs_done
     2018-01-11 07:05:01   time-request    -
   helper:
     HM_CMDNR   33
     mId        0095
     regLst     ,0
     rxType     140
     supp_Pair_Rep 0
     expert:
       def        1
       det        1
       raw        0
       tpl        0
     io:
       newChn     +3CF4C2,00,00,00
       nextSend   1515703250.58529
       prefIO     
       rxt        2
       vccu       
       p:
         3CF4C2
         00
         00
         00
     mRssi:
       mNo        21
       io:
         HMLAN      -56
     prt:
       bErr       0
       sProc      0
       sleeping   1
       rspWait:
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       prs        1
     rssi:
       at_HMLAN:
         avg        -57.4
         cnt        575
         lst        -58
         max        -52
         min        -74
     shRegW:
       07         04
     shadowReg:
     tmpl:
Attributes:
   IODev      HMLAN
   actCycle   000:10
   actStatus  alive
   alias      Heizung Badezimmer
   autoReadReg 4_reqStatus
   expert     1_allReg
   firmware   1.4
   model      HM-CC-RT-DN
   room       CUL_HM
   serialNr   MEQ0800503
   subType    thermostat
   webCmd     getConfig:clear msgEvents:burstXmit


Im Log steht nichts drin. AUch nicht wenn ich das verbose hoch setze.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 11 Januar 2018, 23:55:50
was wird dir angezeigt, nur die Überschrift?

Kopiere die ReadignsGroup mal und teste an der Kopie alle Attribute value* (-Format, -Icon, ...) zu entfernen und nimmer mal zum Test alle Felder raus die auf das Mutterdevice verweisen.

Klein anfangen und nach und naach wieder zusammenbauen.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 12 Januar 2018, 09:48:22
habe nur die Def mal bei mir reinkopiert, sieht nicht sooo schlecht aus ... nur Def, keine Formatierungen oder Funktionen ... siehe angehänges Bild
--> edit, habe die Formatierugnen aus meiner eigenen RG kopiert, sind wahrscheinlich unterschiedlich zu deinen, aber selbst das wird angewandt.


<%sani_heating>,<Ist>,<Soll>,<Ventil>,<Modus>,<Lock>,<Bat>,<Plan> 
.*_Clima:measured-temp,desired-temp,ValvePosition,controlMode,R-modusBtnLock@{$DEVICE},batteryLevel@{$DEVICE},?tempListTmpl


Lock -- Feld R-modusBtnLock@{$DEVICE} wird nicht geholt --> stört das "-" Minus im Namen? Könnte durch ein Userreading mit anderem Namen umgangen werden. Ggf. Hinweis an Modulersteller

\tmpListTmpl hab ich nicht, darum leer

--> für den Fall, dass du gar nichts siehst liegt es vermutlich an deinen Namen, oder Modul. Hast du mal ein Update von Fhem gemacht?

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 12 Januar 2018, 21:24:52
So ansich funktioniert das ja alles so wie es sein soll mit den Attributen. Siehe meinen älteren Beitrag:
Zitat von: budda85 am 07 Januar 2018, 11:15:58
Das mit den Temperatur-Listen, hatte ich so gar nicht mehr auf dem Schirm.
Da ich es ein wenig bunter schöner finde, habe ich mir mal was zusammen kopiert und die Listen mit integriert 8)

Das setzen der Listen geht aber nur mit einem restore im HMinfo, korrekt?
Wo kommt denn der defaultWeekplan her?

Dann noch eine Frage:
In der ReadingGroup von Igami, wird, wenn ich es richtig verstehe, über
R-globalBtnLock@{rg($DEVICE."§device")}
von dem xxx_clima Channel über das Internal 'device' auf das "Haupt-device" zugegriffen, wo ich dann das reading 'R-globalBtnLock' finde. Das klappt bei mir aber so nicht.
Gibt es da noch andere möglichkeiten?
Ich habe es bei mir jetzt mit dem Hauptdevice definiert und bastel dann hinten ein _Clima dran wenn es benötigt wird, aber andersherum würde es mich auch mal interssieren.

Das einzige was mich halt Interessiert ist, dass ich die RG auf den _Clima Channel einrichte und die Readings für Lock und Batterie aus dem Mutter Device holen kann.
Auch ein neuer Test mit einer komplett neuen RG und nur dem def bringt mir das gleich Ergebniss. Siehe Bild
Zum testen habe ich auch mal ein device umbenannt und die Punkte gegen Unterstriche getauscht. Auch das gleiche Ergebniss.
Fhem ist keine Woche alt.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 12 Januar 2018, 22:04:10
teste mal das hier für Batterie ... R-Btn halt Reading getauscht ...


batteryLevel@{InternalVal($DEVICE,"device","error")}
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: budda85 am 12 Januar 2018, 22:55:15
Ja cool, so gehts.
Danke für deine Geduld  :D
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 13 Januar 2018, 08:45:49
ich hatte mich selbst etwas "verlaufen". In $DEVICE steht "EG.bd.RT_Clima" und durch "InternalVal($DEVICE,"device","error")" holst du dir das Internal "device" das den Namen des Mutterdevices (EG.bd.RT). Dort gibt es dann die Readings um die es dir geht.

Das InternalVal kannst du auch in eine Sub auslagern. Ein Beispiel ist hier irgendwo in den ersten Posts enthalten.


Internals:
   DEF        3CF4C204
   NAME       EG.bd.RT_Clima <---- darauf wurde mit     @{$DEVICE} zugegriffen
   NOTIFYDEV  global
   NR         50
   NTFY_ORDER 50-EG.bd.RT_Clima
   STATE      T: 22.5 desired: 21.0 valve: 22
   TYPE       CUL_HM
   chanNo     04
   device     EG.bd.RT    <--- das wolltest du die ganze Zeit ansprechen
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Knuspertaler am 27 März 2018, 11:17:59
Moin,

ich habe meine Thermostat-Regelung wie in Post #239 umgesetzt.
ich bekomme nun nach Umzug auf einen neuen Raspi (neuerdings ?) zeitweise diese Fehlermeldung:

2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^mfdayTemp@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^8p1b@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^8p1e@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^sadayTemp@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^6p1b@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^6p1e@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^sodayTemp@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^0p1b@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^0p1e@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^state@{ <-- HERE readingsGroup($DEVICE,'device')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^mfnightTemp@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^8p2b@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^8p2e@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^sanightTemp@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^6p2b@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^6p2e@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^sonightTemp@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^0p2b@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.
2018.03.27 10:47:54 1: PERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^0p2e@{ <-- HERE readingsGroup($DEVICE,'hc')}$/ at ./FHEM/33_readingsGroup.pm line 1383.


Kann den Fehler leider nicht finden.. hat sich da was geändert ?
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 27 März 2018, 11:46:27


Zitat von: Knuspertaler am 27 März 2018, 11:17:59
Moin,

ich habe meine Thermostat-Regelung wie in Post #239 umgesetzt.


Post 239 ist von 2016 und sagt... Danke, funktioniert.

Poste am besten ein list deiner Definition.
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Knuspertaler am 27 März 2018, 12:10:38
wie gesagt, ging ja vorher.. vielleicht hat sich ein Syntaxfehler eingeschlichen (habs aber schon etliche male neu reinkopiert..)

list rg_heater:
Internals:
   DEF        <Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Tag/Nacht °C>,<Montag-Freitag>,<Tag/Nacht °C>,<Samstag>,<Tag/Nacht °C>,<Sonntag>,<> TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04:!alias,<Soll>,!desired-temp,!controlMode,!btnLock,<Zeitraum&nbsp;1>,!mfdayTemp@{readingsGroup($DEVICE,'hc')},!8p1b@{readingsGroup($DEVICE,'hc')},!8p1e@{readingsGroup($DEVICE,'hc')},!sadayTemp@{readingsGroup($DEVICE,'hc')},!6p1b@{readingsGroup($DEVICE,'hc')},!6p1e@{readingsGroup($DEVICE,'hc')},!sodayTemp@{readingsGroup($DEVICE,'hc')},!0p1b@{readingsGroup($DEVICE,'hc')},!0p1e@{readingsGroup($DEVICE,'hc')},!system_fhem_update,<br>,!state@{readingsGroup($DEVICE,'device')},!getConfig,<Ist>,!measured-temp,<Ventil>,!ValvePosition,<Zeitraum&nbsp;2>,!mfnightTemp@{readingsGroup($DEVICE,'hc')},!8p2b@{readingsGroup($DEVICE,'hc')},!8p2e@{readingsGroup($DEVICE,'hc')},!sanightTemp@{readingsGroup($DEVICE,'hc')},!6p2b@{readingsGroup($DEVICE,'hc')},!6p2e@{readingsGroup($DEVICE,'hc')},!sonightTemp@{readingsGroup($DEVICE,'hc')},!0p2b@{readingsGroup($DEVICE,'hc')},!0p2e@{readingsGroup($DEVICE,'hc')},!burstXmit
   NAME       rg_heater
   NR         668
   NTFY_ORDER 50-rg_heater
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   CONTENT:
     Thermostat_01_Clima 1
     Thermostat_02_Clima 1
   CONTENT2:
     Thermostat_01 1
     Thermostat_02 1
     hc_Heizung 1
   DEVICES:
     ARRAY(0x4fd81a0)
     ARRAY(0x4fd7d50)
     ARRAY(0x4fd7ed0)
   DEVICES2:
     ARRAY(0x4fd81a0)
     ARRAY(0x4fd7d50)
     ARRAY(0x4fd7ed0)
     ARRAY(0x4fd5fa0)
     ARRAY(0x4fef9c8)
     ARRAY(0x4fd5b50)
     ARRAY(0x4f7eea0)
     ARRAY(0x4f7e828)
     ARRAY(0x4f7e858)
     ARRAY(0x4fefff8)
     ARRAY(0x4fd5d30)
     ARRAY(0x4fd89e8)
     ARRAY(0x4fd7900)
     ARRAY(0x4ff03e8)
     ARRAY(0x4fd8e38)
     ARRAY(0x4ff0250)
     ARRAY(0x4fd8a18)
     ARRAY(0x4ff0220)
     ARRAY(0x4f7e738)
     ARRAY(0x4fd9288)
     ARRAY(0x4fd8e80)
     ARRAY(0x4fd8f40)
     ARRAY(0x4f7eeb8)
   fhem:
     lastDefChange 1
     last_update 1522142367.89491
   helper:
     DEF       
     commands   {'desired-temp' => 'desired-temp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg $DEVICE btnLock', 'mfdayTemp' => 'mfdayTemp:', '8p1b' => '8p1b:', '8p1e' => '8p1e:', 'sadayTemp' => 'sadayTemp:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', 'sodayTemp' => 'sodayTemp:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'mfnightTemp' => 'mfnightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', 'sanightTemp' => 'sanightTemp:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', 'sonightTemp' => 'sonightTemp:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
     nameStyle  {($READING eq "Temperatur"|| $READING eq "Status"|| $READING eq "Montag-Freitag"|| $READING eq "Samstag"|| $READING eq "Sonntag"|| $READING eq "system_fhem_update")?'style="text-align:center"':'style=""'}
     valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>".readingsGroup($DEVICE,"alias")."</a>"}', 'btnLock' => '{ReadingsVal(readingsGroup($DEVICE,"device"),"R-".AttrVal("default_hc","lockMode","btnLock"),"off")}', 'measured-temp' => "  %0.1f °C", 'ValvePosition' => "%0.1f %%"}
     positions:
       Thermostat_01.state 3:1
       Thermostat_01_Clima.ValvePosition 3:6
       Thermostat_01_Clima.alias 2:1
       Thermostat_01_Clima.btnLock 2:5
       Thermostat_01_Clima.burstXmit 3:17
       Thermostat_01_Clima.controlMode 2:4
       Thermostat_01_Clima.desired-temp 2:3
       Thermostat_01_Clima.getConfig 3:2
       Thermostat_01_Clima.measured-temp 3:4
       Thermostat_01_Clima.system_fhem_update 2:16
       Thermostat_02.state 5:1
       Thermostat_02_Clima.ValvePosition 5:6
       Thermostat_02_Clima.alias 4:1
       Thermostat_02_Clima.btnLock 4:5
       Thermostat_02_Clima.burstXmit 5:17
       Thermostat_02_Clima.controlMode 4:4
       Thermostat_02_Clima.desired-temp 4:3
       Thermostat_02_Clima.getConfig 5:2
       Thermostat_02_Clima.measured-temp 5:4
       Thermostat_02_Clima.system_fhem_update 4:16
       hc_Heizung.0p1b 2:14,4:14
       hc_Heizung.0p1e 2:15,4:15
       hc_Heizung.0p2b 3:15,5:15
       hc_Heizung.0p2e 3:16,5:16
       hc_Heizung.6p1b 2:11,4:11
       hc_Heizung.6p1e 2:12,4:12
       hc_Heizung.6p2b 3:12,5:12
       hc_Heizung.6p2e 3:13,5:13
       hc_Heizung.8p1b 2:8,4:8
       hc_Heizung.8p1e 2:9,4:9
       hc_Heizung.8p2b 3:9,5:9
       hc_Heizung.8p2e 3:10,5:10
       hc_Heizung.mfdayTemp 2:7,4:7
       hc_Heizung.mfnightTemp 3:8,5:8
       hc_Heizung.sadayTemp 2:10,4:10
       hc_Heizung.sanightTemp 3:11,5:11
       hc_Heizung.sodayTemp 2:13,4:13
       hc_Heizung.sonightTemp 3:14,5:14
     recalc:
       undef
       undef
       undef
       undef
       ARRAY(0x537de38)
       undef
       ARRAY(0x4ff2128)
     valueColumns:
       Heizung    colspan="2"
       Montag-Freitag colspan="2"
       Samstag    colspan="2"
       Sonntag    colspan="2"
       Status     colspan="2"
       Temperatur colspan="2"
       alias      colspan="2"
     valueIcon:
       btnLock.off secur_open@red
       btnLock.off  secur_open@red
       btnLock.on secur_locked@green
       btnLock.on  secur_locked@green
       btnLock.set_off secur_open@orange
       btnLock.set_off  secur_open@orange
       btnLock.set_on secur_locked@orange
       btnLock.set_on  secur_locked@orange
       controlMode.auto sani_heating_automatic@green
       controlMode.manual sani_heating_manual@red
       controlMode.set_auto sani_heating_automatic@orange
       controlMode.set_manual sani_heating_manual@orange
       system_fhem_update system_fhem_update
     values:
       formated:
         undef
         ARRAY(0x50a9f10)
         ARRAY(0x50a89f0)
         ARRAY(0x5322810)
         ARRAY(0x50b6a60)
         ARRAY(0x4fefb18)
         ARRAY(0x528d9b0)
         ARRAY(0x530d410)
         ARRAY(0x4fd92b8)
         ARRAY(0x5364198)
         ARRAY(0x3267860)
         ARRAY(0x3e5b0f8)
         ARRAY(0x53780a0)
         ARRAY(0x4fd7a50)
         ARRAY(0x4f85298)
         ARRAY(0x5087548)
         ARRAY(0x50a8a50)
         ARRAY(0x4fd8dd8)
       orig:
         undef
         ARRAY(0x52e9780)
         ARRAY(0x5004070)
         ARRAY(0x4f85160)
         ARRAY(0x4f5dc78)
         ARRAY(0x4099eb0)
         ARRAY(0x50bad20)
         ARRAY(0x4ff9160)
         ARRAY(0x530ced0)
         ARRAY(0x537dfc0)
         ARRAY(0x504df60)
         ARRAY(0x53845d8)
         ARRAY(0x39a7298)
         ARRAY(0x530cf18)
         ARRAY(0x50ba850)
         ARRAY(0x4c53d80)
         ARRAY(0x5322a38)
         ARRAY(0x537c678)
       prefixsuffix:
         undef
         ARRAY(0x50b5bd8)
         ARRAY(0x537eba8)
         ARRAY(0x50ba148)
         ARRAY(0x4d06008)
         ARRAY(0x52b1450)
         ARRAY(0x5320c30)
         ARRAY(0x5004808)
         ARRAY(0x53149e0)
         ARRAY(0x422cb68)
         ARRAY(0x530d3b0)
         ARRAY(0x4f57838)
         ARRAY(0x5380a78)
         ARRAY(0x5363ca0)
         ARRAY(0x2b622e8)
         ARRAY(0x1d71098)
         ARRAY(0x4c26db8)
         ARRAY(0x52857d0)
Attributes:
   alias      Übersicht Heizkörper
   commands   {'desired-temp' => 'desired-temp:', 'controlMode' => 'trigger ntfy_rg $DEVICE controlMode', 'btnLock' => 'trigger ntfy_rg $DEVICE btnLock', 'mfdayTemp' => 'mfdayTemp:', '8p1b' => '8p1b:', '8p1e' => '8p1e:', 'sadayTemp' => 'sadayTemp:', '6p1b' => '6p1b:', '6p1e' => '6p1e:', 'sodayTemp' => 'sodayTemp:', '0p1b' => '0p1b:', '0p1e' => '0p1e:', 'system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable', 'getConfig' => 'trigger ntfy_rg $DEVICE getConfig', 'mfnightTemp' => 'mfnightTemp:', '8p2b' => '8p2b:', '8p2e' => '8p2e:', 'sanightTemp' => 'sanightTemp:', '6p2b' => '6p2b:', '6p2e' => '6p2e:', 'sonightTemp' => 'sonightTemp:', '0p2b' => '0p2b:', '0p2e' => '0p2e:', 'burstXmit' => 'trigger ntfy_rg $DEVICE burstXmit'}
   nameStyle  {($READING eq "Temperatur"|| $READING eq "Status"|| $READING eq "Montag-Freitag"|| $READING eq "Samstag"|| $READING eq "Sonntag"|| $READING eq "system_fhem_update")?'style="text-align:center"':'style=""'}
   nonames    1
   room       Heizung
   sortDevices 1
   valueColumns {'Heizung' => 'colspan="2"', 'alias' => 'colspan="2"', 'Temperatur' => 'colspan="2"', 'Status' => 'colspan="2"', 'Montag-Freitag' => 'colspan="2"', 'Samstag' => 'colspan="2"', 'Sonntag' => 'colspan="2"'}
   valueFormat {'alias' => '{"<a href=/fhem?detail=$DEVICE>".readingsGroup($DEVICE,"alias")."</a>"}', 'btnLock' => '{ReadingsVal(readingsGroup($DEVICE,"device"),"R-".AttrVal("default_hc","lockMode","btnLock"),"off")}', 'measured-temp' => "  %0.1f °C", 'ValvePosition' => "%0.1f %%"}
   valueIcon  {'controlMode.auto' => 'sani_heating_automatic@green', 'controlMode.set_auto' => 'sani_heating_automatic@orange', 'controlMode.manual' => 'sani_heating_manual@red', 'controlMode.set_manual' => 'sani_heating_manual@orange', 'btnLock.on' => 'secur_locked@green', 'btnLock.on ' => 'secur_locked@green', 'btnLock.set_on' => 'secur_locked@orange', 'btnLock.set_on ' => 'secur_locked@orange', 'btnLock.off' => 'secur_open@red', 'btnLock.off ' => 'secur_open@red', 'btnLock.set_off' => 'secur_open@orange', 'btnLock.set_off ' => 'secur_open@orange', 'system_fhem_update' => 'system_fhem_update'}
   visibility hidden


rg_heater DEF:
<Heizung>,<Temperatur>,<Status>,<Wochenprofil>,<Tag/Nacht °C>,<Montag-Freitag>,<Tag/Nacht °C>,<Samstag>,<Tag/Nacht °C>,<Sonntag>,<> TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04:!alias,<Soll>,!desired-temp,!controlMode,!btnLock,<Zeitraum&nbsp;1>,!mfdayTemp@{readingsGroup($DEVICE,'hc')},!8p1b@{readingsGroup($DEVICE,'hc')},!8p1e@{readingsGroup($DEVICE,'hc')},!sadayTemp@{readingsGroup($DEVICE,'hc')},!6p1b@{readingsGroup($DEVICE,'hc')},!6p1e@{readingsGroup($DEVICE,'hc')},!sodayTemp@{readingsGroup($DEVICE,'hc')},!0p1b@{readingsGroup($DEVICE,'hc')},!0p1e@{readingsGroup($DEVICE,'hc')},!system_fhem_update,<br>,!state@{readingsGroup($DEVICE,'device')},!getConfig,<Ist>,!measured-temp,<Ventil>,!ValvePosition,<Zeitraum&nbsp;2>,!mfnightTemp@{readingsGroup($DEVICE,'hc')},!8p2b@{readingsGroup($DEVICE,'hc')},!8p2e@{readingsGroup($DEVICE,'hc')},!sanightTemp@{readingsGroup($DEVICE,'hc')},!6p2b@{readingsGroup($DEVICE,'hc')},!6p2e@{readingsGroup($DEVICE,'hc')},!sonightTemp@{readingsGroup($DEVICE,'hc')},!0p2b@{readingsGroup($DEVICE,'hc')},!0p2e@{readingsGroup($DEVICE,'hc')},!burstXmit

list default_hc:
Internals:
   NAME       default_hc
   NR         666
   STATE      ???
   TYPE       dummy
   READINGS:
     2018-03-22 15:10:30   0p1b            04:15
     2018-03-22 15:10:30   0p1e            21:00
     2018-03-22 15:10:30   0p2b            24:00
     2018-03-22 15:10:30   0p2e            24:00
     2018-03-22 15:10:30   6p1b            04:15
     2018-03-22 15:10:30   6p1e            21:00
     2018-03-22 15:10:30   6p2b            24:00
     2018-03-22 15:10:30   6p2e            24:00
     2018-03-22 15:10:30   8p1b            04:15
     2018-03-22 15:10:30   8p1e            06:30
     2018-03-22 15:10:30   8p2b            15:15
     2018-03-22 15:10:30   8p2e            21:00
     2018-03-22 15:10:30   mfdayTemp       21.0
     2018-03-22 15:10:30   mfnightTemp     17.0
     2018-03-22 15:10:30   sadayTemp       21.0
     2018-03-22 15:10:30   sanightTemp     17.0
     2018-03-22 15:10:30   sodayTemp       21.0
     2018-03-22 15:10:30   sofnightTemp    17.0
Attributes:
   attributes userattr group readingList setList
   devices    TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=chanNo=04
   group      Heizkörper
   lockMode   R-btnLock
   model      heating-control
   readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e mfdayTemp mfnightTemp sadayTemp sanightTemp sodayTemp sonightTemp
   room       Heizung
   setList    0p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 mfdayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 mfnightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 sadayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 sanightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 sodayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 sonightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
   subType    default
   userattr   attributes devices lockMode model subType wildcard
   widgetOverride lockMode:R-btnLock,R-globalBtnLock,R-modusBtnLock
   wildcard   TYPE=dummy:FILTER=model=heating-control:FILTER=subType!=default


list hc_Heizung:
Internals:
   NAME       hc_Heizung
   NR         667
   STATE      ???
   TYPE       dummy
   READINGS:
     2018-03-22 15:37:24   0p1b            07:00
     2018-03-22 15:37:39   0p1e            23:00
     2018-03-22 15:10:42   0p2b            24:00
     2018-03-22 15:10:42   0p2e            24:00
     2018-03-22 15:37:15   6p1b            07:00
     2018-03-22 15:37:33   6p1e            23:00
     2018-03-22 15:10:42   6p2b            24:00
     2018-03-22 15:10:42   6p2e            24:00
     2018-03-22 15:36:59   8p1b            05:00
     2018-03-22 15:10:42   8p1e            06:30
     2018-03-22 15:10:42   8p2b            15:15
     2018-03-22 15:36:44   8p2e            22:00
     2018-03-22 15:10:42   mfdayTemp       21.0
     2018-03-22 15:10:42   mfnightTemp     17.0
     2018-03-22 15:10:42   sadayTemp       21.0
     2018-03-22 15:10:42   sanightTemp     17.0
     2018-03-22 15:10:42   sodayTemp       21.0
     2018-03-22 15:10:42   sonightTemp     17.0
Attributes:
   group      Heizkörper
   model      heating-control
   readingList 8p1b 8p1e 8p2b 8p2e 6p1b 6p1e 6p2b 6p2e 0p1b 0p1e 0p2b 0p2e mfdayTemp mfnightTemp sadayTemp sanightTemp sodayTemp sonightTemp
   room       Heizung
   setList    0p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 0p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 6p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p1e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2b:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 8p2e:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 mfdayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 mfnightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 sadayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 sanightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 sodayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 sonightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
   userattr   attributes devices lockMode model subType wildcard

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 27 März 2018, 12:48:13


Zitat von: Knuspertaler am 27 März 2018, 11:17:59
Moin,

ich habe meine Thermostat-Regelung wie in Post #239 umgesetzt.
ich bekomme nun nach Umzug auf einen neuen Raspi (neuerdings ?) zeitweise diese Fehlermeldung:

Hast du von Raspi auf Raspi migriert? Gibt es die alte Installation noch bzw. Eine Sicherung davon? Ich würde bevor ich rate erstmal die komplette Installation die problemlos lief auf den neuen Raspi kopieren und sehen ob es damit auch Probleme gibt. Ohne Update zu machen.

Wenn es damit läuft kannst Update ausführen und sehen ob es daran liegt.

Wenn es mit dem Backup auch Probleme gibt ist es ggf eine neuere Perl Version oder näher dort zu suchen.

Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: Knuspertaler am 27 März 2018, 15:15:01
Ja, von Raspi auf Raspi... (Jessie auf Stretch)
Hab das alte System als kompletten Backup-Raspi liegen.
Hab auf die schnelle mal die alte cfg von Oktober gestartet... gleicher Fehler ?
In einer ruhigen Minute werde ich mal das Backup-System dranhängen...
Titel: Antw:HM-CC-RT-DN Reading Gruppe
Beitrag von: kadettilac89 am 28 März 2018, 02:03:30
Zitat von: Knuspertaler am 27 März 2018, 15:15:01
Ja, von Raspi auf Raspi... (Jessie auf Stretch)
Hab das alte System als kompletten Backup-Raspi liegen.
Hab auf die schnelle mal die alte cfg von Oktober gestartet... gleicher Fehler ?
In einer ruhigen Minute werde ich mal das Backup-System dranhängen...
Am wichtigsten ist der Test, alter fhem Ordner (alles) auf neuem Stretch, wenn der Fehler im alten System nicht war.