HM-CC-RT-DN Reading Gruppe

Begonnen von TNT0068, 25 August 2014, 13:22:46

Vorheriges Thema - Nächstes Thema

igami

Hallo Mirko,

dazu gab es letztens einen Thread
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
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Mirko815

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

Mirko815

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:

zentis666

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
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

igami

#94
Ich gucke es mir gleich noch mal an, muss noch schauen ob das 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
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

zentis666

#95
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
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

zentis666

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;
}
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

l3skon3

#98
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)

igami

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
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

zentis666

#100
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
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

Mirko815

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

igami

siehe 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
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

zentis666

#103
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
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

igami

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
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED