HM-CC-RT-DN Reading Gruppe

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

Vorheriges Thema - Nächstes Thema

gloob

Ich habe deine Funktion heute mal eingebunden und werde sie testen. Das Anlegen der Dummys und der ReadingsGroup hat zumindest schon einmal funktioniert.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

MarkusHiba

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.


Mit freundlichen Grüßen

MarkusHiba

igami

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
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

MarkusHiba

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?
Mit freundlichen Grüßen

MarkusHiba

igami

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.
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

MarkusHiba

Ok wo finde ich die Sub die man bearbeiten müsste,
was müsste da verändert werden das das alles funktioniert.
Mit freundlichen Grüßen

MarkusHiba

igami

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);
    }
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

MarkusHiba

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
Mit freundlichen Grüßen

MarkusHiba

MarkusHiba

#248
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;
}
Mit freundlichen Grüßen

MarkusHiba

MarkusHiba

#249
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
Mit freundlichen Grüßen

MarkusHiba

igami

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.
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

gloob

Gibt es hier etwas neues, was man aktuell nutzen kann?

Schön wäre auch eine Version für FTUI.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

MarkusHiba

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

Mit freundlichen Grüßen

MarkusHiba

gloob

#253
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.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

justme1968

setz mal nonames auf 1. ist es dann besser?

wie sollte es aussehen?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968