FHEM Forum

FHEM => Frontends => Thema gestartet von: peterk_de am 14 Dezember 2014, 01:12:33

Titel: nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 14 Dezember 2014, 01:12:33
Die Lösung mit Anleitung gibt es im zweiten Posting :-)

---

Hallo zusammen,

bevor ich mich selbst ransetze, will ich der Gefahr begegnen, das Rad neu zu erfinden: In meinem Floorplan und auch an einigen Stellen im FHEM-Web lasse ich mir gerne Zeitpunkte von Ereignissen anzeigen (z.B. wann wurde zuletzt der Testalarm beim Rauchmelder ausgelöst, wann wurde die Türklingel betätigt etc.).

Aktuell mache ich das per Attribut showtime, per Userreading, per stateFormat / ReadingsTimestamp oder halt mit dem eingebauten Template im Floorplan. Klappt soweit auch, nur ist die absolute Zeit - insbesondere im Floorplan - echt sperrig und das Lesen dauert unnötig lang.

Ich hätte hier gerne eine Angabe à la "vor 3h", "vor 5 min", "gestern, 17:00 Uhr", "vor n Tagen" etc. Und das ganze sollte natürlich im Floorplan live mitlaufen (denn eine Aktualisierung ist ja auch nötig, wenn kein neues Event kommt --> Javascript). Hat da jemand zufällig schoneimal so etwas gebastelt? Ich hab da bislang nichts nennenswertes gefunden.
Titel: nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 06 Januar 2015, 23:58:36
OK, ein paar Wochen später und noch keine Meldung, das schrie dann doch nach einem eigenen kleinen Projekt ... und hier ist es nun. Ich habe im Prinzip die oben genannten  Anforderungen von mir komplett umgesetzt - plus x:


Installation


Konfiguration


Die Konfiguration erfolgt über ein JSON-Objekt, das ihr eurer FHEM-Web Instanz (oder eurem Floorplan) über das Attribut "nicedatesParam" mitgebt, z.B.:

attr meinefhemwebinstanz nicedatesParam {"locale" : "de", "mode" : "fromNow","verbose" : "4"}

Für einen Floorplan nehmt ihr die Änderungen genauso vor - jeder Floorplan kann (und muss) also seine eigenen Einstellungen bekommen. Die Änderungen werden spätestens nach einem Seitenreload übernommen. Folgende Settings könnt ihr vornehmen (bitte entschuldigt, ich hatte es zuerst in Englisch geschrieben und bin nun zu faul es zu übersetzen) - es sind die Default-Werte mit angegeben, falls ihr den entsprechenden Wert nicht überschreibt:


{
  // output language. Possible Values: see moment.js documentation.
  locale : "en",
 
  // Display mode. One of the following 3 options - see moment.js documentation for details
  //   fromNow: e.g. 45 minutes ago
  //   calendar: e.g. Last Monday 2:30 AM
  //   format: Absolute Date; use formatString below
  mode   : "calendar",
  formatString : "dddd, MMMM Do YYYY, h:mm:ss a",               
 
  // search scope:  "" (empty) replaces each and every Timestamp in FHEMWEB (default)
  //   "regex" replaces Timestamps based on regular Expression.
  //   The value of the attributes id, informid or class of the
  //   element containing the timestamp or one of its parent-nodes
  //   must match regex (case insensitive). Example:
  //      replace: 'readingsgroup',
  //      ...only replaces Timestamps in a Readingsgroup-Table 
  searchScope: "",

  // Regex matching the timestamps as they appear in FHEMWEB (and hopefully not in Logfiles etc.)
  // You may possibly need to change this to match your installation.
  timestampRegex: "(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})",
 
  // Update timestamps by Timer - no Page-Refresh or longpoll is required for up-to-date relative times then.
  // ignored when mode is "format" because no timed updates necessary here
  timed_updates : true,     
  timed_updates_interval : 10,  // Timer refresh intervall in Seconds.
 
  // Update Timestamps on longpoll events. Can be left on even longpoll in FHEM is deactivated - should do no harm.
  longpoll_updates : true,     
 
  // Logging verbosity. Default value is sometimes used even
  // when it is overridden (during start up before loading user attributes). Range 1...5 as known from FHEM.
  verbose : 3             




Ich würde mich freuen, wenn ihr das mal ordentlich durchtestet - bei Problemen bitte verbose wie oben beschrieben auf 5 setzen und einen Blick in die Javascript-Konsole des Browsers werfen und ggf. anhängen. Es gibt sicher noch viele Bugs zu entdecken - also viel Spaß ;-)

Edit

Die neueste stabile Version hängt immer an diesem Posting, Zwischenversionen sind in Beiträgen im Thread zu finden.


// Version History
// 0.1 - 2015-01-06a:  - initially posted Release.
// 0.2 - 2015-01-20:   - now requires FHEM Version from 2015-01-17 or newer (run update!)
//                              - fixed Regex to not change timestamps in Filelog-Textdisplay
//                             - new Parameter "timestampRegex" that makes this Regex user-configurable
//                             - excluded HTML-Textarea and -Input elements from replacements
//                             - refactored script startup using FHEMweb-Umbau
// 0.2.1 - 2015-01-21:  - Fixed Compatibility Issue with other .js-widgets
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: rapster am 07 Januar 2015, 00:08:22
Danke für deine Mühe, wird definitiv diese Woche noch angetestet, sehr cool! 8)
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: rudolfkoenig am 07 Januar 2015, 08:36:26
Koennt ihr das bitte auch mit dem FHEMWEB_JS_UMBAU SVN-Branch testen, die Aenderungen sollten in den naechsten Tagen im trunk landen. Das longpoll Mechanismus aendert sich leicht, und updateLine ist "unerwuenscht" (deprecated), obwohl sie noch funktionieren sollte. jquery wird immer geladen, und loadScript sollte jetzt zuverlaessiger sein.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 17 Januar 2015, 00:53:17
Cool. Funktioniert (FHEM Update gestern). War ein bisschen ein Gefummel, das gemeinsam mit einer CALVIEW readingsgroup hinzukriegen, aber klappt.

Danke!

Grüße,

Oli
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 17 Januar 2015, 08:39:58
Oh das freut mich, mit Zeitpunkten in der Zukunft hatte ich es noch gar nicht getestet :-) Was musstest du denn hinfummeln?

Das Umbau-Update hat bei mir auch keine Probleme verursacht, im Webinterface geht es nach wie vor, nur der Floorplan macht noch Probleme (tat er aber schon vorher) da bin ich noch auf der Suche. Auf den neuen Updatemechanismus baue ich es auch noch um.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 17 Januar 2015, 09:05:22

Zitat von: peterk_de am 17 Januar 2015, 08:39:58Was musstest du denn hinfummeln?
In der readingsgroup für CALVIEW kommt das Datum ohne das absolute-timestamp Attribut, daher musste ich mir das per ValueStyle dazu basteln.

Zitatnur der Floorplan macht noch Probleme (tat er aber schon vorher)

nutze ich nicht ;-)

ZitatAuf den neuen Updatemechanismus baue ich es auch noch um.
das teste ich dann gerne auch

Grüße,

Oli
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 17 Januar 2015, 19:52:43
Zitat von: rudolfkoenig am 07 Januar 2015, 08:36:26
Koennt ihr das bitte auch mit dem FHEMWEB_JS_UMBAU SVN-Branch testen, die Aenderungen sollten in den naechsten Tagen im trunk landen. Das longpoll Mechanismus aendert sich leicht, und updateLine ist "unerwuenscht" (deprecated), obwohl sie noch funktionieren sollte. jquery wird immer geladen, und loadScript sollte jetzt zuverlaessiger sein.

Hi Rudi,ich bin gerade dabei das auf die Änderungen anzupassen und habe dabei Probleme mit dem Floorplan. Im Developer Forum schriebst du:

Zitat
Man kann sowohl alles in www/pgm2 einchecken, dann wird fhemweb_knob.js automatisch laden. Oder man packt es nach www/knob, dann muss der Anwender das FHEMWEB JavaScripts Attribut spezifizieren. Auf diesem Weg kann man auch FHEM-Attribute spezifizieren (XXXParam, wobei XXX.js das spezifizierte JavaScript is), das ist mAn aber gar nicht notwendig, weil man die Parameter besser nach dem "knob" spezifizieren kann.

Nutze ich die erste Variante (www/pgm2/fhemweb_nicedates.js), wird meine Javascript-Datei immer geladen (auch im Floorplan); ich kann dann aber  keine Param-Attribute spezifizieren, die ich aber schon an irgendeiner Stelle benötige (Sprache etc.). Nutze ich die zweite Methode (www/nicedates/fhem_nicedates.js), wird die Javascript-Datei im Floorplan nicht geladen (wo sie aber m.E. am meisten Sinn macht), auch wenn ich sie im JavaScript-Attribut korrekt angebe (im normalen FHEMweb aber schon), dafür kann ich nun die XXXParam-Attribute angeben.

Ist dieses Verhalten gewollt? Oder kann ich irgendwie die zweite (schönere) Methode dazu überreden, das .js auch im Floorplan zu laden? LG!
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: rudolfkoenig am 17 Januar 2015, 20:15:02
1. Stimmt, ind diesem Fall kann man keine Parameter spezifizieren.
2. Das muesste mit dem aktuellen (== seit heute frueh per update verfuegbaren) FLOORPLAN gehen, dank andres FLOORPLAN patch. Allerdings muss man die noetigen Attribute fuer FLOORPLAN per userattr "manuell" erlauben.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 17 Januar 2015, 21:48:15
Zitat von: rudolfkoenig am 17 Januar 2015, 20:15:02
1. Stimmt, ind diesem Fall kann man keine Parameter spezifizieren.
2. Das muesste mit dem aktuellen (== seit heute frueh per update verfuegbaren) FLOORPLAN gehen, dank andres FLOORPLAN patch. Allerdings muss man die noetigen Attribute fuer FLOORPLAN per userattr "manuell" erlauben.

Jupp. Das war's. Nach dem Update läuft es auch im Floorplan fantastisch. Ich habe das Eingangsposting entsprechend angepasst.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: Cybers am 18 Januar 2015, 08:07:28
@KernSani
kannst du mir den Code für Calview Readinggroup bzw. das Define geben?
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 18 Januar 2015, 22:16:10
Einbau in CALVIEW:

Warnung: Ich verwende CALVIEW im Wesentlichen für den Abfallkalender + Schulferien, also ganztägige Termine. Daher wird die Uhrzeit hier nicht berücksichtigt.

Voraussetzung: CALVIEW (neueste Version, nicht mehr die, die das Datum als readingsnamen verwendet) mit entsprechender Readingsgroup ist bereits am Laufen. Nicedates ist am Laufen.

DEF der Readingsgroup:
AbfallKalView:t_001_bdate,t_001_summary AbfallKalView:t_002_bdate,t_002_summary AbfallKalView:t_003_bdate,t_003_summary
"AbfallKalView" ist natürlich durch den eigenen CALVIEW zu ersetzen. Dies liefert die nächsten drei Termine, bei Bedarf einfach erweitern,

timestamp formatieren und als HTML-attribut mitgeben über das valueStyle-Attribut der readingsgroup (hier wird zusätzlich die Ausgabe noch anders farblich dargestellt, wenn ein Termin heute ist):
{my ($myStyle) = "data-absolute-timestamp='".formatCalDate($VALUE)."'"; if ($VALUE eq localtime("%d.%m.%Y")) {$myStyle.=" style='color: rgb(110,186,110)'";}; return $myStyle}

formatCalDate is eine Funktion, die ich eigentlich mal zu einem anderen Zweck geschrieben habe, aber hier wiederverwende. Einfügen in 99_myUtils.pm:
sub formatCalDate {
use Time::Piece;
my ($d,$f) = @_;
my ($dt) = Time::Piece->strptime($d,'%d.%m.%Y');
if(!$f) {$f="%Y-%m-%d %H:%M:%S"};
return $dt->strftime($f);
}


Viel Spass und alles ohne Gewähr.

Grüße,

Oli


Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 18 Januar 2015, 22:25:26
Hi Oli,

das dort als Attribut hineinzupacken sollte eigentlich gar nicht nötig sein, das legt sich das nicedates.js-Script selbst an. Geparst wird dazu der Elementtext, d.h. man kann es auch per ValueFormat machen und dort deine formatCalDate aufrufen (und bei ValueStyle dann den Formatierungsteil). Ist in dem Fall, da CalView offensichtlich von selbst keine ISO-Zeitstempel ausspuckt, aber vom Aufwand her "gehüpft wie gesprungen" ;) Auf jeden Fall danke für deinen Code :)
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 18 Januar 2015, 23:24:26
Hi Peter,

da hast du natürlich recht, aber warum einfach, wenn's auch umständlich geht ;-)
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: ToJu am 20 Januar 2015, 09:12:13
Hallo,

vielen Dank für dieses Script. Läuft bei mir mit Update vom 19.01.14 wie oben beschrieben.
Allerdings werden bei mir alle Daten der Logfiles in der Anzeige (falsch) angepasst, wenn ich sie mir als Text ausgeben lasse. Die Sekundenangaben stimmen nicht (uralte Einträge) und ersetzen alle Datumsangaben. Dies gilt nicht für das globale Logfile, da dort das Datum anders formatiert ist.
vor ein paar Sekunden Fenster_Kueche battery: ok
vor ein paar Sekunden Fenster_Kueche type: HMS100TFK
vor ein paar Sekunden Fenster_Kueche geschlossen
vor ein paar Sekunden Fenster_Kueche switch_detect: off
vor ein paar Sekunden Fenster_Kueche battery: ok
vor ein paar Sekunden Fenster_Kueche type: HMS100TFK
vor ein paar Sekunden Fenster_Kueche geschlossen
vor ein paar Sekunden Fenster_Kueche switch_detect: off
vor ein paar Sekunden Fenster_Kueche battery: ok
vor ein paar Sekunden Fenster_Kueche type: HMS100TFK
vor ein paar Sekunden Fenster_Kueche geschlossen
vor ein paar Sekunden Fenster_Kueche switch_detect: off
vor ein paar Sekunden Fenster_Kueche battery: ok
vor ein paar Sekunden Fenster_Kueche type: HMS100TFK
vor ein paar Sekunden Fenster_Kueche geschlossen
vor ein paar Sekunden Fenster_Kueche switch_detect: on
vor ein paar Sekunden Fenster_Kueche battery: ok
vor ein paar Sekunden Fenster_Kueche type: HMS100TFK
vor ein paar Sekunden Fenster_Kueche offen


Kannst du hier nochmal schauen, ob man es für Logfiles deaktiviert bekommt oder zumindest korrekt formatiert? Oder liegt der Fehler irgendwo in meinen Einstellungen?

Vielen Dank und viele Grüße,
Torben
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 20 Januar 2015, 10:49:17
Uh, an die Logfiles habe ich gar nicht gedacht, da ich die selbst nicht verwende. Da sollte natürlich keine Ersetzung passieren, vor allem aber keine falsche.

- Wegen der falschen Berechnung: Mit aktuellen Daten kann ich es reproduzieren, mit dem aktuellen Datumsformat im Filelog kommt die moment.js nicht klar, da es keine ISO-Zeitstempel sind, aber mein Regex zum Suchen von Datumswerten trotzdem matcht.

- Ausschalten für bestimmte Seiten (auch die Logs) geht momentan per Regex (searchScope). Allerdings kann man damit nur eine "Whitelist" definieren, nicht einzelne Seiten ausknippsen ... also im Prinzip geht das schon, nur werden die Regulären Ausdrücke dann ziemlich hässlich ... das könnte ich mal mittelfristig noch verbessern.

Ich würde jedenfalls als Workaround empfehlen, den Datums-Such-Regex in der fhem_nicedates.js zu ersetzen und etwas genauer auf die ISO-Zeitstempel festzuschnüren, wie FHEM sie im Webinterface, aber netterweise nicht in den Logs verwendet. Such in der fhem_nicedates.js mal folgende Zeile (bei mir Zeile 43):


const timestampRegex = /(\d{4})-(\d{2})-(\d{2}).(\d{2}):(\d{2}):(\d{2})/g;


Und ersetze sie durch:


const timestampRegex = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/g;


Dann sollten die Logfiles von Ersetzungen verschont bleiben. Falls das klappt, baue ich es oben in die Datei ein bzw. mache den Regex mal noch als Parameter User-konfigurierbar.

Ansonsten, Kannst du mir mal noch ein-zwei der uralten und mit falsch berechneten Datum formatierten Logzeilen (ohne aktiviertes nicedates.js oder außerhalb von FHEM direkt aus der Filelog-Datei kopiert) posten? Dann kann ich mal gucken warum der die zwar frisst, aber dann ein falsches Datum ausspuckt.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: ToJu am 20 Januar 2015, 12:38:17
Hallo,

Zitat von: peterk_de am 20 Januar 2015, 10:49:17
Und ersetze sie durch:

const timestampRegex = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/g;
Danke, das löst das Problem bei mir. Bezüglich der alten Logfiles habe ich mich wohl falsch ausgedrückt. Ich wollte damit nur verdeutlichen, dass die angezeigten "Sekunden" nicht annähernd stimmten. Es funktionert mit dem neuen Regex natürlich auch bei alten Logfiles  :) Danke für die schnelle Lösung.

Achtung: Ich habe noch festgestellt, dass das Datum auch ersetzt wird, wenn man "Edit files" benutzt. Wenn in den dort bearbeiteten Dateien ein entsprechend kodiertes Datum vorkommt, wird es auch ersetzt und später dann "übersetzt" gespeichert. Auch wenn die harte Codierung von Datumsangaben in den Konfigurationen etc. eher selten vorkommen sollte, kann das doch zu erheblichen Problemen führen oder auch Konfigurationen beschädigen. Vielleicht könnte man zumindest diese Seiten auf eine Blacklist setzen oder Eingabefelder allgemein komplett aus dem Übersetzen herausnehmen.

Grüße,
Torben

P.S.: Das Problem bei Edit Files konnte ich sowohl mit dem "default" Editor als auch mit fhem_codemirror.js reproduzieren.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 20 Januar 2015, 12:46:48
Hi ToJu,

danke für den Hinweis. Das hatte ich extra durch Tests verifiziert gehabt, dass genau das nicht passiert ... komisch, vielleicht hat sich da durch die Updates jetzt was geändert. Da werde ich dann wohl doch noch einen Patch bauen müssen, dass er in <text> und <input>-Elementen nichts ersetzt.

Edit: Kann es reproduzieren - Fix dauert etwas.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: ToJu am 20 Januar 2015, 12:56:22
Hallo,

gut, es ist ja auch nicht überall so, dass es zu viel ersetzt wird. Wenn man an einem Device einen entsprechenden comment hinzufügt, dann wird das unten in den Attributen zwar ersetzt, wenn ich aber darauf klicke, um es zu editieren, dann wird es nicht ersetzt im Eingabefeld. Das funktioniert also.

Danke nochmals für das hübsche Datum :)

Grüße,
Torben
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 20 Januar 2015, 18:14:28
Zitat von: ToJu am 20 Januar 2015, 12:38:17

Achtung: Ich habe noch festgestellt, dass das Datum auch ersetzt wird, wenn man "Edit files" benutzt. Wenn in den dort bearbeiteten Dateien ein entsprechend kodiertes Datum vorkommt, wird es auch ersetzt und später dann "übersetzt" gespeichert. Auch wenn die harte Codierung von Datumsangaben in den Konfigurationen etc. eher selten vorkommen sollte, kann das doch zu erheblichen Problemen führen oder auch Konfigurationen beschädigen. Vielleicht könnte man zumindest diese Seiten auf eine Blacklist setzen oder Eingabefelder allgemein komplett aus dem Übersetzen herausnehmen.


Anbei eine korrigierte Version. Magst du die mal testen? Filelogs sollten darin wie gehabt nicht mehr ersetzt werden, der neue Regex ist drin, und nun auch keinerlei Input/Textarea-Felder mehr. Außerdem habe ich das Script-Laden ein Stück weit geändert, so wie es im neuen FHEMweb vorgesehen ist (allerdings noch nicht alles). Haut bei mir überall hin, außer auf der Seite "Everything" (vermutlich ein Timing-Problem). Wenn es sonst keine Probleme gibt damit, aktualisiere ich das Eingangsposting damit.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: ToJu am 20 Januar 2015, 19:59:29
Hallo,

mit der neuen Dateiversion treten bei mir die genannten Probleme nicht mehr auf. Auch das Ersetzten im Editor findet nicht mehr statt.
Die Seite "Everything" hatte ich seit Ewigkeiten nicht mehr aufgerufen, die ist mittlerweile etwas groß für meinen Raspberry :)  Ich habe es trotzdem mal versucht: Bei mir fanden die Ersetzungen nach einiger Zeit korrekt statt.
Vielen Dank für die schnelle Korrektur.

Grüße,
Torben
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 20 Januar 2015, 23:36:12
keine Ahnung, wo bei mir jetzt was schief läuft, mit der neuen Version, aber das sieht garnicht gut aus...
Titel: nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 20 Januar 2015, 23:44:29
Na man gut, dass ich sie noch nicht ins Anfangsposting geschoben habe ;-) Kannst du mal nicedates ausknipsen und nen Screenshot von genau derselben Stelle machen? (Oder noch besser den HTML-Source von der Tabelle posten) ... An dem Regex mit dem ich suche hat sich nämlich genau nur ein Zeichen geändert ... Ist mir so spontan schleierhaft wo das jetzt herkommen kann ...
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 21 Januar 2015, 00:32:05
Ja, sehr seltsam... irgendwie verpasst er jedem einzelnen DOM-Element jetzt den data-absolute-timestamp...

Ich muss da aber auch nochmal bei mir gucken... das ist nur auf der Tablet-Version (an de ich einiges Gefummelt habe) so. im Standard darkstyle funktioniert es.

Nicedates nicht ausgeknipst, aber alte Version:
<a href="/fhem?detail=EG_RolladenAZiLinks">EG Arbeitszimmer (Links &amp; Mitte)</a>

Neue Version:
<a href="/fhem?detail=EG_RolladenAZiLinks" data-absolute-timestamp="EG Arbeitszimmer (Links &amp; Mitte)">vor ein paar SekundenEvor ein paar SekundenGvor ein paar Sekunden vor ein paar SekundenAvor ein paar Sekundenrvor ein paar Sekundenbvor ein paar Sekundenevor ein paar Sekundenivor ein paar Sekundentvor ein paar Sekundensvor ein paar Sekundenzvor ein paar Sekundenivor ein paar Sekundenmvor ein paar Sekundenmvor ein paar Sekundenevor ein paar Sekundenrvor ein paar Sekunden vor ein paar Sekunden(vor ein paar SekundenLvor ein paar Sekundenivor ein paar Sekundennvor ein paar Sekundenkvor ein paar Sekundensvor ein paar Sekunden vor ein paar Sekunden&amp;vor ein paar Sekunden vor ein paar SekundenMvor ein paar Sekundenivor ein paar Sekundentvor ein paar Sekundentvor ein paar Sekundenevor ein paar Sekunden)vor ein paar Sekunden</a>

meine Parameter:
{"locale" : "de", "mode" : "fromNow","verbose" : "5"}
Titel: nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 21 Januar 2015, 00:43:08
Wenn du data-absolute-timestamp dort nicht selbst gesetzt hast,  dann ist der Such-Regex bei dir wohl kaputt und matcht auf jeden Elementtext, sonst würde das Attribut nicht schon bei Elementen gesetzt werden, die gar keine Zeitstempel enthalten.

Mach mal die JavaScript-Konsole im Browser auf (Element untersuchen / Element in Firebug untersuchen o.Ä.) und poste  mal die Ausgabe nach einem Page-Reload (verbose 5 hast du ja schon gesetzt). Danach mal noch in die JavaScript-Konsole timestampRegex eingeben und Enter, dann gibt er dir aus, was in der Variable drinsteht (meine Vermutung: nicht das was drinstehen sollte - z.B. gar nix)
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 21 Januar 2015, 01:09:55
Problem gefunden: Es gibt ein weiteres Script, das ebenfalls die globale Variable "attr" definiert... die überschreiben sich dann gegenseitig. Vielleicht "attr" in "nicedatesAttr" o.ä. umbenennen um Konflikte auszuschliessen.

Grüße,

Olli
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 21 Januar 2015, 01:14:04
Arrrrrrrr, ich Idiot. Da hätte ich auch selbst drauf kommen können zumal ich das Parameter-Konzept aus anderen Widgets abgekupfert habe, leider samt Variablennamen ;-) Wird morgen geliefert.
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 21 Januar 2015, 01:17:14
Dito
Titel: nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: peterk_de am 21 Januar 2015, 01:28:37
So per Definition ist jetzt morgen - hier die gefixte Version, mal gucken ob es hilft ;-) Danke fürs Fehlerfinden!!!
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 21 Januar 2015, 11:02:38
Zitatper Definition ist jetzt morgen
So gesehen war ja gestern schon heute, als du "morgen" gesagt hast ;-)
Zitathier die gefixte Version
Test muss bis heute abend warten.

Danke,

Oli
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: KernSani am 21 Januar 2015, 21:20:29
und bei mir sieht's auch wieder schön aus :-)

Danke!
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: Cybers am 22 Januar 2015, 15:00:12
Hallo,

ich bekomme folgenden Fehler wenn ich das in meine fhem.cfg schreibe:
attr Dachgeschoss JavaScripts nicedates/fhem_nicedates.js
attr Dachgeschoss {"locale" : "de", "mode" : "fromNow","verbose" : "4"}


unknown attribute {"locale".
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: Icinger am 22 Januar 2015, 16:28:28
Dir fehlt der Name des Attributs :)

attr Dachgeschoss nicedatesParam  {"locale" : "de", "mode" : "fromNow","verbose" : "4"}

lg, Ici
Titel: Antw:nicedates.js: Hübsche (relative) Zeitangaben mit Longpoll-Support
Beitrag von: Cybers am 22 Januar 2015, 17:06:00
habe ich wohl mit geschlossenen Augen kontrolliert...  ::)