Hallo zusammen,
ich habe mal wieder eine Frage worauf ich im Forum keine Antwort gefunden habe.
Ich habe einen Dummy Slider mit dem ich gerne eine Uhrzeit (Stunden) einstellen möchte zum weiterverarbeiten.
setList state:slider,00,1,23
Das Problem liegt darin das er bei den Zahlen 0 bis 9 die Zahlen nur Einstellig anzeigt und nicht Zweistellig.
Benötigt werden die Zahlen Zweistellig, sprich 00, 01, 02, 03 usw.
Wie kann ich diese Formatierung im Dummy Slider am einfachsten Formatieren?
Hier noch die List des Dummy Devices
Internals:
CFGFN
FUUID 5d29e5dd-f33f-b42a-90cb-122d2c00cda130de
NAME du_Weih1_StartZeit
NR 606
STATE 3
TYPE dummy
READINGS:
2019-07-13 17:07:54 state 3
Attributes:
group Automation (Weihnachtsbeleuchtung)
room Automation
setList state:slider,00,1,23
webCmd state
Gibt es hier eine direkte Lösung mit den Attributes "userReadings" oder "stateFormat"?
stateFormat {sprintf("%02d",ReadingsVal($name,"state",0))}
Mit dem stateFormat zeigt es mir nun die führenden Nullen in der Übersicht an aber noch nicht im Reading state selber.
Was muss ich hier noch ergänzen?
Kannst du mir zudem den Code noch erklären, damit ich Ihn auch verstehen kann?
Hallo
% ist der Platzhalter für den Wert
02d führende Null 2 Stellen dezimal
Readingval holt den Wert auf dem Device $ name mit der readingnamen "state"
Wenn das reading leer ist wird "0" als default zurück gegeben.
Viele Grüße Christian
Gesendet von meinem SM-G930F mit Tapatalk
Zitat von: DJCrazy am 13 Juli 2019, 19:07:35
Mit dem stateFormat zeigt es mir nun die führenden Nullen in der Übersicht an aber noch nicht im Reading state selber.
.
.
.
dann mache es über ein userreading:
defmod test1 dummy
attr test1 setList state:slider,00,1,23
attr test1 stateFormat {sprintf("%02d",ReadingsNum($name,"state",0))}
attr test1 userReadings formatettime:* {sprintf("%02d",ReadingsNum($name,"state",0))}
setstate test1 04
setstate test1 2019-07-13 19:15:34 formatettime 04
setstate test1 2019-07-13 19:15:34 state state 4
gruss Byte09
Vielen Dank für eure Hilfe.
Hab es noch etwas angepasst damit ich nicht noch ein zusätzliches Reading habe.
stateFormat {sprintf("%02d",ReadingsNum($name,"state",00))}
userReadings state:* {sprintf("%02d",ReadingsNum($name,"state",00))}
Thema wurde auf Wunsch eines Users nochmal geöffnet um den Lösungsvorschlag noch etwas hinzuzufügen.
da wir leider kein komplettes list von dir gesehen haben, wäre ich vorsichtig was der Teil
userReadings state:* ...
für "komische" seiteneffekte auslösen kann...
Zitat von: DJCrazy am 13 Juli 2019, 20:03:43
Hab es noch etwas angepasst damit ich nicht noch ein zusätzliches Reading habe.
ein zusätzliches reading sollte an dieser stelle keinen unterschied machen.