(Gelöst) state - Zahlen immer Zweistellig (Führende Null)?

Begonnen von DJCrazy, 13 Juli 2019, 17:07:02

Vorheriges Thema - Nächstes Thema

DJCrazy

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

DJCrazy

Gibt es hier eine direkte Lösung mit den Attributes  "userReadings"  oder  "stateFormat"?

roedert

stateFormat {sprintf("%02d",ReadingsVal($name,"state",0))}

DJCrazy

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?

ch.eick

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

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Byte09

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

DJCrazy

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))}


Amenophis86

Thema wurde auf Wunsch eines Users nochmal geöffnet um den Lösungsvorschlag noch etwas hinzuzufügen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

nils_

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.
viele Wege in FHEM es gibt!