Jey-Cee / ioBroker.deconz

Connects to deConz software developed by dresden-elektronik. This software aims to be a universal ZigBee Gateway solution, using hardware from dresden-elektronik the ConBee USB stick and RaspBee a modul for the Raspberry Pi.
Apache License 2.0
55 stars 34 forks source link

Action Wert wird falsch gesetzt #145

Closed MC-1984 closed 4 years ago

MC-1984 commented 4 years ago

Ich steuere meine Lampen mit dem Action-Datenpunkt, z.B. so: "on": true, "bri": 9, "xy": [0.553,0.4102]

Das hat sonst immer einwandfrei funktioniert. Jetzt habe ich das Problem, dass der brightness nicht auf 9 gesetzt wird (wie es zu erwarten wäre) sondern auf 9.03543307086614.

On/Off und color funktionieren einwandfrei. Wird der brightness-Wert über den Action-Datenpunkt geändert flackert die Lampe kurz (heller oder dunkler) und bleibt dann in der vorherigen Helligkeit.

Jey-Cee commented 4 years ago

Stelm bitte mal das Log level der Adapter instanz auf debug. Damit man sieht was für werte von deConz kommen. Es werden seitens des Adapters keine Umrechnungen für Bri vorgenommen, also ist es Wahrscheinlich das der Wert von deConz kommt.

Außerdem fehlen bei deiner Fehlermeldung Essentielle infos wie die Versionen von Adapter und deConz.

MC-1984 commented 4 years ago

Sorry für die fehlenden Angaben. deConz: 2.5.74 API: 1.16.0 Adapter: 1.3.7

Hier das Log: deconz.0 2020-05-12 10:52:35.111 debug (7273) Subscribed to updates...
deconz.0 2020-05-12 10:52:35.094 debug (7273) Websocket connection closed
deconz.0 2020-05-12 10:51:35.119 debug (7273) Code 200: Request succeded get group attributes 1: {"action":{"bri":127,"colormode":"hs","ct":0,"effect":"none","hue":0,"on":false,"sat":127,"scene":null,"xy":[0,0]},"devicemembership":[],"etag
deconz.0 2020-05-12 10:51:35.103 debug (7273) Code 200: Request succeded get light state 2: {"ctmax":454,"ctmin":250,"etag":"695fffed779d56b6c79204168d4b43bd","hascolor":true,"manufacturername":"IKEA of Sweden","modelid":"TRADFRI bulb E14
deconz.0 2020-05-12 10:51:35.093 debug (7273) Websocket message: {"e":"changed","id":"1","r":"groups","state":{"all_on":false,"any_on":true},"t":"event"}
deconz.0 2020-05-12 10:51:35.091 debug (7273) Websocket message: {"e":"changed","id":"2","r":"lights","state":{"alert":null,"bri":14,"colormode":"xy","hue":364,"on":true,"reachable":true,"sat":100,"xy":[0.553,0.4102]},"t":"event","uniqueid
deconz.0 2020-05-12 10:51:35.085 debug (7273) Code 200: Request succeded set light state 2: [{"success":{"/lights/2/state/on":true}},{"success":{"/lights/2/state/bri":14}},{"success":{"/lights/2/state/xy":[0.553,0.4102]}}]
deconz.0 2020-05-12 10:51:35.025 debug (7273) dp: action; id:Lights.2 tmp: deconz,0,Lights,2
deconz.0 2020-05-12 10:51:35.025 debug (7273) stateChange Lights.2 {"val":"\"on\": true, \"bri\": 14, \"xy\": [0.553,0.4102]","ack":false,"ts":1589273495021,"q":0,"from":"system.adapter.javascript.0","user":"system.user.admin","lc":1589226
Jey-Cee commented 4 years ago

Also im Log ist kein Krummer wert zu sehen. Kann es sein das du brightness mit Level verwechselst? Da wird umgerechnet und dort kommen auch Krumme Werte raus, aber in Prozent. Während brightness 0-254 in Ganzzahl ist.

MC-1984 commented 4 years ago

Also ich möchte diesen Wert (neben anderen) über den Action-Datenpunkt steuern:

image

Das hat bisher auch immer einwandfrei funktioniert.

Offenbar liegen hier jedoch zwei unabhängige Fehler vor (wobei das eine nur ein Anzeigeproblem ist).

Ich steuere alles über aliase. Die krummen Werte tauchen allerdings nur im alias auf, im Datenpunkt unter deconz ist es immer richtig (unabhängig ob dort direkt eingegeben oder über alias geändert).

Beispiel: Ich gebe den Wert 5 (direkt oder über action) im alias ein, dann springt es sofort um und im alias sieht es dann so aus:

image

Im verknüpften Datenpunkt unter deconz stimmt es:

image

Es ist zwar seltsam, funktioniert aber dennoch einwandfrei.

Leider ist das Problem aber unabhängig von dem folgenden Fehler. Über "on": true, "bri": 9, "xy": [0.553,0.4102] wird der Wert bri korrekt auf 9 (im deconz Datenpunkt, auf 9.xxx im alias) gesetzt. Die Lampe flackert kurz heller oder dunkler. Die Farbe wird entsprechend geändert und auch ein und ausschalten funktioniert. Nur die Helligkeit ändert sich nicht mit (hat bis vor kurzem jedoch funktioniert). Klicke ich nach dem Ändern des action Datenpunktes auf den Datenpunkt bri direkt (also in die Zelle in der die Ziffer 9 steht) und drücke nur enter, dann ändert die Lampe tatsächlich die Helligkeit und flackert nicht nur wie zuvor beim Ändern des action Datenpunktes dunkler.

Ich hoffe es ist nachvollziehbar?

Jey-Cee commented 4 years ago

Ok ich verstehe, aber kann es nicht reproduzieren. Bei mir tut es genau was zu erwarten ist. Kann es sein das du ein Skript hast das hier vielleicht rein Pfuscht?

MC-1984 commented 4 years ago

Hatte ich auch schon gedacht und habe die Javascript Instanz gestoppt. Daran kann es also auch nicht liegen. Macht es Sinn mal auf eine ältere Version downzugraden?

MC-1984 commented 4 years ago

Ein downgrade auf 1.2.6 hat nichts gebracht. Es scheint allerdings eine Verbindung mit diesem issue zu geben: https://github.com/iobroker-community-adapters/ioBroker.deconz/issues/51#issuecomment-589195129

MC-1984 commented 4 years ago

Ich habe herausgefunden, dass die automatische Änderung des Helligkeitswert (ich gebe unter bri 9 ein und der Datenpunkt springt sofort zu 9.03543307086614 um) nur passiert, wenn der deconz Adapter läuft. Stoppe ich den Adapter tritt das Problem nicht auf.

MC-1984 commented 4 years ago

Ich kann nicht sagen durch welches Update genau das Problem behoben wurde, aber der Fehler hinsichtlich der automatischen Änderung der Werts tritt nicht mehr auf.

MC-1984 commented 4 years ago

Leider besteht der Fehler fort, dass eine Steuerung des bri Wertes über den action Datenpunkt nicht möglich ist.

Den action Datenpunkt steuere ich so z.B.:

image

Die Lampe geht wie gewünscht an und auch der xy Wert wird korrekt geändert. Auch der Datenpunkt bri wird offenbar geändert, die Lampe verändert jedoch die Helligkeit nur für den Bruchteil einer Sekunde bevor sie wieder zurückspringt.

image

Klicke ich in den Datenpunkt bri und bestätige mit enter wird auch der zuvor mit action dort eingetragene Wert sofort an die Lampe gesendet.

Jey-Cee commented 4 years ago

Kann es das hier sein -> https://github.com/dresden-elektronik/deconz-rest-plugin/issues/1030

MC-1984 commented 4 years ago

Ja, das sieht ganz danach aus. Dann bleibt nichts weiter übrig als auf ein Firmwareupdate zu warten. Ein workaround ist es für alle die das gleiche Problem haben die transitiontime auf 0 zu setzten. Dann funktioniert es (sieht nur leider nicht so schön aus beim Übergang).