CALVIEW Umrechnung duration in Tage

Begonnen von zwinzsch, 14 Oktober 2019, 08:33:07

Vorheriges Thema - Nächstes Thema

zwinzsch

Hallo zusammen,

ich nutze aktuell CALVIEW für die Darstellung meines Kalenders, unter anderem auch die Angabe "timeshort". Jetzt möchte ich bei mehrtägigen Terinen die Angabe "duration" nutzen. Seht Ihr eine Möglichkeit, dies in Tage oder Stunden umzurechnen, bevor diese dargestellt werden?

Wenn ich eine eigenes Reading einführe wird das von FTUI CALVIEW natürlich nicht gekannt. Ich kenne aber auch keine Möglichkeit, das "duration" vor Ausgabe im CALVIEW Widget umzurechnen. Idealerweise könnte ich vorher noch eine Entscheidung treffen: Ist der termin kürzer als ein tag , dann timeshort", andernfalls "duration" in Tagen ausgeben....

Heuberg

Hallo zwinsch,

Danke Dir für die Frage  :) . Die habe ich auch gerade. Vor allem, wie kann ich dies sinnvoll für meine Termine (1 Jahr Überblick) umsetzen?
Mit dem attr fulldaytext [text] könnte es evtl. werden. Jedoch weiß ich nicht, wie man hier sinnvoll vorgehen könnte.Vielleicht hat uns jemand einen Anstoß dazu?

Viele GrüßeRainer
HM, MAX, MySensors, Fronius, Conbee II, ZigBee, VCONTROL, Modbus, RPi, AVM

OdfFhem

@zwinzsch , @Heuberg

Derzeit ist es durchaus möglich, dem FTUI-CALVIEW-Widget ein beliebiges CALVIEW-Reading für die Ausgabe mitzuteilen; die Namensgebung muss lediglich dem üblichen Muster entsprechen - z.B. t_001_myReading, t_002_myReading, usw.

Relativ schmerzfrei könnte ein solches, variables Reading via notify angelegt werden ...

defmod EinmalkalenderView_notify_duration notify EinmalkalenderView:.*_duration:..* { my $readingName = $EVTPART0;; $readingName =~ s/duration:/myReading/;; my $readingValue = "X___".$EVTPART1."___Y";; fhem("setreading $NAME $readingName $readingValue");; }

Heuberg

@OdfFhem: Danke für den Anreger@zwinsch: Hast Du es schon gelöst?
Ich habe in der Zwischenzeit eine Lösung, daß mehrtägige Termin jetzt mit "3 tägig" angezeigt werden.
Viele Grüße
Rainer
HM, MAX, MySensors, Fronius, Conbee II, ZigBee, VCONTROL, Modbus, RPi, AVM

OdfFhem

@Heuberg

Hast Du es mit der angedeuteten Idee umgesetzt oder auf anderem Weg?
Würdest Du Deine Lösung in diesem Beitrag veröffentlichen?

Heuberg

@OdfFhem

Ich habe eine andere Lösung verwendet, da ich, wenn es nicht "x tägig" ist, weiterhin "ganztägig" bzw. die Zeit "xx.xx - yy.yy" angezeigt haben möchte.Folgende Lösung habe ich mit eine Notify gelöst:
Kalender_View:.*_duration:..* {
my $Read = $EVTPART0;
$Read =~ s/duration:/duration/;
my $Dauer = ReadingsNum("$NAME","$Read",0);
if ($Dauer >= 86400) {
    $Dauer = $Dauer/86400;
    $Dauer = $Dauer." tägig";
    }
else
{
    my $Read1 = $Read;
    $Read1 =~ s/duration/timeshort/;
    $Dauer = ReadingsVal("$NAME","$Read1",0);
    }
$Read =~ s/duration/Dauer/;
fhem("setreading $NAME $Read $Dauer");
}

Viele Grüße
Rainer





HM, MAX, MySensors, Fronius, Conbee II, ZigBee, VCONTROL, Modbus, RPi, AVM