Kalenderanzeige in Tabletui

Begonnen von Kusselin, 21 Februar 2018, 21:00:07

Vorheriges Thema - Nächstes Thema

Kusselin

Hallo, ich bin wir ihr wisst gerade an neuaufsetzen meines fhems und Tablet UIßs.

In Fhem konnte ich meinen Kalender einbinden..hier das list:

Internals:
   CFGFN      ./FHEM/familienkalender.cfg
   DEF        ical url https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxic.ics 21600
   NAME       Familie
   NOTIFYDEV  global
   NR         43
   NTFY_ORDER 50-Familie
   STATE      triggered
   TYPE       Calendar
   READINGS:
     2018-02-21 18:34:55   calname         xxxxxx@xxxxx.xx
     2018-02-21 18:34:55   lastUpdate      2018-02-21 18:34:55
     2018-02-17 14:06:11   modeAlarm       
     2018-02-17 14:06:11   modeAlarmOrStart
     2018-02-17 14:06:11   modeAlarmed     
     2018-02-17 14:06:11   modeChanged     
     2018-02-21 18:34:55   modeEnd         335922EAF243432B885873BEDBDF95FA;01UFT4PBM0000000VS54898EVSOU5A9OSpielplanOffline;3DB8488FEF2C4957A8DB5295F43BB71E;aft9bkg0oevsd1fmi5gl5a3hgkgooglecom;AD85CB2AD598429CB7D486F08FC782D4;663589376DBF49AC8E7326F8872351F1;BDC46AA7E10A4616BA7C6F96558F55A7;BD89A5AA8A9C408D90B01BE1A064F0F3;C0BA4826C9C446BFB2AC33374AD04271;E31CDD2098824511AEA584A3CFCD492E;E662A18661974B0DB120FBE1A19B358A;DB8178BD28794CA78CBBBBAF141BxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAE37FDC64C037B07;614B4A0A5E2C4F7FABB379EF588292B3;A340ECB9D53D4C329E8E3C15F142989C;3B050DF656754D76A33B75924C3E857A;01UHK7EI1S000000VS54898DVSTVROL7SpielplanOffline;72essu0bh8qqfehnsd3oqmiptogooglecom;DD73E92465D0485D97742F23C0CB2729;0363797411724069B70BDEF489245922;BEA5817C108F4BB39D77254569A6C596;492EDC306EBA4758A7A38C97A709B364
     2018-02-17 14:06:11   modeEnded       
     2018-02-17 14:06:11   modeStart       
     2018-02-17 14:06:11   modeStarted     
     2018-02-17 14:06:11   modeUpcoming   
     2018-02-21 18:34:55   nextUpdate      2018-02-22 00:34:55
     2018-02-21 18:34:55   nextWakeup      2018-02-22 00:34:55
     2018-02-21 18:34:55   state           triggered
Attributes:
   hideOlderThan 0
   room       Calender


aber in Tablet UI wird er nicht angezeigt. Nun meine Bitte an Euch damit ich es verstehe und auch die nachwelt .......woran liegt das bzw. könnte es liegen?

Hier mein html code:

<li data-col="2" data-row="3" data-sizex="5" data-sizey="2">
<header>
<div data-type="label" class="medium">Familienkalender</div>
</header>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_001_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_001_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_001_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_001_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_002_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_002_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_002_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="vKalender_Familie" data-get="t_002_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_003_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_003_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_003_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_003_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_004_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_004_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_004_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_004_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_005_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_005_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_005_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_005_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_006_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_006_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_006_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_006_summary" class="inline w3x right-align"></div>
</div>
</li>


habe das data-device genauso benannt wie den kalender.....

Über eine Info herzlichen Dank

Kussel

P.S. Wenn ihr einen alternativen html code habt damit ich vergleichen kann der dann geht wäre das super !!

SirMarco


Kusselin

#2
Hallo marco,
ja das CALVIW Modul habe ich auch endeckt und ich vergleiche meine alte fhem.cfg ja auch mit dem neuaufsetzen.

Nur wenn ich das CALVIEW definieren will sagt mir fhem immer "Familie already defined, delete it first "

ich gebe in der Kommandozeile folgendes ein:

define Familie CALVIEW Familie 2 21600 weil mein Calender heisst ja "Familie"

oder darf ich den Familie Kalender so als kalender gar nicht anlegen und bei diesem Kalender gleich definieren mit dem CALVIEW Modul?

Weil beim Abfall Kalender da muss ich ja erstmal den kalender ansich in Fhem defiieren und dann noch in das Abfallmodul integrieren.

Über ne Info vielen Dank

P.S. die Definition im Wiki lautet ja:
define <Name> CALVIEW <calendarname> <modus> und ich gebe den CALVIE den namen "Familie" und der Calendername ist auch "Familie und Abrufmodus 21600 sec.

also define Familie CALVIEW Familie 21600

und dann kommt die Fehlermeldung.

EDIT: OK, ich habe den Familie Kalender nun nochmla gelöscht und angelegt nur als CALVIW kalender hier das list:
Internals:
   CFGFN     
   DEF        Familie 2 21600
   INTERVAL   21600
   KALENDER   Familie
   NAME       Familie
   NR         25493
   NTFY_ORDER 50-Familie
   STATE      t: 0 td: 0 tm: 0
   TYPE       CALVIEW
   READINGS:
     2018-02-22 07:17:07   c-term          0
     2018-02-22 07:17:07   c-today         0
     2018-02-22 07:17:07   c-tomorrow      0
     2018-02-22 07:17:07   state           t: 0 td: 0 tm: 0
Attributes:
   modes      next


d.h. so wäre der standardkalender angelegt und so legt man die Kalender an in Fhem...bis auf den Abfallkalender da man da noch das Abfallmodul braucht..Stimmt das so, habe ich das richtig verstanden so?

DarkT

Zitat von: Kusselin am 22 Februar 2018, 07:13:18
Hallo marco,
ja das CALVIW Modul habe ich auch endeckt und ich vergleiche meine alte fhem.cfg ja auch mit dem neuaufsetzen.

Nur wenn ich das CALVIEW definieren will sagt mir fhem immer "Familie already defined, delete it first "

ich gebe in der Kommandozeile folgendes ein:

define Familie CALVIEW Familie 2 21600 weil mein Calender heisst ja "Familie"

oder darf ich den Familie Kalender so als kalender gar nicht anlegen und bei diesem Kalender gleich definieren mit dem CALVIEW Modul?

Nein, das geht nicht. Am Besten nennst Du deinen Kalender z.B. cal_Familie und deine CALVIEW dann cv_Familie, du kannst dann nachher mit dem "alias" attribut schöne Namen vergeben.

Albi

Hi,

ich habe zwei verschiedene Goolge Kalender am laufen. In Fhem habe ich für jeden einzelnen ein CALVIEW definiert.

Dann hatte ich das Problem, dass beim auslesen des Kalenders die Wiederholenden Termine und auch ganztags Termine aus der Vergangenheit angezeigt wurden.

Das habe ich dann wie folgt abstellen können. Im Kalender Device (Nicht Calview) folgende Atribute dazufügen

attr <Kalendername> hideOlderThan 0


Danach wurden nur noch die aktuellen Termine von Kalender eingelesen und im Calview eben auch.


Im Tablet UI habe ich mich dem Modul Calview bedient. Sieht dann so aus im index.html

<div data-type="calview"
data-device="DEINCALVIEWDEVICE"
data-get="all"
data-max="4"
data-detail='["bdate","btime","summary"]' data-detailwidth='["30","30","40"]'></div>


mit data get="all" werden alle Termine angezeit und mit data-max="4" eben nur die nächsten 4 Termine


Gruß Albi
Fhem Raspberry3+

TabletUI mit Abfallkalender, der auch per Telegramm sendet - Verkehrsmeldung über Google, das per DOIF an Telegramm bei Störung meldet - Sonnoff mit Tasmota (mqtt) und Shelly (mqtt und mqtt2) - Alexa Verknüpfung - Benzinpreis auf Tablet UI über HTTPMOD - Wetter + Pollen

Kusselin

Hi,
O.K.

1. also der eigentlichen Calender muss immer angelegt werden....da ja fhem sonst kein bezugspunkt hat..richtig?

2. Zusätzlich wie z.B. beim Abfall muss das CALVIEW Modul noch mitinstalliert werden. Dieses darf aber nicht den gleichen Namen haben wie der eigentlich zuvor definierte Kalender da es sonst zu Konflikten wie bei mir...richtig?

3. @DarT: du nennst den eigentlichen kalender cal_ damit du weisst das das der eigentliche kalender ist und den Calview kalender nennst cv_ das cv soll für CalView stehen richtig?

Gruss

DarkT

Zitat von: Kusselin am 22 Februar 2018, 08:36:08
Hi,
O.K.

1. also der eigentlichen Calender muss immer angelegt werden....da ja fhem sonst kein bezugspunkt hat..richtig?

Korrekt

Zitat von: Kusselin am 22 Februar 2018, 08:36:08
2. Zusätzlich wie z.B. beim Abfall muss das CALVIEW Modul noch mitinstalliert werden. Dieses darf aber nicht den gleichen Namen haben wie der eigentlich zuvor definierte Kalender da es sonst zu Konflikten wie bei mir...richtig?

Ebenfalls korrekt. Alle FHEM Objekte müssen immer eindeutige Namen haben, dass hat also nichts mit Kalender oder CALVIEW zu tun.

Zitat von: Kusselin am 22 Februar 2018, 08:36:08
3. @DarKT: du nennst den eigentlichen kalender cal_ damit du weisst das das der eigentliche kalender ist und den Calview kalender nennst cv_ das cv soll für CalView stehen richtig?

Gruss

Ja, so mache ich dass, das kannst Du aber machne wie Du magst. Ist halt eine Angewohnheit: als Entwickler will man immer sehen welchen Typ eine Variable hat :)

Kusselin

danke dir für deine Antworten....ich lerne immer mehr!! Bin das alles hier falsch angegangen, aber es gibt noch leuts hier die mir meine Fragen beantworten...ist halt immer kacke wenn man es nicht versteht...

O.K. DarkT..das war/ist die Theorie....in der Praxis ich nenne die Praxis jetzt mal TabletUi  ;):

so ich habe ja folgenden html code:
<li data-col="2" data-row="3" data-sizex="5" data-sizey="2">
<header>
<div data-type="label" class="medium">Familienkalender</div>
</header>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_001_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_001_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_001_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_001_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_002_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_002_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_002_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="vKalender_Familie" data-get="t_002_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_003_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_003_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_003_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_003_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_004_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_004_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_004_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_004_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_005_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_005_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_005_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_005_summary" class="inline w3x right-align"></div>
</div>
<div class="left-space-2">
<div data-type="label" data-device="Familie" data-get="t_006_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_006_btime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_006_etime" data-part="(\d\d\:\d\d).*" class="inline left"></div>
<div data-type="label" data-device="Familie" data-get="t_006_summary" class="inline w3x right-align"></div>
</div>
</li>


und jetzt was muss hier jetzt als "data-device" eingetragen werden???? der name des definierten CALVIEW kalenders in meinem Fall ??? richtig?

ich werde heute nachmittag nochmal beide Kalender umbenennen und mit den richtigen Aliases anlegen also den Kalender selbst mit cal.familie (ich arbeite lieber mit "." anstatt "_") und den CALVIEW kalender mit cv.Familie..denke soweit passt es oder?

und jetzt was müsste ich dann in dem html Code als "data-device" eintragen??

<div data-type="label" data-device="cv.Familie" data-get="t_001_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div

oder

<div data-type="label" data-device="cal.Familie" data-get="t_001_bdate" data-part="(\d\d\.\d\d\.).*" class="inline left"></div

Gruss


Albi

#8
Ich würde das gar nicht so kompliziert machen.

Bediene dich im Tablet UI an dem Modul "CalView" hier musst du dann nicht jede Zeile/Termin einzeln anlegen. Es reicht dann eben folgender Index, damit die nächsten 7 Termine angezeigt werden.

<div data-type="calview"
data-class="truncate narrow"
data-device="HIERdeinCalViewDeviceausFHEM"
data-get="all"
data-max="7"
data-detail='["bdate","btime","summary"]'
data-detailwidth='["25","23","80"]'
data-dateformat="short"
data-timeformat="short" ></div>


So ist das recht einfach und schnell gelöst.

Im Anhang ein BIld wie dann im TabletUI aussieht. MIt dem oberen Index

EDIT: Beachte, dass du in FHEM im Kalender Device den Atrribut setzt. Sonst werden evtl Termine aus der Vergangenheit als erstes angezeigt (Wiederholende Termine zb.)
attr <Kalendername> hideOlderThan 0





Fhem Raspberry3+

TabletUI mit Abfallkalender, der auch per Telegramm sendet - Verkehrsmeldung über Google, das per DOIF an Telegramm bei Störung meldet - Sonnoff mit Tasmota (mqtt) und Shelly (mqtt und mqtt2) - Alexa Verknüpfung - Benzinpreis auf Tablet UI über HTTPMOD - Wetter + Pollen

DarkT

Zitat von: Albi am 22 Februar 2018, 09:37:46
Ich würde das gar nicht so kompliziert machen.

Bediene dich im Tablet UI an dem Modul "CalView" hier musst du dann nicht jede Zeile/Termin einzeln anlegen. Es reicht dann eben folgender Index, damit die nächsten 7 Termine angezeigt werden.

<div data-type="calview"
data-class="truncate narrow"
data-device="HIERdeinCalViewDeviceausFHEM"
data-get="all"
data-max="7"
data-detail='["bdate","btime","summary"]'
data-detailwidth='["25","23","80"]'
data-dateformat="short"
data-timeformat="short" ></div>


So ist das recht einfach und schnell gelöst.

Im Anhang ein BIld wie dann im TabletUI aussieht. MIt dem oberen Index

EDIT: Beachte, dass du in FHEM im Kalender Device den Atrribut setzt. Sonst werden evtl Termine aus der Vergangenheit als erstes angezeigt (Wiederholende Termine zb.)
attr <Kalendername> hideOlderThan 0

Alles korrekt, genauso würde ich das auch machen!

Kusselin

Hallo DarkT

O.K. das war die Idee von Albi....

Was mich aber noch interessieren würde bzgl meiner Frage weiter oben...was müsste ich dann als data-device eintragen?

cv.Familie oder cal.Familie?

ich bin nicht zuhause...ich werde es aber ausprobieren...
Gruss

Albi

Fhem Raspberry3+

TabletUI mit Abfallkalender, der auch per Telegramm sendet - Verkehrsmeldung über Google, das per DOIF an Telegramm bei Störung meldet - Sonnoff mit Tasmota (mqtt) und Shelly (mqtt und mqtt2) - Alexa Verknüpfung - Benzinpreis auf Tablet UI über HTTPMOD - Wetter + Pollen

Kusselin

#12
Ich probiers später aus albi..danke



Kusselin

#13
Ich möchte hier auch denjenigen mal meine Anleitung vorstellen damit Sie es nicht so schwer haben oder sich so schwer machen wie ich!!

1. Am Anfang muss man verstehen das man ein Kalender den man zb in google angelegt und erstellt hat, auch erst in fhem einbinden muss.  Ich nenne den Kalender jetzt zB. in fhem "cal.Familie"! das cal benutze ich damit ich später weiss und auch zuordnen kann welcher kalender das ist!! Hoffe soweit verständlich.....

2. So jetzt definieren wir den Kalender in Fhem....wir spielen den Kalender sozusagen in fhem ein. Wir geben in der Komandozeile in fhem oben folgendes ein:

define cal.Familie Calendar ical url https://user:password@my.domain.com/.../yourcalendar.ics 21300

Wichtig ist noch das ihr entsprechend die URL anpasst an euren zuvor angelegten Kalender in google zb.

Dann drücken wir die Return Taste.

So, nun ist der Kalender in Fhem angelegt. Bitte vergesst nicht die Fhem.cfg datei zu speichern!! Einfach auf das "rote Fragezeichen" oben bei fhem.cfg drücken.

Hier könnt Ihr auch nochmal nachlesen, wobei für einen Anfänger das auch etwas kompliziert zu verstehen ist:
https://wiki.fhem.de/wiki/Calendar


So kann man mehrere kalender in Fhem erstmal anlegen....ist immer das gleiche Schema!!

3. Wenn man jetzt aber noch die Daten aus dem Kalender auslesen will, muss man noch das Modul "CALVIEW" anlegen in Fhem.

Jetzt kommt was ganz entscheidendes für Anfänger......um das CALVIEW Modul anzulegen braucht es folgende Definition:

define <Name> CALVIEW <calendarname> <modus>

Ihr müsst jetzt aufpassen und müsst folgendes eingeben:

define cv.Familie CALVIEW cal.Familie 21200

Ganz wichtig hier ist das ihr den ersten <NAME> anders benennt wie den Kalendernamen den ihr zuvor angelegt habt! ich habe Ihn in meinem Fall "cv" für Abk. calview genannt also zusammen "cv.Familie".

Hier auch nochmal zum nachlesen:
https://wiki.fhem.de/wiki/CALVIEW

Danach drückt ihr wieder die Returntaste und speichert die fhem.cfg Datei.

das wars...jetzt habt Ihr einen Kalender definiert in fhem und auch einen Calview damit daten aus dem Kalender ausgelesen werden können.

Ich hoffe ich kann/konnte einigen Anfängern mit der Anleitung helfen?

Gruss

Kussel