57_CALVIEW - Erweiterungsmodul für 57_CALENDAR

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

Vorheriges Thema - Nächstes Thema

Amenophis86

Eine Frage, ist CALVIEW nonblocking? Seit ich es gestern drauf gemacht habe, habe ich regelmäßige disconnects bei meinem HMLan, welche direkt nach dem Update von CALVIEW kommen. Vorher hatte ich die nicht, daher gehe ich davon aus, dass es damit zutun hat.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

chris1284

#46
ist nicht nonblocking. auf schwachen systemen kann ich mir vorstellen das es je nach kalenderanzahl und größe etwas dauert (weil es ja eigentlich 2 module sind die da arneiten müssen)

nach lesen der doku von blocing würde das auch für calview enormen aufwand bedeuten, egal ob ich die datenabfrage des calendars auslagere oder die gesamte updatefunktion, da blockingcall nur string zurück gibt und leider keine arrays. müsste ich ein wenig drauf rum denken, machbar wäre es die theoretisch möglichen ~12000 readings in strings zu packen

en-trust

#47
Bei mir werden keine Termine mehr angezeigt, nachdem ich den neuen Code mit dem get = all übernommen habe.

Bisher habe ich genutzt.
<div data-type="label" data-device="vCal_Geburtstagskalender" data-get="t_003_bdate" data-color="#FAA460" data-part="(\d\d\.\d\d\.).*" class="normal">

Jetzt wollte ich das vereinfachen, um nicht für jeden TERMIN eine Zeile zu schreiben.
<div data-type="calview" data-device="vCal_Geburtstagskalender" data-get="all" data-max="5" class="cell"></div>

Definiert ist das Ganze...

attr global userattr cmdIcon devStateIcon devStateStyle icon sortby structexclude webCmd widgetOverride
attr global altitude 108
attr global autoload_undefined_devices 1
attr global backup_before_update 0
attr global group Software
attr global logfile /opt/fhem/log/fhem-%Y-%m.log
attr global modpath .
attr global motd none
attr global mseclog 1
attr global room System
attr global sendStatistics never
attr global statefile /opt/fhem/log/fhem.save
attr global uniqueID ./FHEM/FhemUtils/uniqueID
attr global updateInBackground 1
attr global verbose 3
define Geburtstagskalender Calendar ical url https://xxxxxx 21600
attr Geburtstagskalender alias Geburtstagskalender
attr Geburtstagskalender group Kalender
attr Geburtstagskalender hideOlderThan 0
attr Geburtstagskalender room Büro
define vCal_Geburtstagskalender CALVIEW Geburtstagskalender 2 21600
attr vCal_Geburtstagskalender group Kalender
attr vCal_Geburtstagskalender maxreadings 5
attr vCal_Geburtstagskalender modes next
attr vCal_Geburtstagskalender room Büro


Was könnte da noch fehlen ?
Muss dass auch in die cfg ?
attr global exclude_from_update widget_fullcalview.js widget_weekprofile.js widget_calview.js widget_pagebutton.js 59_Wunderground.pm widget_weather.js

chris1284

aktuelles widget aus dem github gladen? hat fhem nach dem kopieren ins fhem verzeichnis rechte darauf (passiert auf pi gerne mal weil man mit user pi kopiert)?

en-trust

Die Rechte stehen bei user auf fhem und bei group auf dialout.

chris1284

du hast keinen
data-detail=["...","..."]

teil definiert, das widget weiss nun zwar es soll alle temrine nehmen, aber nicht welche readingsdavon

du hast die auswahl zwischen folgenden optionen
["bdate", "btime","bdatetimeiso", "summary", "location","edate","etime","edatetimeiso","source","age","description","daysleft","daysleftLong"]

eine einfache view mit nur startdatum und terminüberschrift
<div data-type="calview" data-device="View_All" data-get="all" data-detail='["bdate","summary"]' data-max="5" data-color="red" class="cell"></div>

StephanFHEM

Hallo,

kurze Frage zu CALVIEW und dem Widget. Bisher habe ich den Kalender in TabletUI über eine ReadingsGroup eingebunden. Davon möchte ich aber weg hab aber jetzt das folgende Problem: Über das Notify hab ich in der ReadingsGroup als Datum immer "Heute", "Morgen" oder (wenn der Termin länger hin ist) das Datum stehen. Kann man das bei diesem Widget auch irgendwie einstellen oder muss man damit leben, dass er immer nur das Datum zeigt auch wenns es der heutige Tag ist?

Grüße
Stephan

Mave

Chris,

siehst Du eine Möglichkeit, in das Calview Widget noch eine Formatierung der Spalten einzubauen?

Vielen Dank.

Grüße Mave

chris1284

#53
Zitat von: StephanFHEM am 29 Mai 2017, 12:16:50
Hallo,

kurze Frage zu CALVIEW und dem Widget. Bisher habe ich den Kalender in TabletUI über eine ReadingsGroup eingebunden. Davon möchte ich aber weg hab aber jetzt das folgende Problem: Über das Notify hab ich in der ReadingsGroup als Datum immer "Heute", "Morgen" oder (wenn der Termin länger hin ist) das Datum stehen. Kann man das bei diesem Widget auch irgendwie einstellen oder muss man damit leben, dass er immer nur das Datum zeigt auch wenns es der heutige Tag ist?

Grüße
Stephan

das geht, siehe screenshot.
<div data-type="calview" data-device="View_All" data-get="all" data-detail='["daysleftLong","summary","age"]' data-max="8" class="cell"></div>
alternativ 3 calview-widgets wie folgt (bild 2)
<div data-type="calview" data-device="View_All" data-get="today" data-detail='["bdate","btime","etime","summary","age"]' data-showempty="false" data-max="4" class="cell"></div>
<div data-type="calview" data-device="View_All" data-get="tomorrow" data-detail='["bdate","btime","etime","summary","age"]' data-max="4" class="cell"></div>
<div data-type="calview" data-device="View_All" data-get="tomorrow" data-detail='["bdate","btime","etime","summary","age"]' data-max="4" class="cell"></div>
<div data-type="calview" data-device="View_All" data-get="all" data-detail='["bdate","btime","etime","summary","age"]' data-start="notomorrow" data-max="10" class="cell"></div>


chris1284

Zitat von: Mave am 18 August 2017, 20:30:07
Chris,
siehst Du eine Möglichkeit, in das Calview Widget noch eine Formatierung der Spalten einzubauen?
Vielen Dank.
Grüße Mave
wie stellst du dir die fromatierungsoptionen vor?

Mave

Moin Chris,

vielen Dank für Deine schnelle Rückmeldung.

Im Moment sind alle Spalten gleich breit.
Bei den meisten Terminen wird aber Summary mehr Platz in der Breite beanspruchen als z.B. das Datum oder die Start-/Endzeiten.
Von daher wäre es aus meiner Sicht perfekt, wenn man im Parameter "data-detail" jeweils noch die Breite der Spalte (Prozentwert der Gesamtbreite) angeben könnte.

Desweiteren ist eine Angabe von Sekunden bei den Start- und Endzeiten aus meiner Sicht unnötig. Es wäre schön, wenn das ebenfalls in "data-detail" konfigurierbar wäre bzw. generell nicht angezeigt werden würde.

Zu guter Letzt wäre es noch das Sahnehäubchen auf dem Calview Widget, wenn ganztätige Termine nicht von 00:00:00 bis 00:00:00 angezeigt werden würden sondern ohne Zeitangaben oder mit "ganztägig" oder frei konfigurierbar.

Ach ja, ganz vergessen. Die Kirsche auf dem Sahnehäubchen wäre noch, wenn auch fortlaufende Termine mit Startzeit in der Vergangenheit und Endzeit in der Gegenwart oder Zukunft täglich angezeigt werden würden.
Derzeit behelfe ich mir damit, daß ich in unserem Google Familienkalender alle fortlaufenden Termine (wie z.B. Schulferien) als Ganztagestermin zum Startzeitpunkt anlege und dann entsprechend viele Wiederholungen einstelle. Ein Workaround, der allerdings den WAF nicht gerade steigert.

Vielen Dank.

Grüße Mave

sTaN

Hallo Zusammen,

auch ich suche nach einer Möglichkeit das Calview Widget für mein iPad zu formatieren. (Danke Mave für den Thread Hinweis)
Momentan sieht es wie im angehängten Bild aus.
Die Konfig des Widgets in TabletUI lautet wie folgt:

Code: [Auswählen]
<li data-row="3" data-col="6" data-sizex="4" data-sizey="2" class="">
          <header><div data-type="label" class="normal">Termine</div></header>
            <div   data-type="calview"
                data-device="calview_all"
                data-get="all"
                data-max="7"
                data-detail='["bdate","btime","etime","summary"]'
                data-showempty="true"
                class="top-align">
            </div>
</li>

Ich dachte mit der Klasse top-align im Div Container wird zumindest der Text am oberen Rand der Zelle angezeigt aber dem ist leider nicht so. Er macht es immer zentriert zur Start- und Endzeit.
Weiterhin finde ich keine Möglichkeit den Text der Kalendereinträge zu verkürzen, sodass er mir die Tabellenspalten nicht zerschießt. Dies soll idealerweise immer gleich sein und wenn der Text zu lang ist einfach abschneiden. Ist dies mit dem Calview Widget möglich?

Sprich ich wünsche gern eine Zeile pro Eintrag. Wenn dieser zu lang ist, soll der Text abgeschnitten werden.

Über Hilfe wäre ich dankbar!

Viele Grüße
sTaN
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover

Vaddi

Du könntest das mit einer normalen table lösen.
In deiner index, bzw. da wo das widget angezeigt werden soll

<li data-row="1" data-col="1" data-sizex="5" data-sizey="3" data-template="content/vkalender.html"></li>

und in der vkalender.html folgendes
<table class="medium" height="90%" width="100%" style="font-size:100%">
        <tr>
    <td>
            <div data-type="label" data-substitution="toDate().ee()" data-device="vKalender" data-get="t_001_bdate"></div>
            </td>
            <td>
            <div data-type="label" data-device="vKalender" data-get="t_001_bdate" data-part="(\d\d\.\d\d\.).*"></div>
            </td>
            <td>
                <div data-type="label" data-device="vKalender" data-get="t_001_btime" data-part="(\d\d\:\d\d).*"></div>
</td>
<td>
                <div data-type="label" data-device="vKalender" data-get="t_001_etime" data-part="(\d\d\:\d\d).*"></div>
</td>
            <td class="r"><div data-type="label" data-device="vKalender" data-get="t_001_summary" style="min-width:14em;"></div></td>
        </tr>
        <tr>
<td>
            <div data-type="label" data-substitution="toDate().ee()" data-device="vKalender" data-get="t_002_bdate"></div>
            </td>
            <td>
            <div data-type="label" data-device="vKalender" data-get="t_002_bdate" data-part="(\d\d\.\d\d\.).*"></div>
            </td>
            <td>
                <div data-type="label" data-device="vKalender" data-get="t_002_btime" data-part="(\d\d\:\d\d).*"></div>
</td>
<td>
                <div data-type="label" data-device="vKalender" data-get="t_002_etime" data-part="(\d\d\:\d\d).*"></div>
            </td>
            <td class="r"><div data-type="label" data-device="vKalender" data-get="t_002_summary" ></div></td>
        </tr>
</table>

usw...


Durch das data-substitution="toDate().ee()" wird das Datum in den jeweiligen Wochentag umgewandelt.
fhem auf RPi 3
HM-MOD-RPI-PCB sowie 433mhz Sender
Mehrere HM und 433mhz Produkte

Mave

Zitat von: chris1284 am 19 August 2017, 18:53:22
wie stellst du dir die fromatierungsoptionen vor?


Hallo Chris,

wie stehen die Chancen, dass Du die Formatierungsvorschläge in das Widget mit aufnimmst?

Vielen Dank.

Grüße Mave

chris1284

#59
in der nächsten woche habe ich urlaub und wollte mich der sache annehmen. die "tabellenformatierung" (ich hatte an eine angabe der breite je spalte in % gedacht ) wäre dann optional zum standard