Darstellung colorpicker presets

Begonnen von ToKa, 30 November 2023, 12:28:30

Vorheriges Thema - Nächstes Thema

ToKa

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
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

DS_Starter

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
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

rudolfkoenig

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.

ToKa

#3
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
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

DS_Starter

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>";
}
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

eisman

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

1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

rudolfkoenig

@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.

Ralli

Bestätige, ist wieder schick. Danke für den schnellen Fix.
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

ToKa

Dito, mit der Änderung sieht es jetzt wieder wie vorher aus.

Danke für die schnelle Korrektur.
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Frank_Huber

#9
Mahlzeit,

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

Ansicht vor Update:
Du darfst diesen Dateianhang nicht ansehen.

Ansicht nach Update:
Du darfst diesen Dateianhang nicht ansehen.

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

DS_Starter

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
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

rudolfkoenig

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.