Hallo,
ich habe ein kleines Problem mit den ReadingsGroup.... Ich habe mir ein ReadingsGroup für meine Heizungssteuerung gebastelt (aus dem WIKI geklaut). Da ich meine Heizungsthermostate nur über "set .... desiredTemperature auto xx" steuern möchte, bekomme ich jetzt ein kleines Problem. Der Befehl für die commands passt irgendwie nicht.
Es funktioniert:
'heatingInfo.sollsetz'=>'desiredTemperature:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0'
Es funktionert nicht:
'heatingInfo.sollsetz'=>'set $Device desiredTemperature auto:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0'
Wie bekomme ich es hin, das ich eine Auswahlliste in der readingsgroup habe und dort die einstellbare Temperatur immer mit "desiredTemperature auto" gesendet wird?
Vielleicht kannst du mir ja noch hierbei helfen:
http://forum.fhem.de/index.php/topic,46366.0.html (http://forum.fhem.de/index.php/topic,46366.0.html)
			
			
			
				Mach mal ein list auf die Readingsgroup.
Grüße
			
			
			
				Internals: 
   DEF        <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil>,<Modus>,<Bat>,<RSSI>,<LF> 
Wandthermostat_Wohnzimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Wohnzimmer","temperature","")}>,<>,mode,battery,RSSI,<{ReadingsVal("Temperatur_Wohnzimmer","humidity","")}> 
Thermostat_Wohnzimmer1:desiredTemperature,<>,<>,valveposition,mode,battery,RSSI 
Thermostat_Wohnzimmer2:desiredTemperature,<>,<>,valveposition,mode,battery,RSSI 
<>,<>,<>,<>,<>,<>,<>,<> 
Thermostat_Kueche:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Kueche","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Kueche","humidity","")}> 
<>,<>,<>,<>,<>,<>,<>,<> 
Thermostat_Schlafzimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Schlafzimmer","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Schlafzimmer","humidity","")}> 
<>,<>,<>,<>,<>,<>,<>,<> 
Thermostat_Bad:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Bad","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Bad","humidity","")}> 
<>,<>,<>,<>,<>,<>,<>,<> 
Thermostat_Arbeitszimmer:desiredTemperature,<sollsetz>,<{ReadingsVal("Temperatur_Arbeitszimmer","temperature","")}>,valveposition,mode,battery,RSSI,<{ReadingsVal("Temperatur_Arbeitszimmer","humidity","")}> 
   NAME       heatingInfo 
   NR         387 
   NTFY_ORDER 50-heatingInfo 
   STATE      Initialized 
   TYPE       readingsGroup 
   mayBeVisible 1 
   Content: 
     Thermostat_Arbeitszimmer 1 
     Thermostat_Bad 1 
     Thermostat_Kueche 1 
     Thermostat_Schlafzimmer 1 
     Thermostat_Wohnzimmer1 1 
     Thermostat_Wohnzimmer2 1 
     Wandthermostat_Wohnzimmer 1 
   Content2: 
   DEVICES: 
     ARRAY(0x3c94378) 
     ARRAY(0x3bfc930) 
     ARRAY(0x3ec52c8) 
     ARRAY(0x3c87860) 
     ARRAY(0x380dc98) 
     ARRAY(0x25cd3b0) 
     ARRAY(0x3960058) 
     ARRAY(0x3c92370) 
     ARRAY(0x3c940f0) 
     ARRAY(0x3bdcf58) 
     ARRAY(0x3eb45f0) 
     ARRAY(0x3e9b338) 
   Fhem: 
     lastDefChange 22 
     last_update 1451479161.35502 
   Helper: 
     DEF 
     Commands: 
       heatingInfo.sollsetz desiredTemperature:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0 
       mode.auto  set %DEVICE desiredTemperature manual 
       mode.manual set %DEVICE desiredTemperature auto 
     Positions: 
       Thermostat_Arbeitszimmer.RSSI 12:7 
       Thermostat_Arbeitszimmer.battery 12:6 
       Thermostat_Arbeitszimmer.desiredTemperature 12:1 
       Thermostat_Arbeitszimmer.mode 12:5 
       Thermostat_Arbeitszimmer.valveposition 12:4 
       Thermostat_Bad.RSSI 10:7 
       Thermostat_Bad.battery 10:6 
       Thermostat_Bad.desiredTemperature 10:1 
       Thermostat_Bad.mode 10:5 
       Thermostat_Bad.valveposition 10:4 
       Thermostat_Kueche.RSSI 6:7 
       Thermostat_Kueche.battery 6:6 
       Thermostat_Kueche.desiredTemperature 6:1 
       Thermostat_Kueche.mode 6:5 
       Thermostat_Kueche.valveposition 6:4 
       Thermostat_Schlafzimmer.RSSI 8:7 
       Thermostat_Schlafzimmer.battery 8:6 
       Thermostat_Schlafzimmer.desiredTemperature 8:1 
       Thermostat_Schlafzimmer.mode 8:5 
       Thermostat_Schlafzimmer.valveposition 8:4 
       Thermostat_Wohnzimmer1.RSSI 3:7 
       Thermostat_Wohnzimmer1.battery 3:6 
       Thermostat_Wohnzimmer1.desiredTemperature 3:1 
       Thermostat_Wohnzimmer1.mode 3:5 
       Thermostat_Wohnzimmer1.valveposition 3:4 
       Thermostat_Wohnzimmer2.RSSI 4:7 
       Thermostat_Wohnzimmer2.battery 4:6 
       Thermostat_Wohnzimmer2.desiredTemperature 4:1 
       Thermostat_Wohnzimmer2.mode 4:5 
       Thermostat_Wohnzimmer2.valveposition 4:4 
       Wandthermostat_Wohnzimmer.RSSI 2:7 
       Wandthermostat_Wohnzimmer.battery 2:6 
       Wandthermostat_Wohnzimmer.desiredTemperature 2:1 
       Wandthermostat_Wohnzimmer.mode 2:5 
     Values: 
       formated: 
         ARRAY(0x37a9dc8) 
         ARRAY(0x3bfbb08) 
         ARRAY(0x3963850) 
         ARRAY(0x395d200) 
         ARRAY(0x3c2d3e0) 
       orig: 
         ARRAY(0x3ca8518) 
         ARRAY(0x25cdd70) 
         ARRAY(0x25cd8a8) 
         ARRAY(0x3b2ec00) 
         ARRAY(0x3c0ea98) 
       prefixsuffix: 
         ARRAY(0x3be9b78) 
         ARRAY(0x3c824a8) 
         ARRAY(0x3c8fc98) 
         ARRAY(0x35057c8) 
         ARRAY(0x3c8f218) 
Attributes: 
   commands   { 
'heatingInfo.sollsetz'=>'desiredTemperature:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0', 
"mode.manual"=>"set %DEVICE desiredTemperature auto","mode.auto"=>"set %DEVICE desiredTemperature manual", 
} 
   room       30_Heizung 
			
			
			
				Ich verstehe ehrlich gesagt nicht wieso Du so ein der brauchst? Ist der Thermostat im Automodus und Du schlatest eine neue Temperatur, geht dann der Thermostat dadurch in den manual Modus?
			
			
			
				Richtig. Wenn ich die Temperatur einstelle, springt das Thermostat auf manual. Wenn ich aber "desiredTemperature auto" sende, ändert sich die Temperatur und springt beim nächsten Schaltpunkt im Wochenprofil wieder zurück. 
			
			
			
				An ok. Schade ich dachte es geht anders. Aber mit dem set bla bla geht es glaube so nicht. Müssen wir mal schauen ob da jemand ne Idee hat. Am besten André, der ist der Author des Modules glaube.
			
			
			
				Hallo Xaser,
wollt schon vor längerer Zeit auch das Beispiel aus der readingsGroup-Wiki umsetzen. Da ich aber hauptsächlich MAX-Thermostate im Einsatz habe, bin ich auf die gleichen Problem gestoßen, das beim ändern der desiredTemperature sich der Mode von Auto auf Manual änderte.
Falls du noch keine Lösung hast, kann ich Dir meine Lösung vorstellen.
Ich habe für jeden Thermostaten ein Dummy und ein Notify erstellt.
hier ein Beispiel
define MD_MAX_0775ef dummy
attr MD_MAX_0775ef alias Büro
attr MD_MAX_0775ef room Demo
attr MD_MAX_0775ef setList state:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0
attr MD_MAX_0775ef webCmd state
define MDN_MAX_0775ef notify MD_MAX_0775ef.* {\
  my $valtemp = "$EVENT";;\
  my $device = "MAX_0775ef";;\
  my $cmd = 'set '.$device.' desiredTemperature auto '.$valtemp;;\
  fhem($cmd);;\
 }
Anschließend habe ich in der readingsGroup nicht das MAX-Device angegeben sondern den MAXDummy. und die Werte vom DEVICE über Reading@Device eingebunden.
Auch gibt es bei MAX keine vernünftige Umschaltung zwischen auto und manual.
Ich habe in meine readingsGroup immer ein DEVICE bei dem sich der Mode verändert sobald man die Temperatur verstellt und ein DEVICE bei dem der Mode erhalten bleibt.
redingsGroup
define heatingInfo readingsGroup <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Regler>,<Modus>,<Lock>,<Bat>,<RSSI>,<Luftfeuchtigkeit>,<Fenster>\
MAX_07dc3e:desiredTemperature,<sollsetzmax>,temperature,<>,mode,<>,battery,RSSI,humidity@CUL_TCM97001_170,state@MAX_0499fc\
HM_3F6484_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@HM_3F6484,batteryLevel@HM_3F6484,+cul868_RSSI@HM_3F6484,<>,<>\
MAX_07794a:desiredTemperature,<sollsetzmax>,temperature,valveposition,mode,<>,battery,RSSI,<>,<>\
MD_MAX_07794a:desiredTemperature@MAX_07794a,<sollsetzmax2>,temperature@MAX_07794a,valveposition@MAX_07794a,mode@MAX_07794a,<>,battery@MAX_07794a,RSSI@MAX_07794a,<>,<>\
MAX_0775ef:desiredTemperature,<sollsetzmax>,temperature,valveposition,mode,<>,battery,RSSI@MAX_0775ef,humidity@CUL_TCM97001_150,<>\
MD_MAX_0775ef:desiredTemperature@MAX_0775ef,<sollsetzmax2>,temperature@MAX_0775ef,valveposition@MAX_0775ef,mode@MAX_0775ef,<>,battery@MAX_0775ef,RSSI@MAX_0775ef,humidity@CUL_TCM97001_150,<>
attr heatingInfo cellStyle { "r:1"=>'style="font-weight:bold;;;;font-size:16px"'}
attr heatingInfo commands {'heatingInfo.sollsetz'=>'desired-temp:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0',\
"controlMode.manual"=>"set %DEVICE controlMode auto","controlMode.auto"=>"set %DEVICE controlMode manual",\
"R-globalBtnLock.on"=>"set %DEVICE regSet globalBtnLock off",\
"R-globalBtnLock.off"=>"set %DEVICE regSet globalBtnLock on",\
'heatingInfo.sollsetzmax'=>'desiredTemperature:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0',\
'heatingInfo.sollsetzmax2'=>'state:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0',\
"mode.manual"=>"set %DEVICE desiredTemperature auto","mode.auto"=>"set %DEVICE desiredTemperature %desiredTemperature"}
attr heatingInfo mapping {HM_3F6484_Clima=>"Flurheizung",\
MAX_07794a=>"Kind1_Hand",\
MD_MAX_07794a=>"Kind1_Auto",\
MAX_0775ef=>"Büro_Hand",\
MD_MAX_0775ef=>"Büro_Auto"}
attr heatingInfo room Demo
attr heatingInfo valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}\
elsif($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}}}
attr heatingInfo valueIcon {'controlMode.manual' => 'sani_heating_manual@795CFF',\
'controlMode.auto' => 'sani_heating_automatic@FFC13A', 'controlMode.boost' => 'sani_heating_boost@FB0C02',\
'mode.manual' => 'sani_heating_manual@795CFF',\
'mode.auto' => 'sani_heating_automatic@FFC13A', 'mode.boost' => 'sani_heating_boost@FB0C02',\
'humidity'=>'humidity@6FD9FB', 'R-globalBtnLock.on'=>'secur_locked@F7301D',\
'state.closed' => 'fts_window_1w@lightgreen', 'state.opened' => 'fts_window_1w_open@red',\
'R-globalBtnLock.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',\
'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',\
'battery.ok'=>'measure_battery_100@0CFB0C','battery.low'=>'measure_battery_0@E50005',\
'controlMode.set_boost' => 'hourglass',\
'controlMode.set_auto' => 'hourglass','controlMode.set_manual' => 'hourglass',\
'mode.set_boost' => 'hourglass',\
'mode.set_auto' => 'hourglass','mode.set_manual' => 'hourglass',\
'R-globalBtnLock.set_on' => 'hourglass','R-globalBtnLock.set_off' => 'hourglass'}
attr heatingInfo valueStyle {if($READING eq "temperature")\
{my $t=$VALUE;;;;my $d=ReadingsVal($DEVICE,'desiredTemperature',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);;;;"'}} \
elsif($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);;;;"'}}}
attr heatingInfo valueSuffix {"desired-temp"=>" °C", "measured-temp"=>" °C",\
"desiredTemperature"=>" °C","temperature"=>" °C",\
"ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",\
"valveposition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",\
"humidity"=>" ".ReadingsVal($DEVICE,$READING,0)." % RH",\
"batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"}
Und so sollte es dann aussehen
Gruß rippi
			
			
			
				Das Device könntest Du auch mit einem Regexp ermitteln (in deinem Fall das "MDN_" vorne abschneiden) und somit würde ein notify für alle thermostate ausreichen.... ;-)
			
			
			
				Hi JoeAllb,
hab mich damit leider noch nicht beschäftigt.
Wie würde das dann in meinem Fall aussehen.
Gruß Rippi
			
			
			
				define MDN_MAX_ALL notify MD_MAX_.* {\
  my $newname = $NAME =~ s/MDN_//r ;;\
  my $cmd = 'set '.$newname.' desiredTemperature auto '.$EVENT;;\
  fhem($cmd);;\
 }
In etwa so, ist aber ungetestet!!
			
			
			
				Hallo,
ich habe bei meinen Max HT's das attribut keep auto gesetzt. 
Gruß Holgi
			
			
			
				Hallo,
habe mein Define der readingsGroup nach dem Tip von JoeALLb noch etwas angepasst.
Mein notify für die MAX-Thermostate:
define MDN_MAX_ALL notify MD_MAX_.* {\
  my $newname = $NAME =~ s/MD_//r ;;\
  my $cmd = 'set '.$newname.' desiredTemperature auto '.$EVENT;;\
  fhem($cmd);;\
 }
attr MDN_MAX_ALL room Demo
Mein define der readingsGroup:
define heatingInfo readingsGroup <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Regler>,<Modus>,<Lock>,<Bat>,<RSSI>,<Luftfeuchtigkeit>,<Fenster>\
HM_3F6484_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@HM_3F6484,batteryLevel@HM_3F6484,+cul868_RSSI@HM_3F6484,<>,<>\
MD_MAX_......:desiredTemperature@{($DEVICE=~s/MD_//r)},<sollsetzmax2>,temperature@{($DEVICE=~s/MD_//r)},valveposition@{($DEVICE=~s/MD_//r)},mode@{($DEVICE=~s/MD_//r)},<>,battery@{($DEVICE=~s/MD_//r)},RSSI@{($DEVICE=~s/MD_//r)},humidity@{('CUL_TCM97001_'.$DEVICE=~s/MD_//r)},state@{('FD_'.$DEVICE=~s/MD_//r)}
der Rest ist gleich geblieben
Gruß Rippi