57_SSCal - Modul für den Synology Kalender

Begonnen von DS_Starter, 03 Januar 2020, 09:54:09

Vorheriges Thema - Nächstes Thema

DS_Starter

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

#31
Zitat von: DS_Starter am 04 Februar 2020, 21:57:08
:D ... und jetzt wollte ich dir was gutes tun. Aber so kommst du mal zu einer ktuellen JSON.  ;)

Ja, odd/even is klar ... ist das gut ? Ich war mir nicht so sicher ...
naja war vllt doch nocht so schlecht die alte zu haben, ich könnte wetten damit sind noch mehr unterwegs.
ich denke es es keine Frage von gut oder schlecht sondern irgendwie FHEM Standart bei Listen (siehe Internals/Readings) immer den hell/dunkel Wechsel zu haben.
IMHO erhöht es die Lesbarkeit, aber das ist vermutlich auch Ansichtssache denn letztes Jahr beim SMA Thema habe ich gelernt das es FHEM Styles gibt die in beiden Klassen den gleichen Farbwert nutzen.

Edit : Stichwort Lesbarkeit
Ich tue mir immer etwas schwer mit den FHEM Datum/Zeit Strings , besonderes wenn auch noch zwei direkt hinter einander stehen wie bei Begin - End
kannst ja mal das testen ( vor der Ausgabe von $end )
$end = substr($end,11,8) if (substr($begin,0,10) eq substr($end,0,10));
damit haben Termine die am gleichen Tag enden nur die Uhrzeit, Damit das auch hübsch wird muss man noch an das TD ran und align='right' dazupacken.
Ich war erst verwundert das es nicht griff  und habe da auf deine class='sscal' ganz verzichtet. Nur aus Neugier warum setzt du die überhaupt in der Table ?

Und noch so ne blöde Idee :  wenn das Datum heute oder morgen ist es nicht anzeigen und durch den String heute / morgen ersetzen, eventuell via Attribut ein/aus schalltbar

Edit 2 : Im SMAPortal hast du bei allen Text Ausgaben immer global language geprüft , wäre hier für vllt auch angebacht für die Überschrift ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

Morgen Wzut,

danke für deine guten Vorschläge. Die schaue ich mir heute Abend gleich mal mit an. Bin ja immer noch am schrauben an der Übersicht und habe da auch noch eine Idee. Den Style in der Table hatte ich mal bei rumprobieren gesetzt, hatte es dann auch rausgenommen weil sinnlos. Aktuell sind nur TD... definiert und in den <td> gesetzt.
Der Language check kommt auch noch  :)

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

@Wzut, habe alle deine Vorschläge umgesetzt. Auch der language Support ist drin.

Schaut mal wie es euch gefällt ...  :)

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

na schaut doch super aus !
Ich habe das SSCAL auf meinen Testystem laufen und dort sind auch noch vom Sommer die ganzen FHEM Styles drauf als das SMA HTML Thema aktuell war.
Ich habe sie nun wieder durchprobiert und es ist das gleiche wie damals in grün. Je nach Style sieht die HTML Tabelle etwas anderes aus,
bzw. bei den bekannten Problemkindern sogar nicht schön. Wenn du möchtest teste ich wieder die Ausgabe und mache dir Vorschläge für Klassen die dafür sorgen immer ein nahezu einheitliche Desgin der Tabelle zu bekommen. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

Hallo Wzut,

Ja, kannst du gern machen, würde mich freuen.
Ich kümmere mich dann noch um ein paar inhaltliche Themen die mir noch fehlen.

Grüsse,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

here are the results of the german jury :
a. manche Styles sind echt zickig wenn auf eine rechtsbündige TD direkt eine linksbündige folgt. Die haben so wenig Abstand zwischen Text und Rand in ihren TD Klassen definiert das die Buchstaben beider Zellen wie ein Wort aneinander kleben. Abstand bekommt man dann entweder durch setzen von border=1 in TABLE
oder man verzichtet ab der dritten Spalte auf linksbündige Ausgabe und zentriert alle. ( finde ich gar nicht so schlecht )

b. deine beiden $out .= "<tr><td>  </td></tr> erzeugen entweder über der ersten Tabellenzeile zwei Streifen oder aber die erste Zeile ist höher als die nachfolgenden. Ich würde ganz auf beide verzichten oder wenn die erste Zeile wirklich höher sein soll als die anderen direkt deren Höhe beinflussen.

c. ich würde auch auf den Einsatz der Klasse calw150 ganz verzichten und den Styles (besonders denen für Small Screens ) keine Vorschriften über Spaltenbereite machen. Genau diese brechen schon um Platz zu sparen Datum & Zeit der ersten beiden Spalten Trenn Leerzeichen um.

d. Du hast in der Überschrift bei Completion und dem nachfolgendem % ein <br>  das führt dazu das diese Ausgabe horizontal etwas aus der Reihe tanzt.
Ich würde entweder das <BR> durch ein &nbsp; ersetzen oder wenn es bleiben soll für alle TDs der Überschrift valign=top einsetzen.

e. das Weltkugel Icon bei Map : Würde ich dem User zur Wahl stellen ob Icon oder Text bzw. via Attribut mapicon ihn ganz frei wählen lassen welches Icon

f. Stichwort Icon(s) : wäre es nicht schön auch bei  Completion einen horizontalen Fortschrittsbalken zu haben ?
Man könnte entweder tricksen wie beim SMAPortal und mit gefärbten TDs arbeiten oder einen Satz neuer Icons (4 oder 10) einsetzen die  analog zu den heutigen Tor / Rollo % Icons das abbilden. ( Ich kann dir ja mal 5 svgs  [0,25,50,75,100] "malen" )
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

Hallo Wzut, @all,

wieder mal danke für deine Analyse  :)  Habe so einiges umgesetzt:

a) die rechtsbündige Formatierung ist komplett raus.

b) Diese beiden zeilen habe ich entfernt

c) habe ich auch entfernt, damit Datum/Zeit nicht umbrechen, stelle ich sie in separaten Feldern dar. Funktioniert dann hoffentlich auch in den anderen Styles so wie gewünscht.

d) ist mit &nbsp; ersetzt -> passt

e) sehr  umfassend und passend auf weitere Funktionalitäten umgebaut -> erläuternder Text unten

f) so ein Fortschrittsbalken fände ich super und nehme dein "Malangebot" auch gerne an.  :) Schade ist allerdings, dass der Syno-Kalender bzw. die API zur Zeit nur 0 oder 100% kennt. Abstufungen gibt es dabei nicht. Ich weiß nicht on Syno da noch etwas vorhat. Vllt. kann ich auch einen Featererequest platzieren, aber zur Zeit sagt die API Doku nur 0 oder 100. (Zwischenstufen könnte natürlich einfach mal testen, vllt. haben wir ja Glück und es geht auch das).

Bezüglich der MapIcons ist jetzt folgendes implementiert.
Mit dem Attribut tableColumnMap legt man fest ob ma in der Tabellenspalte "Map" ein Icon (Standard), einen Text  oder mit "data" die gespeicherten Koordinaten sehen möchte.
Die Eigenschaften von Icon und Text wird in einem Hash via Attribut tableSpecs festgelegt:


{
  "columnMapIcon"     => "it_i-net",
  "columnMapText"     => "Hier gehts zur Karte",
  "columnMapProvider" => "GoogleMaps",                           # OpenStreetMap oder GoogleMaps
}


In columnMapIcon hinterlegt man den Namen des gewünschten Icons. Mit columnMapText kann man den Text eingeben den man sehen möchte wenn man mit Attribut tableColumnMap "Text" auswählt.
Und zu guter letzt kann mit columnMapProvider kann man entweder GoogleMaps (Sandard) oder  OpenStreetMap definieren.

Wer da Ähnlichkeiten mit readingsGroup erahnt, täuscht sich nicht.  :D
Das war auch einer meiner Gründe es so zu gestalten weil readingsGroup mit über 3000 Usern sehr verbreitet und die Syntax bekannt ist.

Außerdem ist es gut erweiterbar denn ich habe noch die Vision, die einzelnen Events mit Kontext/Inhaltsabhängigen Icons versehen zu können. Die Möglichkeiten kann man über diesen Hash noch einbauen ... hab schon einen Plan ...

Aber würde mich freuen wieder Meinungen zu hören ...

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

c.) damit umgehst du zwar das eine Problem gibst aber den Small Screen Styles jetzt keine Chance mehr in der Breite wertvollen Platz einzusparen.
(müsste sich mal jemand mit dem Smartphone und entsprechenden Style anschauen )

f.) das is ja doof das die nur 0 oder 100 liefern :( Als Abhilfe könnte man natürlich anhand Start, Ende & Jetzt selbst die Prozentzahl bestimmen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

c) Bei dem Start/Ende Datum/Zeit war bzw. ist mir wichtig dass die nicht umbrechen. Das finde ich äußerst unschön bzw. störend beim Lesen der Tabelle.
Aber ich probiere das auch mal mit meinem Tel aus. Man kann natürlich immer die Felderanzahl mit dem Attr calOverviewFields reduzieren wenn nötig.

f) naja nicht nur liefern, sondern auch setzen. Man kann den Erfüllungsgrad auch nur bei den Tasks setzen/lesen, Terminkalender kennt dieses Eigenschaft nicht. Selbst durch Start/Ende bestimmen wird auch schwierig weil man bei den Tasks nicht zwingend Start/Ende angeben muss. Mehrheitlich werden diese Einträge wahrscheinlich sogar ohne Zeit stehen.

Wenn du zu c) vllt. noch Ideen hast ... gerne  :)

LG,
Heiko

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Einfall ... ich könnte eine Eigenschaft "smallScreen" einführen die man in tablSpecs setzen kann. Wenn gesetzt werden (umbrechbare) Datumfelder erstellt .
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Ich habe jetzt eine Eigenschaft "smallScreen" hinzugefügt mit der man den Tabellenaufbau steuern kann.
via Attribut tableSpecs sieht das dann so aus:


{
  "columnMapIcon"     => "it_i-net",
  "columnMapText"     => "Hier gehts zur Karte",
  "columnMapProvider" => "GoogleMaps",                           # OpenStreetMap oder GoogleMaps
  "smallScreen"       => "1",
}


Denke damit kann jeder User seine bevorzugte Variante einstellen.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

klar das kann man so machen, allerdings legt man sich so direkt für alle Endgeräte einheitlich fest.
Mein Verständis ( alte Styles und mehere WEB Devices ) -> je nach Port unterschiedlicher Style möglich
Sonderrolle f18 mit nur noch einem WEB Port -> FHEM erkennt welches Endgerät zugreift und wechselt die Darstellung selbstständig
aber bevor ich jetzt da was falsches sage lieber nochmal Rudi fragen

Beim SMAPortal war ich auch mal an einem Punkt wo ich vorhatte auszulesen welcher Styletyp gerade angesprochen wird und damit die Ausgabe zu steuern
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

#43
Ja, da hast du recht Wzut. Ich könnte ja direkt aus dem verwendeten FW-Device das stylesheetPrefix Attr auslesen und dann entsprechend zu steuern -> alles was small im Value trägt bekommt small ...
Nö einfacher ... in der Eigenschaft smallScreen kann der Nutzer die Styles eintragen, bei denen er die Smallscreen Tabelle haben möchte. Total flexibel ...

Die einzelnen Ports im FW sind ja meines Wissens auch nicht fest einem bestimmten Devicetyp zugeordnet, auch wenn es sich vermutlich ein quasi Standard etabliert hat ?

Ich glaube diese Steuerung stelle ich noch etwas zurück bis ich inhaltlich soweit durch bin.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Habe die Attribute calOverviewFields, calOverviewInDetail, calOverviewInRoom umbenannt in  tableFields, tableInDetail, tableInRoom. Das Wiki ist aktualisiert.

Das passt einfach besser in den Gesamtkontext mit tableSpecs und tableColumnMap.

Sorry wenn es Umstände beim Test bereitet, aber im Zuge des Modulaufbaus kommen immer mal wieder neue Erkenntnisse in die Umsetzung.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter