GELÖST - Darstellung "Fehler" Readings (Gruppe) sobald diese zweistellig sind

Begonnen von idansch, 08 Januar 2016, 10:26:40

Vorheriges Thema - Nächstes Thema

idansch

Ich habe in meinem Beispiel 4 Dummys angelegt, den einen Wert x zugewiesen wird. Bei mir sind es die Tage bis zur nächsten Abfallentsorgung. Jeder Dummy bekommt auch diesen Wert sauber und kann weiterverarbeitet werden.
Sobald dieser aber zweistellig ist, werden die Werte in der Gruppe (Abfall Countdown) als viertel Kreis bzw. überhaupt nicht angezeigt. Der Readings (state) ist aber vorhanden und sichtbar sobald man einen einzeln auswählt.
Worin liegt der Fehler in der Darstellung?
Bild liegt bei.
Raspberry PI3 mit Stretch-Raspbian | CUL V3 868Mhz | RFXtrx 433Mhz | ...

justme1968

was genau heisst zweiteilig?

zeig mal ein list auf alle beteiligten devices.

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

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

idansch

Hier mal die List einer der Dummys. Zweistellig meine ich wenn der Wert >9 wird. Hier ist er 27

Internals:
   NAME       Glascontainer
   NR         85
   STATE      27
   TYPE       dummy
   Readings:
     2016-01-08 10:49:25   state           27
Attributes:
   group      Abfall Countdown
   room       Kalender


Und hier der sub aus der 99_myUtils.pm

# Abfall Entsorgung
# Log(3, $dtPapier);

sub
Abfalltermine ($)
{
  my ($Ereignis) = @_;
  my @Ereignisarray = split(/.*:\s/,$Ereignis);
  my $Ereignisteil1 = $Ereignisarray[1];
  my @uids=split(/;/,$Ereignisteil1);
  my $t  = time;
  my $dtPapier = '';
  my $dtWertstofftonne = '';
  my $dtRest = '';
  my $dtBiomuell = '';
  my $dtGlascontainer = '';
   foreach my $uid (@uids) {
    my $Kalendertext = fhem("get Abfall summary $uid");
    if ($Kalendertext =~ /Papier/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtPapier eq '' || ($eventDate < $dtPapier && $eventDate > $t))
        {
          $dtPapier = $eventDate;
        }
    };
if ($Kalendertext =~ /Gelbe Tonne/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtWertstofftonne eq '' || ($eventDate < $dtWertstofftonne && $eventDate > $t))
        {
          $dtWertstofftonne  = $eventDate;
        }
    };
    if ($Kalendertext =~ /Restmüll/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtRest eq '' || ($eventDate < $dtRest && $eventDate > $t))
        {
          $dtRest = $eventDate;
        }
    };
    if ($Kalendertext =~ /Bioabfall/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtBiomuell eq '' || ($eventDate < $dtBiomuell && $eventDate > $t))
        {
          $dtBiomuell  = $eventDate;
        }
    };
    if ($Kalendertext =~ /Glascontainer/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtGlascontainer eq '' || ($eventDate < $dtGlascontainer && $eventDate > $t))
        {
          $dtGlascontainer  = $eventDate;
        }
    };
   
   
  my $dayDiff = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Papiertonne $dayDiff");
  }
  my $dayDiff = floor(($dtWertstofftonne - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Wertstofftonne $dayDiff");
  }
  my $dayDiff = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Restmuell $dayDiff");
  }
    my $dayDiff = floor(($dtBiomuell - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Biomuell $dayDiff");
  }
    my $dayDiff = floor(($dtGlascontainer - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Glascontainer $dayDiff");
  }
  }
}

Raspberry PI3 mit Stretch-Raspbian | CUL V3 868Mhz | RFXtrx 433Mhz | ...

justme1968

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

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

idansch

Es sind einfach nur Dummys in eine Gruppe gesetzt.

define Papiertonne dummy
attr Papiertonne group Abfall Countdown
attr Papiertonne room Kalender

define Restmuell dummy
attr Restmuell group Abfall Countdown
attr Restmuell room Kalender

define Wertstofftonne dummy
attr Wertstofftonne group Abfall Countdown
attr Wertstofftonne room Kalender

define Biomuell dummy
attr Biomuell group Abfall Countdown
attr Biomuell room Kalender

define Glascontainer dummy
attr Glascontainer group Abfall Countdown
attr Glascontainer room Kalender
Raspberry PI3 mit Stretch-Raspbian | CUL V3 868Mhz | RFXtrx 433Mhz | ...

ph1959de

Da ist aber noch nicht das "define" der readingsGroup dabei, um das Andre gebeten hatte (am besten wahrscheinlich als Ausgabe des Befehls "list deinReadingsGroupName").

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

idansch

ZitatDa ist aber noch nicht das "define" der readingsGroup dabei, um das Andre gebeten hatte (am besten wahrscheinlich als Ausgabe des Befehls "list deinReadingsGroupName").

Es gibt keine definierte readingsGroup Nur halt eine group die ich definiert habe. Selbst wenn ich diese entferne werden die Readings (jetzt in der Type group Dummy) mit dem oben gezeigten Symbol dargestellt.

Oder verstehe ich da etwas falsch?
Raspberry PI3 mit Stretch-Raspbian | CUL V3 868Mhz | RFXtrx 433Mhz | ...

justme1968

sorry. ich/wir waren davon ausgegangen das es um eine readingsGroup geht.

wenn icons angezeigt werden dann gibt es ein icon das genau so heisst wie der aktuelle STATE. das kannst du mit attr <device> devStateIcon .*:noIcon verhindern.

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

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