Neues FTUI Widget - fullcalview - Kalenderanzeige (ab FTUI 2.2)

Begonnen von h3llsp4wn, 01 Februar 2016, 17:24:29

Vorheriges Thema - Nächstes Thema

h3llsp4wn

----------- UPDATE --------------

Aktuelle Version (Bugfix für Anzeige der Serientermine bei Update vom Kalender)
Stand: 07.10.2017 - V 1.52

----------- UPDATE --------------

Aktuelle Version (zusätzlichen Renderaufruf hinzgefügt)
Stand: 06.10.2017 - V 1.51

----------- UPDATE --------------

Aktuelle Version (Bugfix Serientermine)
Stand: 05.10.2017 - V 1.5

----------- UPDATE --------------

Aktuelle Version (fixed Bug in Chrome/ical.min.js, small URL request bug fixed)
Stand: 03.10.2017 - V 1.4

----------- UPDATE --------------

Aktuelle Version (Kalender Toggle kpl. umgebaut auf fullcalendar event, kein Neuaufbau des Kalenders mehr, nur noch bei Update)
Stand: 03.10.2017 - V 1.3

----------- UPDATE --------------

Aktuelle Version (code cleanup, event für ALL Button ergänzt, INIT/UPDATE handling geändert)
Stand: 03.10.2017 - V 1.2

----------- UPDATE --------------

Aktuelle Version (ical update, Nutzung der min.js Versionen im Widget, bugfix event übergabe)
Stand: 02.10.2017 - V 1.1

----------- UPDATE --------------

Aktuelle Version (fullcalendar 3.5.1, Anpassungen Widget)
Stand: 02.10.2017 - V 0.9

Änderung:
- Kalender können jetzt über die Buttons ein-/ausgeblendet werden

----------- UPDATE --------------

Aktuelle Version (fullcalendar 2.8.0, ical-Update, Anpassungen fullcalview)
Stand: 19.05.2017 - V 0.8

----------- UPDATE --------------

Achtung - diese Version unterstützt nur noch FTUI ab Version 2.2 aufwärts!

----------- UPDATE --------------

Hallo zusammen,

ich habe mich auf Anregung von setstate dazu durchgerungen meinen Widget-Versuch zu starten. Da ich kein JS Guru bin, ist da sicherlich noch Potential drin ... aber für die, die sonst keine Darstellung des Kalenders haben ist es ggf. hilfreich.

Die Kalenderdarstellung selbst basiert auf fullcalendar.io - in Bezug auf das Widget habe ich nur
einige Grundfunktionen umgesetzt, ggf. können wir das noch erweitern, so denn Bedarf besteht.

Zur Installation - benötigt wird:

Das ganze sieht dann so aus wie im Bild aus.


Im Template ist es wie folgt zu konfigurieren (Beispiel):

<div data-type="fullcalview"
data-device='["Abfall","meinKalender"]'
data-defaultview="basicWeek"
data-eventlimit="true"
data-timeformat="H:mm"
data-lang="de"
data-weeknumbers="true"
data-headerleft="title"
data-headercenter=""
data-headerright="today month basicWeek prev,next"
data-contentheight="425"
data-eventcolors='["red","#E6FF57"]'
data-eventtextcolors='["white","black"]'
data-show_url="true"
class="darker small inline"/>



  • device - Kalender (einzeln) oder Array von anzuzeigenden Kalendern - muss dann auch entsprechend mit den Werten/Array für die Farben korrespondieren
  • defaultview - ist die Standardansicht - kann folgende einnehmen (month, basicWeek, basicDay)
  • eventlimit - beschränkt auf eine Anzahl Einträge (true, false oder numeric - z.B. 3)
  • timeformat - Zeitformat
  • lang - Sprachkürzel (de, en, etc.)
  • weeknummbers - Kalenderwochen anzeigen (true, false)
  • headerleft, headercenter, headerright    - Anzuzeigende Daten und Button (today month basicWeek prev,next) title - ich sehe gerade, dass ich das titleFormat vergessen habe - kommt dann in einem Update
  • contentheight - Höhe des Kalenders (falls fix zu setzen)
  • contentwidth - Breite des Kalenders (falls fix zu setzen)
  • eventcolors - Hintergrundfarbe des Kalender-Eintrags - Array mit zu verwendendne Farben - bei einem Kalender kann auch ein Wert einzeln angegeben werden
  • eventtextcolors - Textfarbe des Kalender-Eintrags - Array mit zu verwendendne Farben - bei einem Kalender kann auch ein Wert einzeln angegeben werden
  • show_url - Anzeige der URL bei Terminen - true oder false (default)

Die Farbe des aktuellen Tages kann im \fullcalendar\fullcalendar.css geändert werden:


.fc-unthemed .fc-today {
background: #A6BF17;
}



Fragen/Anregungen/Kritik/Testfeedback/Verbesserungsvorschläge nehme ich gerne entgegen :)

@setstate - bitte schau mal drüber, was nicht gefällt/passt kann ich dann noch ändern.


Cheers,

h3ll  ;)


Änderungen:
- 'get'-Definition nicht mehr erforderlich
- 'fhemweb_url' - wird unterstützt
- 'show_url' - kann auf true oder false gesetzt werden (default ist false), d.h. es werden keine Links/URLs mehr auf die Einträge im Kalender gelegt.
Bei true - verhalten wir vorab - ruft dann natürlich nicht mehr das Popup auf ...
- bugfixes von joesy - thank's again

Weitere Fixes:
- Serienterminen ohne Endzeitpunkt werden angezeigt
- kleinere Format-Fehler/Warnings behoben (jshint)
- use strict
- Testversion mit weiteren Anpassungen bzgl. Kompatibilität (fullcalview_test.zip)

ToDo:
@joesy:
- Anzeige mehrerer Kalender - ggf. als Drop-Down wg. Platzmangel?
- Löschen/Verbergen wiederkehrende Termine
- Markierung/Agenda - angezeigte Termine

chris1284

unschön hier die 57_Calendar.pm anzuhängen weil:
-sie per fhem update verteilt wird und in jedem fhem per default enthalten ist
-sie von wem anderst gepflegt wird (Dr. Boris Neubert)
-sie am 07.02. wohl ein update erfährt mit dem dann dein widget wohl nicht mehr funktionieren wird

h3llsp4wn

Das hab ich mir fast gedacht ... Danke für das Feedback - gibt es einen "Prozess", wie ich einen "Change" bei Dr. Boris Neubert anfragen kann? Ich wollte hier auf keinen Fall jemandem in die Karten/Verantwortung pfuschen, dachte nur, dass nicht jeder alles selbst umbauen kann/will. Wenn es nicht OK ist, dann lösche ich die 57_Calendar.pm auch wieder - ich könnte ja auch manuell die Änderungen dokumentieren, wäre das OK?


chris1284

naja, du kannst ihn einfach anschreiben. http://forum.fhem.de/index.php/topic,46608.0.html da kannst du dir schonmal die neue version ansehen.
an der alten version wird er denke ich nichts mehr machen

zap

Zitat von: h3llsp4wn am 01 Februar 2016, 17:37:44
Das hab ich mir fast gedacht ... Danke für das Feedback - gibt es einen "Prozess", wie ich einen "Change" bei Dr. Boris Neubert anfragen kann? Ich wollte hier auf keinen Fall jemandem in die Karten/Verantwortung pfuschen, dachte nur, dass nicht jeder alles selbst umbauen kann/will. Wenn es nicht OK ist, dann lösche ich die 57_Calendar.pm auch wieder - ich könnte ja auch manuell die Änderungen dokumentieren, wäre das OK?

Warte bis das neue Modul da ist. Dann passe das an und erstelle ein Diff File. Das schickst Du dem Autor, damit er sehen kann, was Du geändert hast. Wenn er die Änderungen für gut befindet, kann er sie per patch Befehl einfach übérnehmen.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

h3llsp4wn

Hallo zusammen,

danke für den Hinweis. Ich habe Boris jetzt schon mal angeschrieben. Werde dann wohl die neue Version und seine Rückmeldung abwarten.


Cheers,

h3ll

kvo1

ZitatDas Kalender-Modul habe ich um eine JSON-Ausgabe erweitert, damit der TabletUI/Fullcalendar entsprechend versorgt werden können
Die Idee des Widget find ich nicht schlecht,aber dafür immer das Kalender-Modul zu patchen ist nicht so optimal.
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

setstate

#7
@h3ll

update: function (dev,par) {
$('#calendar').fullCalendar( 'refetchEvents' );
console.log('Calendar updated.');
    }


Damit wird der Kalender bei jedem Event, egal von welchem Widget, refresht. Wenn der Kalender das einzige Widget auf der Seite ist, kein Problem. Wenn noch weitere Widgets dabei sind, könnten zu viele Refreshs auftreten.

Man muss bei Update noch filtern. Erst einmal nur alle Elemente dieses Widget Types und dann ob das Device + Reading des Updates auch bei einem data-* dabei ist:

        this.elements.filterDeviceReading('get',dev,par)
        .each(function(index) { ...

h3llsp4wn

@setstate:

Danke - das habe ich nicht verstanden und mich über die vielen Updates gewundert :) ... werde ich mir anschauen und einbauen :)

Jens_B

Hi h3llsp4wn,

Würde es Dir was ausmachen, deine ftui Oberfläche als Demo zr Verfügung zu stellen?

Gruß
jens
RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax

h3llsp4wn

Hallo Jens,

ich hab' meine Oberfläche im Demo-Thread hochgeladen.

Siehe hier:
http://forum.fhem.de/index.php/topic,37378.315.html

Cheers,

h3ll

Jens_B

#11
Hi h3llsp4wn,

Danke:-)

Ich frage mich gerad wie ihr alle das so toll hinbekommt, und wieviel Zeit ihr investiert.
Bei mir sieht das lange nicht so toll aus.
So viele Fragen, wo zum Beispiel finde ich die Bezeichnungen für die Icons? So eine Übersicht Icon/dazugehörige Bezeichnung gibts das irgendwo?

Gruß
Jens
RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax

Jens_B

Hallo Zusammen,
ich habe das jetzt mal versucht. Aber ich bekomme auf dem Kalender keine Termine angezeigt.
Muß ich noch das modifiziert Calendar Modul nehmen um das Ganze zum laufen zu bekommen?
Es ist ja ein aktualisierte 57_Calendar.pm vor ein paar Tagen als Update gekommen, ich würde das jetzt ungern mit dem modifizierten aus dem Thread hier ersetzen, ich schätze das dann nämlich das Abfall Modul nicht mehr funktioniert.

Gruß
Jens
RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax

roman1528

Moin.

Also ein Modul zu modifizieren ist irgendwie Schrott....

Ansonsten tolle Arbeit h3llsp4wn :)

Kannst du nicht auf ein CALVIEW-Device zugreifen? Dann muss man zwar zwingend eins anlegen... aber ich glaube wer Calendar nutzt, nutzt auch CALVIEW...

Grüße^^

P.S. Wollt mir das heute eigentlich mal anschauen... Aber mit dem Modultausch? Neee... habe so schon 2 Module, die ich zur Zeit nach jedem Update ersetzen muss....
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

kvo1

Hallo h3llsp4wn,

ZitatKannst du nicht auf ein CALVIEW-Device zugreifen? Dann muss man zwar zwingend eins anlegen... aber ich glaube wer Calendar nutzt, nutzt auch CALVIEW...

da kann ich mich Roman1528 leider nur anschließen. Die Idee auf ein CALVIEW-Device aufzubauen oder zumindest mit dem aktuellen Calendar
zu arbeiten sehe ich genau so. Aber sonst, wie gesagt, Daumen hoch !

kvo1
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB