NEWS
VIS Stringfunktionen
-
Hallo Leute,
ich bin gerade dabei mich im IOBroker einzuarbeiten, bin aber noch recht am Anfang.
Bin auch nicht wirklich ein JS Programmierer.Nun zu meiner Frage, ich habe schon gesucht, aber nichts gefunden oder aber auch nicht verstand
Also angenommen ich haben einen Wert aus einem Datenpunkt z.B. 20191111 und diesen möchte ich in der VIS in der Form Anzeigen DD.MM.YYYY.
Ich habe absolut keine Ahnung, wie ich das anstellen soll. Vorzugsweise sollte es ziemlich simple sein, im Javascript würde ich den String zerlegen in YYYY, MM und DD und diese dann in einem neuen String umstellen damit es in die Form DD.MM.YYYY bringen, aber wie mache ich das im VIS vom IOBROKER ?!Danke für eure Hilfe
LG
Paolo -
@papi74 Hi,
in diesem Falle wäre es einfach. Du nimmst einfach das "Timestamp-Widget". Dort kannst du das Datum formatieren wie du möchtest.
Oder du nimmst ein HTML-Widget. Dort kannst du mit Bindings arbeiten:{wert:daswetter.0.NextDays.Location_1.Day_1.Wetter_Symbol_value; wert.length <13 ? "<div style='font-size: 24px'>"+wert+"</div>" :: "<div style='font-size: 10px'>"+wert+"</div>"}
Wenn Textlänge des Datenpunktes kleiner 13 Zeichen nutze großen Font, sonst kleinen. Dort gehen viele JS-Befehle, für dein Beispiel also auch split, slice...
-
Hi SBorg,
schon mal vielen Dank für den Tip, aber ich komme nicht weiter.Also das mit dem Timestamp-Widget" funktioniert nicht, weil der mir zwar das richtige Format ausgibt, aber die Werte stimme nicht... als der macht z.B. aus 20191111 ein 28.08.1970 ....
Das mit dem JS-Befehl bekomme ich nicht hin, ich probiere das Script im VS-Code und es klappt, aber im VIS html Widget, keine Reaktion.... irgend ein Tipp?
Gruß
papi74 -
20191111 ist kein Timestamp. Die möglichen Bindings und verfügbaren Funktionen kannst du hier nachlesen:
https://github.com/ioBroker/ioBroker.vis/blob/master/README.md -
@papi74 Das Timestamp-Widget kann nur mit "echten" Zeitstempeln im Unix-Format (Sekunden seit 01.01.1970) umgehen. Ist das tatsächlich nur ein String im Format 20191117, dann könnte das entsprechende Binding bspw. so aussehen:
Debug: {javascript.0.Datum}<br /> {d:javascript.0.Datum; d.substring(6, 8)}.{d:javascript.0.Datum; d.substring(4, 6)}.{d:javascript.0.Datum; d.substring(0, 4)}
oder kürzer und eleganter (ohne Debug ) :
{d:javascript.0.Datum; d.substring(6, 8)+"."+d.substring(4, 6)+"."+d.substring(0, 4)}
Ausgabe:
Debug: 20191117
17.11.2019Bindings werden auch nur in der VIS korrekt angezeigt. Im Editor nur der "Quellcode".
-
@SBorg Hi SBorg, ich ärgere mich immer, wenn jemand kein Feedback gibt ob die sugested actions auch funktioniert haben... Dies hole ich hiermit nach und kann bestätigen, dass dein Vorschlag geholfen hat
Zu meiner Verteitigung, mein gesamtes System ist im November abgeraucht (Backup sei dank) und ich hatte einiges an Arbeit das ganze wieder (Hardwaretechnisch) zum Laufen zu bekommen.
Wie man sieht, war dein Tipp genau richtig.LG
PaoloP -
@papi74 Och, lieber spät als nie
Ich "liebe" das auch immer, wenn ich mittels Google auf die Lösung meines Problems stoße und das dann mit "...hat so nicht funktioniert, habe es jetzt aber hinbekommen..." endet. Das "wie" hätte ev. auch andere interessiert...