Seite 1 von 1

Zigbee2mqtt / Tradfri Spots Dimmerwerte

Verfasst: 9. Jan 2024 21:29
von Janm
Hallo zusammen,

Ich habe manchmal das Problem, dass der Wert meiner Dimmer Item eine lange Nachkommazahl "wird".

Z.b. wird aus 80% zu irgendeinem Zeitpunkt 79.747373829 % (Beispiel)
Screenshot_20240109_211310_openHAB.jpg
Das Thing ist mit MIN=0, MAX=254, DELTA=1. Outgoing transformation pattern mit %d. konfiguriert.

Das Item mit MIN=0, MAX=100, STEP=1 in der Statedescription.
Das pattern mit %d %% konfiguriert.
Screenshot_20240109_211751_openHAB.jpg
Screenshot_20240109_211837_openHAB.jpg
Eigentlich sollte dadurch doch die einzige eine floats verhindert werden? 🤷🏼‍♂️

Hat jemand einen Tipp, wo nach Ich schauen könnte oder hatte jemand mal ein ähnliches Problem?

Freue mich auf Euer Feedback.

VG Jan

Re: Zigbee2mqtt / Tradfri Spots Dimmerwerte

Verfasst: 9. Jan 2024 21:46
von Janm
Hier mal die Text config.

Thing:

Code: Alles auswählen

ID: mqtt:topic:f92f33ab0a:FlurEgSpots
label: Flur-EG Spots
thingTypeUID: mqtt:topic
configuration:
  payloadNotAvailable: offline
  payloadAvailable: online
  transformationPattern: JSONPATH:$.state
  availabilityTopic: zigbee2mqtt/FlurEgSpots/availability
bridgeUID: mqtt:broker:f92f33ab0a
location: entrance
channels:
  - id: Schalter
    channelTypeUID: mqtt:switch
    label: Schalter
    description: null
    configuration:
      commandTopic: zigbee2mqtt/FlurEgSpots/set/state
      stateTopic: zigbee2mqtt/FlurEgSpots
      transformationPattern: JSONPATH:$.state
      off: OFF
      on: ON
  - id: Helligkeit
    channelTypeUID: mqtt:dimmer
    label: Helligkeit
    description: null
    configuration:
      commandTopic: zigbee2mqtt/FlurEgSpots/set/brightness
      min: 0
      stateTopic: zigbee2mqtt/FlurEgSpots
      transformationPattern: JSONPATH:$.brightness
      max: 254
      formatBeforePublish: "%d"
  - id: Farbtemperatur
    channelTypeUID: mqtt:dimmer
    label: Farbtemperatur
    description: null
    configuration:
      commandTopic: zigbee2mqtt/FlurEgSpots/set/color_temp
      min: 250
      stateTopic: zigbee2mqtt/FlurEgSpots
      transformationPattern: JSONPATH:$.color_temp
      max: 454
Item:

Code: Alles auswählen

label: Helligkeit
type: Dimmer
category: ""
groupNames:
  - FlurEgHauptBeleuchtung
tags:
  - Point
Model - state description:

Code: Alles auswählen

value: " "
config:
  pattern: "%d %%"
  step: "1"
  min: "0"
  max: "100"
 

Re: Zigbee2mqtt / Tradfri Spots Dimmerwerte

Verfasst: 12. Jan 2024 09:36
von Janm
Der Grund für diese Fließkommazahl ist übrigens wie folgt:

Das Thing hat eine Min-Max-Range von 0-254. Wenn der Wert (kommt aus MQTT) des Things auf 203 steht, ergibt sich für das Item, die oben abgebildete, Fließkommazahl, von 79,.... Eben nicht genau 80%.

Welches Ereignis dafür Verantwortlich ist, dass der in openhab eingestellte Wert von z.B. 80% überschrieben wird, habe ich jetzt nicht recherchiert (z2m, mqtt, ...), ist auch fast egal.

Ich suche jetzt also nach einen Weg, den Wert für Openhab immer glatt zu bügeln...

Re: Zigbee2mqtt / Tradfri Spots Dimmerwerte

Verfasst: 12. Jan 2024 10:20
von udo1toni
Ich denke, Du schaust an der falschen Stelle nach einer Lösung. Das eigentliche Problem ist ja eher, dass das verwendete Widget nicht auf .displayState zugreift, sondern auf .state. .displayState verwendet die Formatierung in den Metadaten (State Description Pattern)

Re: Zigbee2mqtt / Tradfri Spots Dimmerwerte

Verfasst: 12. Jan 2024 17:19
von Janm
Hi udo1toni,

Da bin ich mir nicht sicher, ich habe die widgets bereits mit der Option ignoreDisplayState false/true getestet. Ergebnis ist gleich. Aber ich werde es nochmals gezielt testen:
Screenshot_20240112_171546_openHAB.jpg

Code: Alles auswählen

component: oh-slider-item
config:
  icon: light
  iconUseState: true
  ignoreDisplayState: false
  item: Familienzimmer_Spots_Helligkeit
  max: 100
  min: 0
  releaseOnly: true
  step: 1
  title: Spots - Helligkeit
  label: false

Müsste ich an anderer Stelle noch etwas einstellen? Nicht das ich etwas übersehe :-/