MQTT2 Device - dimup/dimdown

Begonnen von Thomasvonpleis, 13 September 2019, 13:20:26

Vorheriges Thema - Nächstes Thema

Thomasvonpleis

Hallo,

Ich möchte gerne meine Lampe per Knopf hoch bzw. runter dimmen. Leider hat diese keinen entsprechenden set Befehl (dimup/dimdown).
Habe gedacht mit der setlist entsprechende Befehle umzusetzten, aber wie kann ich das reading brightness hoch bzw. runtersetzen?
Oder habt ihr andere Lösungsvorschläge?

defmod Licht_Wohnzimmer_Komode MQTT2_DEVICE zigbee_0x00158d000327cee9
attr Licht_Wohnzimmer_Komode IODev MQTT2_FHEM_Server
attr Licht_Wohnzimmer_Komode alias Komode
attr Licht_Wohnzimmer_Komode group Licht
attr Licht_Wohnzimmer_Komode icon light_control
attr Licht_Wohnzimmer_Komode model L_02b_zigbee2mqtt_light_cct
attr Licht_Wohnzimmer_Komode readingList zigbee2mqtt/0x00158d000327cee9:.* { json2nameValue($EVENT) }
attr Licht_Wohnzimmer_Komode room Wohnzimmer,hidden
attr Licht_Wohnzimmer_Komode setList on:noArg zigbee2mqtt/0x00158d000327cee9/set {"state":"ON"}\
  off:noArg zigbee2mqtt/0x00158d000327cee9/set {"state":"OFF"}\
  brightness:colorpicker,BRI,0,5,255 zigbee2mqtt/0x00158d000327cee9/set {"state":"on","$EVTPART0":"$EVTPART1"}\
  color_temp:colorpicker,CT,154,2,500 zigbee2mqtt/0x00158d000327cee9/set {"$EVTPART0":"$EVTPART1"}
attr Licht_Wohnzimmer_Komode webCmd toggle:on:off:brightness:color_temp

setstate Licht_Wohnzimmer_Komode ON
setstate Licht_Wohnzimmer_Komode 2019-09-13 12:08:41 associatedWith MQTT2_zigbee_pi
setstate Licht_Wohnzimmer_Komode 2019-09-13 12:50:57 brightness 1
setstate Licht_Wohnzimmer_Komode 2019-09-13 12:50:57 color_mode 2
setstate Licht_Wohnzimmer_Komode 2019-09-13 12:50:57 color_temp 370
setstate Licht_Wohnzimmer_Komode 2019-09-13 12:50:57 color_x 0.458
setstate Licht_Wohnzimmer_Komode 2019-09-13 12:50:57 color_y 0.41
setstate Licht_Wohnzimmer_Komode 2019-09-13 12:50:57 linkquality 42
setstate Licht_Wohnzimmer_Komode 2019-09-13 12:50:57 state ON


Vielen Dank für Hilfe

Beta-User

#1
Vorab mal: Willkommen im Forum!

Habe eben mal in der Doku bei zigbee2mqtt geschaut. Soweit erkennbar, gibt es für's Dimmen keinen direkten Befehl (was besser wäre). Mit etwas Perl sollte es gehen, in's unreine mal für hochdimmen:

dim_up:noArg {my nextlevel = ReadingsVal($name,"brightness",0) + 5;; "zigbee2mqtt/0x00158d000327cee9/set {\"brightness\":\"$nextlevel\"}" }

Das Problem dabei ist evtl., dass der (optisch wahnehmbare) Verlauf nicht linear ist, die 5 kannst du anpassen oder ggf. mit einer Korrekturfunktion ermitteln, wenn das nicht linear sein soll.

(Wenn du was funktionierendes hast: Ich bau's gerne in's attrTemplate ein ;) )

EDIT: Code geändert.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ChristianH

Guten Morgen,

hat es das Dimmen jetzt irgendwie in die Templates geschafft? Ich habe gerade ein Ikea Panel von einem "HUEDevice" zu einem "MQTT2_DEVICE" umkonfiguriert und stelle fest, dass ich nun weniger Funktionalität habe.

Gruss und Danke

Christian

Beta-User

Zitat von: Beta-User am 13 September 2019, 13:37:26
Das Problem dabei ist evtl., dass der (optisch wahnehmbare) Verlauf nicht linear ist, die 5 kannst du anpassen oder ggf. mit einer Korrekturfunktion ermitteln, wenn das nicht linear sein soll.

(Wenn du was funktionierendes hast: Ich bau's gerne in's attrTemplate ein ;) )
Solange ich keine Rückmeldung auf solche Aufforderungen erhalte, passiert in der Regel auch nichts, und der aktuelle Stand ist jeweils im svn ersichtlich bzw. wird per update verteilt. Reinschauen und du kennst die Antwort...

Zur Sache:
In den Shelly habe ich jüngst testweise was in die Richtung eingebaut: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L1985

Da sind aber vermutlich einige escape-Anweisungen drin, die man nicht braucht und die Stufen sind ziemlich grob. Ich fände es immer noch besser, wenn wir eine etwas "smoothere" Logik hätten, am besten einen zentralen Code in MQTT2_DEVICE (oder Color.pm), bei dem man ein paar Ankerpunkte und den "gefühlten Unterschied" angeben kann und damit die nächste Dimmstufe passend ermitteln.

Vorschläge nehme ich weiter gerne entgegen, und wir können sowas auch erst mal über myUtils-Code machen, wenn/solange es noch keine ausgereifte Lösung gibt.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ChristianH

Guten Morgen Beta-User,

der Blick ins SVN repository macht mich nun auch nicht schlauer - aber immer gut zu wissen, was ihr so treibt. Mir würde selbst ein holpriges Dimmen (up/down) schon reichen. Ich habe halt mehrere :

https://www.zigbee2mqtt.io/devices/ICPSHC24-30EU-IL-1.html
https://www.zigbee2mqtt.io/devices/L1527.html

und halt einige von den hier

https://www.zigbee2mqtt.io/devices/L1527.html

und, wenn ich dich richtig verstehe, dann sind gerade 4 von den 5 Tasten auf dieser RC nun funktionslos - ist das so?

Christian

Beta-User

Hmm,

Danke erst mal noch für die Links, das hat mich daran erinnert, dass es ja auch noch die Möglichkeit gibt, transitiontime mitzugeben - noch eine Variable, mit der man spielen könnte, um es "schön" zu machen.

Ich würde jetzt mal folgendes vorschlagen: Du bastelst "händisch" was in eines deiner Devices rein, das in die Richtung geht, was jüngst in den shelly Einzug gehalten hat. Dann kann ich das ggf. übernehmen, bitte dabei aber auch darauf achten, dass die Benennung der setter so ist, dass es für webCmd auch hübsch aussieht.
Du darfst gerne dabei auch die transitiontime mit "verwursten" bzw. einen weiteren setter dafür hinzufügen, falls erforderlich.

Dann können wir gerne das template erweitern bzw. das im Zigbee2-mqtt-Thread mal vorstellen, vielleicht fällt dazu noch jemandem anderem was ein, der das derzeit nutzt...

Was die Fernbedienung angeht: k.A., wie das genau ist (bin auf deconz), aber mir war so, als könnte man das direkt koppeln (in der zigbee2mqtt-Doku sollte das unter "bind" zu finden sein).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ChristianH

Tja, da ist meine Ironie nicht angekommen  ;D ich kann, weil kein Perl-Guru wie ihr Entwickler, nicht einfach was zusammenbasteln (kann nur mit Wissen über Storage und Server dienen) .... ich versuche mit "Codeschnipseln" mich hier "über Wasser zu halten".

Ich schau mir das mit dem "bind" mal an ... sonst geht es halt für die dimmbaren devices einfach auf "HUEDevice" zurück - da geht es halt (und das ist keine Kritik, sondern ein Fakt) out of the box.

Christian

Beta-User

Ironiefrei:

Ich bin kein Perl-Guru, und eigentlich nicht mal ein richtiger Entwickler...
Schnipsel hatte ich versucht zu liefern, aber: Testen kann man sowas dann deutlich besser, wenn man Hardware dahinter hat, denn "1, 2 oder 3 [...] ob richtig oder nicht, zeigt euch gleich das Licht!"

Aber mach', wie du lustig bist, erfahrungsgemäß greift das schon jemand auf, wenn es für ihn (so) wichtig ist (, dass er notfalls auch "verschnitppselten Perl-Code" selbst zusammenklebt)...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

flummy1978

Der Titel erinnert mich irgendwie so wage an eine schöne Funktion in einem gewissen Shelly Dimmer  ::) *gg*

Aber gut zu wissen, dass die Lampen die ich mal testen wollte, hier verarbeitet und genutzt werden:
Zitat von: ChristianH am 07 April 2020, 10:54:14
https://www.zigbee2mqtt.io/devices/L1527.html
Ist zwar nur teilweise eine FHEM Frage, aber zwei Sachen interessieren mich sehr:

Wie ist das Licht des 30x30 cm Panels ? (Heller / dunlker , Kälter / wärmer ... Vergleichbar mit anderer Beleuchtung die Du da hast - Typ und größe wären als Info hilfreich)
War es problematisch den Treiber in FHEM (zigbee2mqtt) einzubinden ?

Vielen Dank im Voraus :)
Grüße
Andreas

ChristianH

Tja, was soll ich sagen .... ist für mich das beste Leuchtmittel von IKEA, dimmt fliessend und auch die Farbwechsel sind stufenlos von warm zu kalt. Einbinden via MQTT2 war auch kein Problem und wenn man weiss, welches von den vielen zigbee2mqtt templates man nutzen sollte, dann ist das Einbinden kein Problem.

Ich werde mich noch an Codezeile L1985 probieren und sehen, ob das mit den Handfernbedienungen hilft - wenn nicht, dann geht es zurück zu HUEDevice. Licht, was sich nur per App/web schalten/dimmen lässt hat negativen WAF und gefährdet häuslichen Frieden - ganz nach "Happy wife, happy life"

Beta-User

Zitat von: ChristianH am 07 April 2020, 13:46:48
Ich werde mich noch an Codezeile L1985 probieren und sehen, ob das mit den Handfernbedienungen hilft - wenn nicht, dann geht es zurück zu HUEDevice. Licht, was sich nur per App/web schalten/dimmen lässt hat negativen WAF und gefährdet häuslichen Frieden - ganz nach "Happy wife, happy life"
Ich habe noch nicht ganz verstanden, wie das mit den Fernbedienungen gemeint ist: Wenn du ein Event von einer FB hast, kannst du den Dimm-Befehl auch direkt in ein notify oä. packen, das hat nicht direkt was mit der setList zu tun.

Wenn du die FB direkt mit "bind" (?) mit dem Leuchtmittel "peerst", sollte es auch ohne FHEM oder ein notify klappen, weil dann die Geräte direkt miteinander reden müßten.

Jedenfalls nach meinem Verständnis brauchst du den setter analog Zeile 1985 eigentlich nur, wenn du das Ding (die Lampe, nicht die Fernbedienung!) aus FHEMWEB heraus steuern können willst.

@flummy1978: Evtl. magst du den setter für den shelly nochmal kritisch beäugen, zwei Dinge sind mir noch unklar:
- gibt es nette Symbole, wenn man z.B. webCmd mit dimUp:dimDown ergänzt? (sonst müßte man das so umbenennen, dass FHEMWEB das automatisch richtig macht)
- Sind die "\" erforderlich oder nur "Hosenträger und Gürtel kombiniert" - ich meine eigentlich, das sollte ohne gehen bzw. (jüngst gelernt) mit einer "qq"-Anweisung einfacher:dimUp:noArg { my $num=ReadingsNum($NAME,'pct',0)+10;; return qq{shellies/DEVNAME/light/0/set {"turn": "on", "brightness": $num}};; }\
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ChristianH

Ich glaube, wir schreiben aneinander vorbei ..... das liegt sicher an mir. Ich kriege es nicht hin mit einer erfolgreichen gepairten FB irgendeine IKEA Leuchte zu dimmen.

Im vorherigen HUEDevice gab es für die Leuchten in der Auswahliste des set Kommandos  neben on, off, toggle usw dimUp und dimDown. Diese fehlen bei dem MQTT2_DEVICE, hier habe ich lediglich brightness.

Mein

([MQTT2_zigbee_IkeaTasterKueche:"^click:.brightness_down$"]) (set Ikea_Kuechen_Leiste dimDown)

klappt also nicht.

Gerne biete ich ein ZoomMeeting an.

Christian


Beta-User

Aha, du hast also entweder "nur" ein Problem mit dem Eventhandler (DOIF kann ich nicht), oder du brauchst die Anpassung am MQTT2_DEVICE, damit das klappt.

Das ist kein Ding für ein Zoom-Meeting, das sind erhebliche Verständnislücken bei den Grundlagen...

Da wir bei Grundlagen sind: An der Syntax ist zu erkennen, dass du da wohl ein DOIF hast, aber wir täten uns ggf. leichter, wenn du schlicht und ergreifend die Konventionen hier einhalten könntest und list's liefern (bzw. für MQTT2_DEVICE auch gerne eine RAW-Definition)...

Aus der Hüfte würde ich ungetestet mal mit dem hier gehen:
define n_Ikeataster_Kueche notify MQTT2_zigbee_IkeaTasterKueche.click:.brightness_down { my $num=maxNum(ReadingsNum('Ikea_Kuechen_Leiste','brightness',0)-20,0);; fhem("set Ikea_Kuechen_Leiste brightness $num");;}

Btw.: Man kann sowas auch generalisieren, ich habe dafür allerdings etwas andere Geräte, aber der "Steinbruch" dafür wäre hier zu finden: https://github.com/rejoe2/FHEM/blob/master/99_myUtils_MiLight.pm
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

flummy1978

Zitat von: ChristianH am 07 April 2020, 13:46:48
Tja, was soll ich sagen .... ist für mich das beste Leuchtmittel von IKEA, dimmt fliessend und auch die Farbwechsel sind stufenlos von warm zu kalt. Einbinden via MQTT2 war auch kein Problem und wenn man weiss, welches von den vielen zigbee2mqtt templates man nutzen sollte, dann ist das Einbinden kein Problem.
Vielen Dank für die Infos. Das steigert meine Neugier nach diesen Dingern noch mehr :) Wenn ich da mal was habe, kann ich hier auch sicherlich dann onTopic ein wenig mitreden :D

Zitat von: Beta-User am 07 April 2020, 16:34:02
@flummy1978: Evtl. magst du den setter für den shelly nochmal kritisch beäugen.....
Mache ich in den nächsten Tagen, spätestens  wenn ich auch das andere mitmache. Ich werde dann im MQTT Thread antworten wenn ich Ergebnisse habe.

Grüße
Andreas

ChristianH

Ich habe nie behauptet ein Notify zu haben .... ob nun DOIF oder Notify ist ja meist Geschmackssache.

Danke, damit kann ich wohl alle Widrigkeiten umschiffen - verstehen tue ich es zwar nicht, aber es lässt sich wohl auch für Farbtemperatur anpassen.

Von daher, noch mal DANKE!

anbei noch der LIST:

Internals:
   CFGFN     
   DEF        MQTT2_zigbee_IkeaTasterKueche:click:.brightness_up {{ my $num=maxNum(ReadingsNum('Ikea_Kuechen_Leiste','brightness',0)+20,0);; fhem("set Ikea_Kuechen_Leiste brightness $num");;}}
   FUUID      5e8ca774-f33f-a47d-e789-6b755647a5264c80
   NAME       NF.Ikea_Taster_Kueche_DIM_Up
   NOTIFYDEV  MQTT2_zigbee_IkeaTasterKueche
   NR         466
   NTFY_ORDER 50-DF.MQTT_Ikea_Taster_Kueche_DIM_Up_notify_1
   REGEXP     MQTT2_zigbee_IkeaTasterKueche:click:.brightness_up
   STATE      active
   TRIGGERTIME 1586277787.4728
   TYPE       notify
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1586277856.6006
           VALUE      active
   READINGS:
     2020-04-07 18:44:16   state           active
Attributes: