Hallo ich wollte hier nochmals fragen wie ihr z.B. mit einem Spinner die Zeit in ein Dummy eintragt. So eintragen das es aber im Dummy auch angezeigt wird.
Ich habe bisher noch keine Variante gefunden damit das Dummy in Fhem es auch aktualisiert.
Am Beispiel erklärt wird es evtl. etwas besser zu verstehen sein.
Wenn ich in FTUI einen Spinner setze in dieser Art:
<div class="inline">
<div class="valueonly circulate" data-type="spinner" data-device="du_begin_T" data-cmd="setreading" data-get="Stunde" data-set="Stunde" data-min="19" data-max="22" data-step="1" data-unit=" Uhr" data-longdelay="800" data-width="180" data-height="40" data-icon-left="fa-caret-down" data-icon-right="fa-caret-up" data-text-color="green" data-icon-left-color="royalblue" data-icon-right-color="crimson">
</div>
</div>
<div class="inline"><div class="valueonly circulate" data-type="spinner" data-device="du_begin_T" data-cmd="setreading" data-get="Minute" data-set="Minute" data-min="0" data-max="55" data-step="5" data-unit=" min" data-longdelay="800" data-width="180" data-height="40" data-icon-left="fa-caret-down" data-icon-right="fa-caret-up" data-text-color="green" data-icon-left-color="royalblue" data-icon-right-color="crimson">
</div>
</div>
Diese Spinner setzte mir in dem Dummy (du_begin_T) die folgenden Readings:
Minute 45
Stunde 20
state 12:00
Das Dummy wiederum ändert aber seine eingestellte Zeit nicht, aber das Reading (Minute und Stunde) wird von FTUI verwendet in dem Fall 20.45 Uhr.
Die setlist des Dummy bleibt aber weiter auf der Dummyzeit 12.00 Uhr stehen.
Wie bekommt man es hin das das Dummy auch die Zeit ändert..? Ich habe da noch keine Lösung gefunden.
Dummy sieht so aus:
Internals:
CFGFN ./FHEM/Aussen.cfg
NAME du_begin_T
NR 1825
STATE 12:00
TYPE dummy
READINGS:
2018-07-30 16:25:40 Minute 45
2018-07-30 16:25:38 Stunde 20
2018-07-28 19:54:40 state 12:00
Attributes:
alias -- Einschaltzeit -- Überwachungslicht
devStateIcon .*:rc_BLANK
group AussenBeleuchtung Terrasse Überwachung
icon time_clock@blue
room Automation,Draußen
setList state:time
sortby 04
webCmd state
anbei Screenshot dummy
Ich mache das mit einem Select:
<div class="vbox">
<div class="hbox">
<div data-type="select" data-device="LichtAusIn" data-cmd="setreading" data-get="Device" data-set="Device"
data-items='["LED_Wohnzimmer","LED_Schlafzimmer","avr_zone2"]'
data-alias='["LED Wohnzimmer","LED Schlafzimmer","AVR Zone Schlafzimmer"]'
class="col-5-6">
</div>
<div class="left-space">off in</div>
</div>
<div class="hbox items-space-around">
<div data-type="select" data-device="LichtAusIn" data-cmd="setreading" data-get="Stunden" data-set="Stunden"
data-items='["00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23"]'
data-alias='["0 h","1 h","2 h","3 h","4 h","5 h","6 h","7 h","8 h","9 h","10 h","11 h","12 h","13 h","14 h","15 h","16 h","17 h","18 h","19 h","20 h","21 h","22 h","23 h"]'
class="w2x">
</div>
<div data-type="select" data-device="LichtAusIn" data-cmd="setreading" data-get="Minuten" data-set="Minuten"
data-items='["00","01","02","03","04","05","06","07","08","09","10","15","20","25","30","35","40","45","50","55"]'
data-alias='["0 min","1 min","2 min","3 min","4 min","5 min","6 min","7 min","8 min","9 min","10 min","15 min","20 min","25 min","30 min","35 min","40 min","45 min","50 min","55 min"]'
class="w2x">
</div>
<div data-type="select" data-device="LichtAusIn" data-cmd="setreading" data-get="Sekunden" data-set="Sekunden"
data-items='["00","05","10","15","20","25","30","35","40","45","50","55"]'
data-alias='["0 sek","5 sek","10 sek","15 sek","20 sek","25 sek","30 sek","35 sek","40 sek","45 sek","50 sek","55 sek"]'
class="w2x">
</div>
</div>
</div>
<div data-type="link" data-fhem-cmd="{LED_aus()}"
class="round centered"
data-width="200" data-height="40"
data-color="white"
data-background-color="green"
data-icon="fa-feed">
OK
</div>
Ja das hatte ich auch mal eingesetzt aber mir gefiel diese Variante der Zeitsetzung nicht..!
Ich fand die Spinner besser, habe aber eben besagtes Problem der Dummy Aktualisierung.
ich hatte auch schon an ein DOIF gedacht auf der Fhem Seite, aber da ich einige Zeiten habe sind das auch eben soviele DOIFs
man kann STATE mit
attr du_begin_T stateFormat Stunde:Minute
formatieren. Aber state nicht.
Moin ,
belasse es doch bei den Stunden und Minuten readings und füge diese zu einem Zeit-reading (in einer kleinen perl Routine) zusammen. So habe ich das bei mir gelöst. Dafür müsstest du evtl. aber noch einen auslösenden Button, der die perl Routine aufruft) einfügen.
Gruß
Tom
Zitat von: setstate am 30 Juli 2018, 23:56:21
man kann STATE mit
attr du_begin_T stateFormat Stunde:Minute
formatieren. Aber state nicht.
das hatte ich auch schon mal gemacht, aber wenn die Stunde und die Minute einstellig ist was ja in den Morgenzeiten der Fall ist, dann steht dort für 06:05 Uhr
6:5 drin das sieht irgendwie nicht wie ein Zeit aus. (siehe STATE)
Das müßte man dann anders formatieren, aber das habe ich nicht hinbekommen.
Das Dummy habe ich jetzt mal so drin:
Internals:
CFGFN ./FHEM/Aussen.cfg
NAME du_end_T
NR 1828
STATE 6:5
TYPE dummy
READINGS:
2018-07-31 13:36:07 Minute 5
2018-07-30 16:25:44 Stunde 6
2018-07-31 13:31:57 state STATE 06:05
Attributes:
alias -- Ausschaltzeit -- Überwachungslicht
devStateIcon .*:rc_BLANK
group AussenBeleuchtung Terrasse Überwachung
icon time_clock@blue
room Automation,Draußen
setList STATE:time
sortby 05
stateFormat Stunde:Minute
webCmd STATE
hier mal meine Rückmeldung, das mit dem Attribut
attr du_begin_T stateFormat Stunde:Minute
funktioniert nicht mit einstelligen Werten in meinem Beispiel 06:05 Uhr
Da kommt diese Fehlermeldung
Fehlermeldung:
error: Wrong timespec 6:5: either HH:MM:SS or {perlcode}
Hallo, ich muss diesen Threat nochmal auskramen weil ich vor dem gleichem Problem stand. Ich möchte zwei FTUI Spinner verwenden, um in einem Uhrzeit-Dummy jeweils Stunden und Minuten zu setzen. Ich habe testweise die gleichen Spinner wie bei moonsorrox in meine FTUI Oberfläche eingebaut und Test-Dummies angelegt.
Ich konnte das Problem mit der führenden Null bei den Minuten über stateFormat beim Uhrzeit-Dummy gelöst:
attr testzeit stateFormat {sprintf("%02d:%02d", ReadingsVal("testzeit","Stunde","18"), ReadingsVal("testzeit","Minute","00")) }
Eine Frage habe ich jedoch zu ReadingsVal: Gibt es eine einfachere Variante aus dem stateFormat auf ein Reading des eigenen Devices zuzugreifen? Also so was wie
attr testzeit stateFormat {sprintf("%02d:%02d", ReadingsVal(this,"Stunde","18"), ReadingsVal(this,"Minute","00")) }
Ich würde gern bei einigen Uhrzeit-Dummy einen generischen Ausdruck bei stateFormat setzen ohne dass ich immer das Device im ReadingsVal ändern muss.
wie sieht dein testzeit dummy aus, veröffentliche es mal.
Ich habe das mal bei mir eingebaut, aber es bleibt weiterhin bei der einstelligen Anzeige :-\
Internals:
CFGFN
NAME testzeit
NR 341461
STATE 18:45
TYPE dummy
READINGS:
2018-09-05 20:20:55 Minute 45
2018-09-05 20:20:56 Stunde 18
2018-09-04 21:25:28 state STATE 12:00
Attributes:
readingList Stunde:Minute:00
stateFormat {sprintf("%02d:%02d", ReadingsVal($name,"Stunde","18"), ReadingsVal($name,"Minute","00")) }
userReadings Stunde {()},Minute {()},
$name habe ich jetzt im stateFormat verwendet damit der Ausdruck so generisch ist, dass ich ihn einfach in jedes Dummy ohne Anpassung kopieren kann.
Ich hatte auch schon
attr setList state:time
gesetzt. Aber das hat sich auch nicht anders verhalten.
Einziger Schönheitsfehler in dem Dummy ist dass es STATE und state gibt und beide internals andere Werte haben.
na das ist ja das was ich aktuell bemängele, dass im "state" immer das eingetragene über die Fhem auf der Weboberfläche steht und im "STATE" das aus FTUI
mein dummy sieht aktuell so aus
Internals:
CFGFN ./FHEM/Aussen.cfg
NAME du_end_T
NR 1835
STATE 07:05
TYPE dummy
READINGS:
2018-09-07 13:38:13 Minute 5
2018-09-07 13:38:11 Stunde 7
2018-09-05 16:53:36 state 08:10
Attributes:
alias -- Ausschaltzeit -- Überwachungslicht
devStateIcon .*:rc_BLANK
group AussenBeleuchtung Terrasse Überwachung
icon time_clock@blue
readingList Stunde:Minute:00
room Automation,Draußen
setList state:time
sortby 05
stateFormat {sprintf("%02d:%02d", ReadingsVal($name,"Stunde","18"), ReadingsVal($name,"Minute","00")) }
userReadings Stunde {()},Minute {()}
webCmd state
aber es werden nur einstellige Zahlen eingetragen bei Stunde und Minute, aktuell im dummy Reading im STATE ist zu sehen 07:05.
Ich lasse das mal so drin stehen mal schauen ob er einen Fehler produziert.
Ich finde das auch nicht optimal. Vielleicht kann man im stateFormat noch eine Perl Anweisung hinzufügen, um state auch zu setzen. Aber da kenne ich mich zu wenig aus.
Ich verändere den Zeit-Dummy sowieso nur im FTUI und verwende ihn im DOIF. Und das funktioniert.
Evtl. könnte man das mit einem UserReading machen in Perl, aber das kann ich leider nicht.