FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: ToKa am 30 November 2023, 12:28:30

Titel: Darstellung colorpicker presets
Beitrag von: ToKa am 30 November 2023, 12:28:30
Hallo zusammen,

hat sich an der Darstellung von Presets und Colorpicker etwas geändert? Ich hatte Presets analog zum Beispiel aus dem Wiki eingerichtet:
... ct:colorpicker,CT,2000,10,6500 ...
attr <device> webCmd ct:ct 2040:ct 2630:ct 3703:ct 6250:on:off

Seit dem Update heute werden meine Presets jetzt als Slider angezeigt (siehe Anhang).
pct:ct 2040:ct 3092:ct 4144:ct 5194:ct 6250

Viele Grüße
Torsten
Titel: Aw: Darstellung colorpicker presets
Beitrag von: DS_Starter am 30 November 2023, 12:53:18
Ja, wir haben gestern eine Änderung vorgenommen:  https://forum.fhem.de/index.php?topic=136019.0

Offensichtlich hat colorpicker ein Problem damit.
Mach ein restore vom 01_FHEMWEB.pm

LG
Titel: Aw: Darstellung colorpicker presets
Beitrag von: rudolfkoenig am 30 November 2023, 12:54:38
Ich habe gestern einen vermeintlichen Bug gefixt, was das beeinflussen koennte: https://forum.fhem.de/index.php?topic=136019

Kannst Du bitte die Definition dieses Widgets zeigen (samt Reading dahinter), und beschreiben, was Du erwartest.
Titel: Aw: Darstellung colorpicker presets
Beitrag von: ToKa am 30 November 2023, 13:31:56
Das ist die Definition eines betroffenen Device
define E2_ku_LP_Tischleuchte HUEDevice 4  IODev=ZigBee1
attr E2_ku_LP_Tischleuchte DbLogInclude ct,onoff,pct,state
attr E2_ku_LP_Tischleuchte IODev ZigBee1
attr E2_ku_LP_Tischleuchte alias Tischleuchte Fenster
attr E2_ku_LP_Tischleuchte color-icons 2
attr E2_ku_LP_Tischleuchte devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
attr E2_ku_LP_Tischleuchte event-on-change-reading .*
attr E2_ku_LP_Tischleuchte group Beleuchtung
attr E2_ku_LP_Tischleuchte icon icons8-lamp-32
attr E2_ku_LP_Tischleuchte model Classic B40 TW - LIGHTIFY
attr E2_ku_LP_Tischleuchte mqttDefaults floorID={substr $device,0,2} roomID={substr $device,3,2} devName={substr $device,6}
attr E2_ku_LP_Tischleuchte mqttPublish ct|onoff|pct|rgb|reportedState|state:topic={"$base/$floorID/$roomID/$devName/$reading"}
attr E2_ku_LP_Tischleuchte mqttSubscribe state:stopic={"$base/$floorID/$roomID/$devName/cmd"}
attr E2_ku_LP_Tischleuchte room Küche,Übersicht
attr E2_ku_LP_Tischleuchte sortby 4
attr E2_ku_LP_Tischleuchte subType ctdimmer
attr E2_ku_LP_Tischleuchte userReadings reportedState:onoff.* {ReadingsVal("E2_ku_LP_Tischleuchte","onoff",0) == 0 ? "off" : "on"}
attr E2_ku_LP_Tischleuchte webCmd ct:ct 490:ct 380:ct 270:ct 160:toggle:on:off
#  DEF        4  IODev=ZigBee1
#  FUUID      60c23e4e-f33f-2e5f-3750-539501e536e9574b
#  FVERSION  31_HUEDevice.pm:0.282220/2023-11-28
#  ID        4
#  INTERVAL 
#  IODev      ZigBee1
#  NAME      E2_ku_LP_Tischleuchte
#  NR        253
#  STATE      off
#  TYPE      HUEDevice
#  eventCount 158
#  has_events 1
#  manufacturername OSRAM
#  modelid    Classic B40 TW - LIGHTIFY
#  name      Tischleuchte Fenster
#  swversion  V1.05.10
#  type      Color temperature light
#  uniqueid  7c:b0:3e:aa:00:ae:17:19-03
#  READINGS:
#    2023-11-30 10:35:39  IODev          ZigBee1
#    2023-11-30 10:36:11  alert          none
#    2023-11-30 10:36:11  bri            128
#    2023-11-30 10:36:11  colormode      ct
#    2023-11-30 10:36:11  ct              215 (4651K)
#    2022-01-31 09:11:28  dynamics_status none
#    2023-11-30 13:22:48  lastseen        2023-11-30T12:21Z
#    2023-11-30 10:36:11  onoff          0
#    2023-11-30 10:36:11  pct            0
#    2023-11-30 10:36:11  reachable      1
#    2023-11-30 08:10:05  reportedState  off
#    2023-11-30 10:36:11  rgb            fff0e3
#    2023-11-30 08:10:05  state          off
#    2022-01-31 09:11:28  v2effect        no_effect
#  helper:
#    alert      none
#    battery    -1
#    bri        128
#    colormode  ct
#    ct        215
#    devtype   
#    dynamics_status
#    effect   
#    hue        -1
#    lastseen 
#    mode     
#    on        0
#    pct        0
#    reachable  1
#    rgb        fff0e3
#    sat        -1
#    update_timeout -1
#    v2effect 
#    xy       
#    capabilities:
#      alerts:
#        none
#        select
#        lselect
#      color:
#        ct:
#          max        65279
#          min        153
#        modes:
#          ct
#    helper:
#    json:
#      e          changed
#      id        4
#      r          lights
#      source    event
#      t          event
#      uniqueid  7c:b0:3e:aa:00:ae:17:19-03
#      attr:
#        colorcapabilities 16
#        ctmax      65279
#        ctmin      153
#        id        4
#        lastannounced
#        lastseen  2023-11-30T12:22Z
#        manufacturername OSRAM
#        modelid    Classic B40 TW - LIGHTIFY
#        name      Tischleuchte Fenster
#        swversion  V1.05.10
#        type      Color temperature light
#        uniqueid  7c:b0:3e:aa:00:ae:17:19-03
#
setstate E2_ku_LP_Tischleuchte off
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:35:39 IODev ZigBee1
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:36:11 alert none
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:36:11 bri 128
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:36:11 colormode ct
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:36:11 ct 215 (4651K)
setstate E2_ku_LP_Tischleuchte 2022-01-31 09:11:28 dynamics_status none
setstate E2_ku_LP_Tischleuchte 2023-11-30 13:22:48 lastseen 2023-11-30T12:21Z
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:36:11 onoff 0
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:36:11 pct 0
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:36:11 reachable 1
setstate E2_ku_LP_Tischleuchte 2023-11-30 08:10:05 reportedState off
setstate E2_ku_LP_Tischleuchte 2023-11-30 10:36:11 rgb fff0e3
setstate E2_ku_LP_Tischleuchte 2023-11-30 08:10:05 state off
setstate E2_ku_LP_Tischleuchte 2022-01-31 09:11:28 v2effect no_effect


Vor der Änderung wurden die Presets so wie im Wiki dargestellt - nach Restore der 01_FHEMWEB.pm sieht es wieder wir früher aus (siehe Anlage).

VG
Torsten
Titel: Aw: Darstellung colorpicker presets
Beitrag von: DS_Starter am 30 November 2023, 15:27:35
Ich habe es versucht bei mir nachzustellen.
Die Farbtemperatur ct wird per default als Slider umgesetzt.
Wenn man sich per webcmd zB. Fixwerte hinterlegt, z.B. wie du mit "ct 2040" und "ct 2630", wird in diesem Fall normalerweise eine auswählbare Drucktaste erstellt, die diesen Wert setzt.

Durch unsere Änderung gestern wird nun der Wert nach "ct" abgetrennt, sodass im Ergebnis wieder nur ein Slider dargestellt wird. Nach dem Kommando würde eigentlich ein Reading abgetrennt, doch hier ist es ein vordefinierter Wert.

Sieht wie eine spezifische colorpicker Eigenheit aus denn z.B. mit dem select-Widget habe ich so ein Problem bei meinen Tests nicht festgestellt.

@Rudi, die nachfolgende Funktion hat das colorpicker Problem in meinen Tests behoben:

sub
FW_widgetFallbackFn()
{
  my ($FW_wname, $d, $FW_room, $cmd, $values) = @_;

  # webCmd "temp 30" should remain text
  # noArg is needed for fhem.cfg.demo / Cinema
  return "" if(!$values || $values eq "noArg");

  my ($spcmd, $reading) = split( ' ', $cmd, 2 );
  $spcmd   = $cmd   if($values =~ /^colorpicker/xs);
  $reading = $spcmd if(!defined($reading));
 
  my $current;
  if($spcmd eq "desired-temp" || $spcmd eq "desiredTemperature") {
    $current = ReadingsVal($d, $spcmd, 20);
    $current =~ s/ .*//;        # Cut off Celsius
    $current = sprintf("%2.1f", int(2*$current)/2) if($current =~ m/[0-9.-]/);
  } else {
    $current = ReadingsVal($d, $reading, undef);
    if( !defined($current) ) {
      $reading = 'state';
      $current = Value($d);
    }
    $current =~ s/$spcmd //;
    $current = ReplaceEventMap($d, $current, 1);
  }
 
  return "<td><div class='fhemWidget' cmd='$spcmd' reading='$reading' ".
                "dev='$d' arg='$values' current='$current'></div></td>";
}
Titel: Aw: Darstellung colorpicker presets
Beitrag von: eisman am 30 November 2023, 16:18:45
Hi,

cool selbe Problem

defmod DL_0111 HUEDevice 9  IODev=hueBridge
attr DL_0111 IODev hueBridge
attr DL_0111 alias Lampe 1
attr DL_0111 cmdIcon on:general_an off:general_aus
attr DL_0111 color-icons 2
attr DL_0111 devStateIcon { my $S1 = ReadingsVal($name,"state","off");; \
  my $S2 = "";; my $F0 = "8C8C8C";;\
  \
  if($S1 eq "off") { \
    $S2 = "on";; \
    $F0 = "8C8C8C";;\
  } else {\
    $S2 = "off";; \
    $F0 = ReadingsVal($name,"rgb","8C8C8C");;\
  }\
  return $S1 . ":hue_filled_gu10\@#" . $F0 . ":" . $S2;;\
}
attr DL_0111 group Light
attr DL_0111 icon hue_filled_gu10
attr DL_0111 model TS0505B
attr DL_0111 room Wohnzimmer,light,zigbee
attr DL_0111 sortby Lampe11
attr DL_0111 subType extcolordimmer
attr DL_0111 webCmd on:off:pct:ct 490:ct 160:rgb 0AD9FC
attr DL_0111 widgetOverride pct:selectnumbers,0,5,100,0,lin

setstate DL_0111 off
setstate DL_0111 2023-11-30 10:03:04 IODev hueBridge
setstate DL_0111 2023-11-30 10:03:22 alert none
setstate DL_0111 2023-11-30 10:03:22 bri 254
setstate DL_0111 2023-11-30 10:03:22 colormode ct
setstate DL_0111 2023-11-30 10:03:22 ct 454 (2202K)
setstate DL_0111 2023-11-30 10:03:22 effect none
setstate DL_0111 2023-11-30 10:03:22 hue 34315
setstate DL_0111 2023-11-30 16:22:19 lastseen 2023-11-30T15:21Z
setstate DL_0111 2023-11-30 10:03:22 onoff 0
setstate DL_0111 2023-11-30 10:03:22 pct 0
setstate DL_0111 2023-11-30 10:03:22 reachable 1
setstate DL_0111 2023-11-30 10:03:22 rgb ffb87b
setstate DL_0111 2023-11-30 10:03:22 sat 243
setstate DL_0111 2023-11-30 08:03:28 state off
setstate DL_0111 2023-11-30 10:03:22 xy 0,0




gruss

Titel: Aw: Darstellung colorpicker presets
Beitrag von: rudolfkoenig am 30 November 2023, 17:42:30
@DS_Starter: danke fuer die Suche und den Patch-Vorschlag.

Ich habe einen leicht anderen Weg gewaehlt und eingecheckt.
Beide Versionen erzeugen Unsinn als Reading bei colorpicker, die Sonderformen dieses Widgets scheinen aber in beiden Faellen zu funktionieren.
Ich habe mit fhem.cfg.demo getestet, da kann man diese Varianten auch sehen.
Titel: Aw: Darstellung colorpicker presets
Beitrag von: Ralli am 30 November 2023, 17:57:30
Bestätige, ist wieder schick. Danke für den schnellen Fix.
Titel: Aw: Darstellung colorpicker presets
Beitrag von: ToKa am 30 November 2023, 18:46:04
Dito, mit der Änderung sieht es jetzt wieder wie vorher aus.

Danke für die schnelle Korrektur.
Titel: Aw: Darstellung colorpicker presets
Beitrag von: Frank_Huber am 01 Dezember 2023, 10:37:59
Mahlzeit,

Heute ist Update Tag. Ich denke das Thema hier verhagelt mir die WebCmd in meinen Kodi Geräten.

Ansicht vor Update:
VORHER.jpg

Ansicht nach Update:
NACHHER.jpg

Das Attribut ist in beiden Fällen gesetzt mit:
attr Kodi_DG webCmd playpause all:volume:volume 50:volume 60:volume 70:volume 80
Er scheint jetzt ein Problem mit der Leerstelle zu haben.

könnt ihr euch ja die Tage nochmal anschauen, hat für mich aber keine Eile.

schönes WE und Grüße
Frank
Titel: Aw: Darstellung colorpicker presets
Beitrag von: DS_Starter am 01 Dezember 2023, 13:13:13
Hallo Rudi,

ich glaube mittlerweile fast, ich habe dich mit dem Gedankengang bezüglich des beabsichtigten Splittings in Reading und Cmd auf einen Holzweg geführt.
Vermutlich war das Split nur dazu da zu prüfen ob es ein gleichnamiges Reading zum Cmd gibt und nicht dass man ein anderes Reading mitgeben kann. Der Split hat das nur in der Form suggeriert.

Also wenn dir nicht noch etwas zündendes einfällt, plädiere ich dafür den Change wieder in den Ausgangszustand zu versetzen bevor noch weitere Verwirrung passiert.

LG,
Heiko
Titel: Aw: Darstellung colorpicker presets
Beitrag von: rudolfkoenig am 02 Dezember 2023, 10:40:45
Ich habe alle Aenderungen zurueckgenommen.

Wie das Beispiel von Frank zeigt: man kann nicht erkennen, ob der zweite Parameter als Quelle (Reading) fuer den angezeigten Wert dienen soll, oder ein beliebiges Parameter ist.