[FTUI3] Dummy mit Uhrzeit anzeigen und füttern

Begonnen von presskopf, 09 Juni 2021, 21:24:00

Vorheriges Thema - Nächstes Thema

mr_petz

#15
Zitat von: moonsorrox am 06 Februar 2022, 15:00:53
Ist jetzt soweit OK, mich hatten nur die "" Zeichen dazu gebracht das es da etwas geben wird (evtl. demnächst)
Danke dir

Ich nochmal.
has-buttons ist hier als alleinstehendes Attribute ohne ="" zu setzen.
Hier hat setstate mehrere Schreibweisen vorgesehen: hasButtons,has-buttons und hasbuttons
Damit zählt es nur als true und false.
Also muss es so in deine Definition (zur Richtigkeithalber :) ):

<ftui-timeset [(value)]="du_RolloZeitWZ_hoch" color="yellow" class="size-3" has-buttons>Uhr</ftui-timeset>


Edit: hasButtons in has-buttons geändert
LG mr_petz

OdfFhem

Das genannte Attribut scheint noch nicht den finalen Zustand erreicht zu haben ...


*** Eigentlich baut FTUI3 im HTML-Bereich auf die Kebab-Case-Schreibweise
Zitat
Schreibweise, bei der die einzelnen Worte mit einem Minus getrennt werden; alle Buchstaben sind Kleinbuchstaben.
--> das Attribut hasButtons müsste also has-buttons heissen (ftui-knob liefert hier einige has-Beispiele)

*** Handelt es sich nicht nur um ein Attribut, sondern auch um eine komponenteninterne Property
- dann sollte die interne Property (JavaScript-typisch) hasButtons heissen und der Camel-Case-Schreibweise folgen
Zitat
Schreibweise, bei der das erste Wort kleingeschrieben wird; jedes weitere Wort beginnt mit einem Großbuchstaben.
- das Attribut müsste aber auch in diesem Fall has-buttons heissen (FTUI3 wandelt "autom." von Kebab-Case zu Camel-Case)
--> ... (ftui-knob liefert hier einige has-Beispiele)


Könnte also sein, dass sich die Schreibweise nochmals ändert ...

mr_petz

Ja da hast du Recht.
Habe mich auch gewundert über die verschiedenen Schreibweisen im style vom template().

      :host(:not([hasbuttons]):not([has-buttons])) button {
        display: none;
      }

Aber wie immer wird @setstate das schon richtig stellen...

LG mr_petz

moonsorrox

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

OdfFhem

Zitat von: mr_petz am 06 Februar 2022, 21:37:23
Aber wie immer wird @setstate das schon richtig stellen...

Hat @setstate zwischenzeitig gemacht ...

- css verwendet nur noch die Kebab-Case-Schreibweise
- this.hasAttribute verwendet allerdings noch die Camel-Case-Schreibweise

... Button werden also - falls gewünscht - angezeigt, haben aber momentan keinerlei Funktion ...

OdfFhem

Mit dem aktuellen Update funktionieren auch die Buttons wieder wie gewohnt :)

WICHTIG: das Attribut has-buttons verwenden ...

mr_petz

Zitat von: OdfFhem am 07 Februar 2022, 20:36:02
Mit dem aktuellen Update funktionieren auch die Buttons wieder wie gewohnt :)

WICHTIG: das Attribut has-buttons verwenden ...

Bestätigt. :D

moonsorrox

also ich kann gerade kein Update machen, dass zerschießt mir mein gesamtes Layout
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,
sorry dass ich den Thread nochmal rauskrame. Ich habe bisher das "alte" FTUI am Laufen und möchte gern auf FTUI umsteigen. Bisher habe ich immer auf widget wie das timeset gewartet. In FTUI habe ich es mit einem Spinner hinbekommen.

So sieht mein Dummy aktuell aus:

Internals:
   FUUID      61954943-f33f-d318-54bc-a01ea67e0210c012
   NAME       ke.du.Waermekabine.Startzeit
   NR         277
   STATE      12:30
   TYPE       dummy
   eventCount 3
   READINGS:
     2022-12-02 11:10:25   Minute          30
     2022-06-28 16:03:06   Stunde          12
     2022-12-07 10:00:03   state           12:29
Attributes:
   readingList Stunde:Minute:00
   room       Keller
   setList    state:time
   stateFormat {sprintf("%02d:%02d", ReadingsVal($name,"Stunde","18"), ReadingsVal($name,"Minute","00")) }
   userReadings Stunde {()},Minute {()}


Die Spinner widgets haben die Uhrzeit immer über Stunde und Minute gesetzt, was dann zu einer kompletten Uhrzeit zusammen gesetzt wurde.

So habe ich es bis jetzt testweise eingebaut dass das gleiche Dummy mit der Uhrzeit über FTUI3 gefüttert wird:


      <ftui-grid-tile row="1" col="4" height="2" width="2">
<ftui-label size="3">Wärmekabine</ftui-label>
<ftui-timeset
      [(value)]="ke.du.Waermekabine.Startzeit"
      color="white"
      class="size-2">Uhr</ftui-timeset>
      </ftui-grid-tile>


Wenn ich jetzt über FTUI3 das Dummy mit einer neuen Uhrzeit füttere bekomme wird die Uhrzeit immer im klein geschriebenen state gesetzt und der neue Wert wird vom Widget nicht übernommen. Ich setzte z.B. 12:20 was auch in state übernommen wird. Aber im Widget bleibt 12:30 als Uhrzeit bestehen.

Was mache ich falsch? Ich würde es gern so ändern dass ich erstmal in FHEM alles so lassen kann und FTUI und FTUI3 parallel laufen lassen kann.

mr_petz

#24
Zitat von: teichtaucher am 15 Dezember 2022, 10:13:17
....
Wenn ich jetzt über FTUI3 das Dummy mit einer neuen Uhrzeit füttere bekomme wird die Uhrzeit immer im klein geschriebenen state gesetzt und der neue Wert wird vom Widget nicht übernommen. Ich setzte z.B. 12:20 was auch in state übernommen wird. Aber im Widget bleibt 12:30 als Uhrzeit bestehen.

Was mache ich falsch? Ich würde es gern so ändern dass ich erstmal in FHEM alles so lassen kann und FTUI und FTUI3 parallel laufen lassen kann.

Hi,
du musst dich entscheiden wo du was setzt und ausliest.
Mit [(value)]="ke.du.Waermekabine.Startzeit" wird STATE ausgelesen und state gesetzt (durch STATE wird timeset immer dann das gleiche anzeigen, weil es bei dir nicht mit gesetzt wird im dummy).
Mit [(value)]="ke.du.Waermekabine.Startzeit:state" state. Hier wird bei dir aber beim setzen im dummy im state => 'state 12:20' gesetzt und der STATE nicht mit aktualisiert...???
Das sieht man auch in deinem list:
STATE = 12:30
state = 12:29
Da solltest du erst im dummy nacharbeiten... (liegt am stateFormat)
Wenn du im dummy direkt setzt, dann muss noch ein replace() mit rein und die Bananas aus der Box geholt werden:

[value]="ke.du.Waermekabine.Startzeit:state | replace('state ','')"
(value)="ke.du.Waermekabine.Startzeit"


LG mr_petz