57_CALVIEW - Erweiterungsmodul für 57_CALENDAR

Begonnen von chris1284, 28 Dezember 2016, 18:12:33

Vorheriges Thema - Nächstes Thema

Mave


DarkT

Zitat von: Mave am 03 Dezember 2017, 13:09:16
Sorry, was meinst Du mit tui definition?  :-[

Ich denke er mein Tablet UI Definition

Mave

Internals:
DEF        ftui/ ./www/tablet/ Tablet-UI
NAME     TABLETUI
NR          70
STATE     TABLETUI
TYPE       HTTPSRV
fhem:
    directory        ./www/tablet/
    friendlyname  Tablet-UI
    infix               ftui/
Attributes:

chris1284

Ich meinte er wie du das Widget in der TUI eingebunden hast. Quasi drin HTML Code mit dem Widget  :)

Mave

<div data-type="calview" data-device="Kalenderansicht" data-get="today" data-detail='["bdate","timeshort","summary"]' data-detailwidth='["15","22","63"]' data-class='left-align top-narrow-10' data-oneline="yes" data-showempty="false" class="cell"></div>

<div data-type="calview" data-device="Kalenderansicht" data-get="tomorrow" data-detail='["bdate","timeshort","summary"]' data-detailwidth='["15","22","63"]' data-class='left-align top-narrow-10' data-oneline="yes" data-showempty="false" class="cell"></div>

chris1284

und was darum? bitte ein wenig mehr Code. du kannst ja auch mal eine Testseite einbauen wo nur das calview element drauf ist zb

<li data-row="1" data-col="1" data-sizex="4" data-sizey="4">
<div data-type="calview" data-device="View_All" data-get="all" data-detail='["bdate","timeshort","summary"]'data-detailwidth='["10","10","10"]' data-oneline="yes" data-class='left-align' data-start="none"  data-sourcecolor="yes" data-max="20"  class="cell"></div>
</li>

ChHerrm

Hallo zusammen,
ich habe nun auch dieses "Problem mit dem roten Fragezeichen" seit einem Update vor ein paar Wochen. Der Kalender funktioniert nach wie vor sehr gut, aber ich bekomme immer wieder eine scheinbare Änderung angezeigt:

Last 10 structural changes:
  modify rg_Termine_Christoph ,,

Auch mit vielen Recherchen habe ich das Problem bisher nicht beheben können:-/ Das "SAVE" habe ich ja drin, bzw. hatte ich ja vorher auch schon. Hier der Code, rot markiert die (glaube ich) kritische Stelle. Kann mir jemand bei der Lösung helfen? :-\

Kalender:

define ChristophKalender Calendar ical url http://www.google.com/calendar/ical/.../basic.ics
attr ChristophKalender hideOlderThan 3600
attr ChristophKalender verbose 0


CALVIEW:

define View_Christoph CALVIEW ChristophKalender 1
attr View_Christoph maxreadings 6
attr View_Christoph modes all


Automatische Aktualisierung:

define Kalenderakt at +*00:10:00 set View_Christoph update


Manuelle Kalenderaktualisierung:

define Kalenderaktualisierung dummy
attr Kalenderaktualisierung devStateIcon .*:refresh
attr Kalenderaktualisierung group Kalender
attr Kalenderaktualisierung icon time_calendar
attr Kalenderaktualisierung room Wohnung
attr Kalenderaktualisierung webCmd jetzt
define man_Kalenderaktualisierung notify Kalenderaktualisierung:jetzt set View_Christoph update


Hier der scheinbare Problemfall:

define at_KalenderTermine_Christoph at +*00:20:00 {\
  my $i;;\
  my $modtext = "<Datum>,<Beginn>,<Ereignis>,<Ende> ";;\
  for($i= 1;;$i<= ReadingsVal("View_Christoph","c-term", 0);;$i++){\
  $modtext .= "View_Christoph:t_".sprintf('%03d',$i)."_bdate,t_".sprintf('%03d',$i)."_btime,t_".sprintf('%03d',$i)."_summary,t_".sprintf('%03d',$i)."_etime ";;}\
fhem("modify rg_Termine_Christoph $modtext");;\
fhem("SAVE");;\
}


Readingsgroup:

define rg_Termine_Christoph readingsGroup <Datum>,<Beginn>,<Ereignis>,<Ende> View_Christoph:t_001_bdate,t_001_btime,t_001_summary,t_001_etime View_Christoph:t_002_bdate,t_002_btime,t_002_summary,t_002_etime View_Christoph:t_003_bdate,t_003_btime,t_003_summary,t_003_etime View_Christoph:t_004_bdate,t_004_btime,t_004_summary,t_004_etime View_Christoph:t_005_bdate,t_005_btime,t_005_summary,t_005_etime View_Christoph:t_006_bdate,t_006_btime,t_006_summary,t_006_etime
attr rg_Termine_Christoph group Kalender
attr rg_Termine_Christoph nameStyle style="font-weight:bold;;color:White"
attr rg_Termine_Christoph noheading 1
attr rg_Termine_Christoph nonames 1
attr rg_Termine_Christoph nostate 1
attr rg_Termine_Christoph notime 1
attr rg_Termine_Christoph room Wohnung
attr rg_Termine_Christoph sortby 02
attr rg_Termine_Christoph valueFormat {\
  if ($READING =~ /bdate/)\
  {\
    my $readingStart = $READING;;\
    $readingStart =~ s/bdate//;;\
    if (0 == ReadingsVal($DEVICE, $readingStart.'daysleft', -1))\
    {\
      "Heute";;\
    }\
    elsif (1 == ReadingsVal($DEVICE, $readingStart.'daysleft', -1))\
    {\
      "Morgen";;\
    }\
  }\
}
attr rg_Termine_Christoph valueStyle {\
  if ($READING =~ /bdate/)\
  {\
    my $readingStart = $READING;;\
    $readingStart =~ s/bdate//;;\
    if (0 == ReadingsVal($DEVICE, $readingStart.'daysleft', -1))\
    {\
       'style="color:red;;;;font-weight:bold"';;\
    }\
    elsif (1 == ReadingsVal($DEVICE, $readingStart.'daysleft', -1))\
    {\
       'style="color:yellow;;;;font-weight:bold"';;\
    }\
  }\
}\

mkraus81

hab das Gleiche Problem mit dem SAVE (rote Fragezeichen)

Last 10 structural changes:
  modify rgKalenderFamilie ,,
OK


hat jemand eine Idee?

mumpitzstuff


TRallala

Zitat von: mumpitzstuff am 20 Oktober 2017, 17:37:47
Falls jemand noch eine readingsgroup benötigt. Alles was ich gefunden habe, hat nur mit einem separaten Notify funktioniert... Maximal 20 Termine werden angezeigt, bei Bedarf kann das aber beliebig erweitert werden.


defmod rg_Kalender readingsGroup <Datum>,<Zeit>,<Termin>,<Ort>\
KALENDER_VIEW:t_001_bdate,t_001_timeshort,t_001_summary,t_001_location\
[...]
attr rg_Kalender nonames 1
attr rg_Kalender notime 1
attr rg_Kalender valueFormat {\
  if ($READING =~ /bdate/)\
  {\
    my $readingStart = $READING;;\
    $readingStart =~ s/bdate//;;\
    if (0 == ReadingsVal($DEVICE, $readingStart.'daysleft', -1))\
    {\
      "Heute";;\
    }\
    elsif (1 == ReadingsVal($DEVICE, $readingStart.'daysleft', -1))\
    {\
      "Morgen";;\
    }\
  }\
}


erstmal: danke dafür mumpitz.
Das hilft für den Anfang ungemein!
Problem was ich habe: es müllt mir das log voll mit:


2017.12.11 15:28:51 1: PERL WARNING: Useless use of a constant ("Heute") in void context at (eval 212161) line 8.
2017.12.11 15:28:51 1: PERL WARNING: Useless use of a constant ("Morgen") in void context at (eval 212161) line 12.


quasi bei jeder Aktualisierung.

Jemand einen guten Tip?


mumpitzstuff

Wenn's nicht geht vermutlich falsch kopiert.

Mach einen Raw Kontext auf, ersetze alles was drin steht mit dem was ich geschrieben habe, führe das aus und setzte nachträglich noch die Attribute, die werden glaub nicht übernommen.

TRallala


das ganze hat ja funktioniert, nur leider mit den genannten log Einträgen.

Lag aber wohl eher daran, dass ich versucht habe das ganze um folgendes zu erweitern:  ::)

  $readingStart =~ s/timeshort//;
  if ('00:00:00 - 00:00:00' eq ReadingsVal($DEVICE, $readingStart.'timeshort', -1))
  {
    "ganztägig";
  }


Wäre dankbar, wenn mir das jemand zusammenschreiben kann - sprich: daysleft==00 => heute,  daysleft==1 => morgen, und timeshort=='00:00:00 - 00:00:00'  => ganztägig

mumpitzstuff

Klingt für mich unlogisch. Ganztägig anstelle des Datums des Termins zu haben ist eher suboptimal. Vermutlich willst du stattdessen die Zeit des Termins durch ganztägig ersetzen. Ich muss mal gucken ob ich mir das heute Abend mal ansehen kann.

TRallala

Zitat von: mumpitzstuff am 12 Dezember 2017, 13:45:46
Vermutlich willst du stattdessen die Zeit des Termins durch ganztägig ersetzen.

richtig. timshort stellt ja nur anfangs- und endzeit da, also "00:00:00 - 00:00:00".

{
  if ($READING =~ /bdate/)
  {
    my $readingStart = $READING;
    $readingStart =~ s/bdate//;
    if (0 == ReadingsVal($DEVICE, $readingStart.'daysleft', -1))
    {
      "Heute";
    }
    elsif (1 == ReadingsVal($DEVICE, $readingStart.'daysleft', -1))
    {
      "Morgen";
    }
  }
  my $readingStart = $READING;
  $readingStart =~ s/timeshort//;
  if ('00:00:00 - 00:00:00' eq ReadingsVal($DEVICE, $readingStart.'timeshort', -1))
  {
    "ganztägig";
  }
}


So funktioniert zwar beides, aber eben mit den genannten Fehlern. Ich kann halt  kein Perl und hab mir da in skriptkiddy manier was zusammenkopiert..  :-[
Danke schonmal für die Unterstüzung!