[FUIP] Zeitangabe im Reading für Anzeige kürzen

Begonnen von caldir65, 28 Juni 2022, 20:32:57

Vorheriges Thema - Nächstes Thema

caldir65

Hallo,

ich habe bisher nur die Möglichkeiten gefunden, das Reading ansich zu bearbeiten / berechnen, ich möchte aber einfach nur die Ausgabe anpassen, d.h. kürzen, damit das Ganze noch gut auf einem Smartphone-Display erkennbar ist.

Ich habe mittels des Moduls "SolarForecast" inzwischen eine Ampel realisiert, die auf einem ausgedienten Smartphone anzeigt, wann genug Strom erzeugt wird, um einen bestimmten Verbraucher zu betreiben.
Jetzt würde ich gerne zu den Icons der Verbraucher noch die Uhrzeit oder Datum+Zeit (entweder Stunde:Minute oder Tag.Monat Stunde:Minute).
Das Reading liefert aber  Jahr-Monat-Tag Stunde:Minute:Sekunde
Gibt es eine Möglichkeit, das Reading unverändert zu lassen, aber in der Oberfläche in gekürzter/formatierte Weise auszugeben?
Ich möchte damit insbes. die Programmierung der Spüma und Wama vereinfachen ...

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Thorsten Pferdekaemper

Hi,
also FUIP bietet sowas momentan nicht an. Da müsstest Du höchstens ein HTML-View basteln mit entsprechendem JavaScript. Da dürfte es wesentlich einfacher sein, ein entsprechendes UserReading an irgendein Device dranzuhängen und dann das zu verwenden.
Mit Formatierungsgeschichten am Frontend wird das immer gleich recht kompliziert, da man ja das Ausgangsformat in der Regel nicht kennt...
Gruß,
   Thorsten
FUIP

caldir65

Hallo Thorsten,

sorry, aber ich bin nicht eher dazu gekommen, mich wieder damit zu beschäftigen ... ich habe mal gesucht, aber leider nicht auf eine Lösung gestoßen... Ich habe es jetzt soweit verstanden, daß es z.B. über die Perlfunktion split gelöst werden kann, aber ich begreife split und die Syntaxjetzt nicht (liegt vlt. auch mit an der Wärme ...), vlt. kann mir jemand einen Weg zeigen?

Das ausgangs-Reading ist wie folgt vorhanden:
consumer03_planned_start          2022-07-13 08:00:00

Ich hätte es gerne in:
07-13 08:00

oder aber am optimalsten (weil der höchte WAF  ;))
Heute/morgen 13.07. um 08:00

oder natürlich irgend etwas dazwischen  ;)

Über Vorschläge wäre ich sehr erfreut ...
Vielen Dank.

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Thorsten Pferdekaemper

Hi,
ich würde an Deiner Stelle erst einmal damit anfangen, ein userReading zu basteln, welches aus dem Datum/Zeit-Reading irgendwas ausschneidet.
Z.B. könnte man sowas machen:

my @datetime = split( " ", ReadingsVal(...));
return $datetime[0];  #the date or...
return $datetime[1];  # the time

Natürlich ist nur eins der returns sinnvoll.
[/code]
Wenn das klappt, dann kann es von da aus weitergehen.
Gruß,
    Thorsten
FUIP

caldir65

Moin,

ich bin meinem Zieljetzt einen ersten Schritt näher, consumer03_planned_hour {my @consumer03_planned = split( " ", ReadingsVal("SolarForecast","consumer03_planned_start",""));return $consumer03_planned[1];}jetzt möchte ich das Ergebnis noch auf HH:MM kürzen, ohne aber noch ein weiteres Reading erstellen zu müssen ...

Ich habe mich da mal etwas an diesem Thread orientiert und versucht, ob ich das nicht entsprechend übertragen bekomme - leider scheitere ich mit meinen eher nicht existenten Programmierkenntnissen mit dem Fehler Error evaluating SolarForecast userReading consumer03_planned_hour: Global symbol "@consumer03_planned" requires explicit package name (did you forget to declare "my @consumer03_planned"?) at (eval 1164915) line 1.
Das aktuelle userReading sieht wie folgt aus:consumer03_planned_hour {my @consumer03_planned = split( " ", ReadingsVal("SolarForecast","consumer03_planned_start",""))};;{my @pieces = split(/:/,$consumer03_planned[1]); return $pieces[0].":".$pieces[1]}

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Thorsten Pferdekaemper

Zitat von: caldir65 am 24 Juli 2022, 16:40:03
Das aktuelle userReading sieht wie folgt aus:consumer03_planned_hour {my @consumer03_planned = split( " ", ReadingsVal("SolarForecast","consumer03_planned_start",""))};;{my @pieces = split(/:/,$consumer03_planned[1]); return $pieces[0].":".$pieces[1]}
Ich glaube, Du bist da mit den Klammern durcheinander gekommen:
consumer03_planned_hour {my @consumer03_planned = split( " ", ReadingsVal("SolarForecast","consumer03_planned_start","")); my @pieces = split(/:/,$consumer03_planned[1]); return $pieces[0].":".$pieces[1]}

Gruß,
   Thorsten
FUIP