Zeiten mit Spinner in ein Dummy eintragen..!

Begonnen von moonsorrox, 30 Juli 2018, 16:50:08

Vorheriges Thema - Nächstes Thema

moonsorrox

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

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

TWART016

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>

moonsorrox

#2
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
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

setstate

man kann STATE mit

attr du_begin_T stateFormat Stunde:Minute

formatieren. Aber state nicht.

derHeimwerker

#4
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

moonsorrox

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
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

#6
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}
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

teichtaucher

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.

moonsorrox

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  :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

teichtaucher


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.

moonsorrox

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.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

teichtaucher

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.

moonsorrox

Evtl. könnte man das mit einem UserReading machen in Perl, aber das kann ich leider nicht.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM