FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: idansch am 08 Januar 2016, 10:26:40

Titel: GELÖST - Darstellung "Fehler" Readings (Gruppe) sobald diese zweistellig sind
Beitrag von: idansch am 08 Januar 2016, 10:26:40
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.
Titel: Antw:Darstellung "Fehler" der Readings (Gruppe) sobald diese zweistellig sind
Beitrag von: justme1968 am 08 Januar 2016, 11:31:50
was genau heisst zweiteilig?

zeig mal ein list auf alle beteiligten devices.

gruss
  andre
Titel: Antw:Darstellung "Fehler" der Readings (Gruppe) sobald diese zweistellig sind
Beitrag von: idansch am 08 Januar 2016, 11:41:33
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");
  }
  }
}

Titel: Antw:Darstellung "Fehler" der Readings (Gruppe) sobald diese zweistellig sind
Beitrag von: justme1968 am 08 Januar 2016, 12:47:21
und wie ist die readingsGroup definiert ?

gruss
  andre
Titel: Antw:Darstellung "Fehler" der Readings (Gruppe) sobald diese zweistellig sind
Beitrag von: idansch am 08 Januar 2016, 13:23:50
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
Titel: Antw:Darstellung "Fehler" der Readings (Gruppe) sobald diese zweistellig sind
Beitrag von: ph1959de am 08 Januar 2016, 15:12:00
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
Titel: Antw:Darstellung "Fehler" der Readings (Gruppe) sobald diese zweistellig sind
Beitrag von: idansch am 12 Januar 2016, 09:21:30
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?
Titel: Antw:Darstellung "Fehler" der Readings (Gruppe) sobald diese zweistellig sind
Beitrag von: justme1968 am 12 Januar 2016, 11:05:12
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