Autor Thema: Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE  (Gelesen 1402 mal)

Offline Beta-User

  • Hero Member
  • *****
  • Beiträge: 3989
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #30 am: 07 Oktober 2018, 20:24:51 »
Gibt es schon eine Möglichkeit bei den Tradfri lampen die Farbtemperatur oder die Farbe darüber zu ändern?
Das sollte "eigentlich" kein Problem sein: Im Prinzip sollte sich der brightness-code entsprechend anpassen lassen (setList ergänzen, webCmd und widgetOverride). Da aber meine Bulbs keine Farbtemperatur kennen und schon gleich keine Farbe, kann ich das nicht testen. Bei der Farbtemperatur müßten dann einfach auch die Grenzwerte für den Colorpicker-Slider angepaßt werden.

Notfalls kannst du mir die Topics nennen, auf die das gesendet werden muß, und das "Schlüsselwort" für den JSON-Blob, dann kann ich das per "Fernwartung" versuchen. Ansonsten gerne das Ergebnis posten, dann kommt's für Nachahmer ins Wiki ;) .
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | VCCU mit einiger HM-Hardware | MySensors seriell (2.3.1-beta@RS485, div. konkrete Hardware, u.a. einige DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 19147
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #31 am: 07 Oktober 2018, 22:54:14 »
Seit heute ist widgetOverride nicht unbedingt notwendig, man kann die modifier direkt ins setList schreiben, siehe https://forum.fhem.de/index.php/topic,90145.msg843370.html#msg843370

Offline Beta-User

  • Hero Member
  • *****
  • Beiträge: 3989
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #32 am: 08 Oktober 2018, 08:08:13 »
Danke für das mit der erweiterten setList, das ist m.E. wieder eine Vereinfachung, die dem Anfänger helfen dürfte.

Gestern bin ich noch über einen Punkt gestolpert: Will man in der setList $EVENT oder Teile davon verwenden, muß man das noch in geschweifte Klammern packen (siehe oben bei brightness), sonst wird das als Text behandelt und so versendet. Wäre es möglich, das auch noch zu vereinfachen oder habe ich mal wieder etwas übersehen?

Da logs manchmal mehr sagen als lange Erklärungen:
Ändert man das oben zu
brightness zigbee2mqtt/Kueche_Durchgang_A2/set {\"state\":\"on\",\"$EVTPART0\":\"$EVTPART1\"}kommt das hier raus:Client mosqsub/... received PUBLISH (d0, q0, r0, m0, 'zigbee2mqtt/Kueche_Durchgang_A1/set', ... (50 bytes))
{\"state\":\"on\",\"$EVTPART0\":\"$EVTPART1\"} 165
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | VCCU mit einiger HM-Hardware | MySensors seriell (2.3.1-beta@RS485, div. konkrete Hardware, u.a. einige DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 19147
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #33 am: 08 Oktober 2018, 08:48:48 »
Falls man in einer setList Zeile kein {} verwendet, dann werden alle Argumente des Befehls hinter dem spezifizierten topic als message geschrieben.
Ich habe Schwierigkeiten mir vorzustellen, wie das sinnvoll mit $EVENT zusammenspielen soll.

Offline MarkusN

  • Full Member
  • ***
  • Beiträge: 223
    • Markus´ Blog
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #34 am: 08 Oktober 2018, 09:29:10 »
Das sollte "eigentlich" kein Problem sein: Im Prinzip sollte sich der brightness-code entsprechend anpassen lassen (setList ergänzen, webCmd und widgetOverride). Da aber meine Bulbs keine Farbtemperatur kennen und schon gleich keine Farbe, kann ich das nicht testen. Bei der Farbtemperatur müßten dann einfach auch die Grenzwerte für den Colorpicker-Slider angepaßt werden.

Notfalls kannst du mir die Topics nennen, auf die das gesendet werden muß, und das "Schlüsselwort" für den JSON-Blob, dann kann ich das per "Fernwartung" versuchen. Ansonsten gerne das Ergebnis posten, dann kommt's für Nachahmer ins Wiki ;) .

Hier meine Definition, die ich mal um colortemp erweitert habe:

defmod ikea_flur_oben MQTT2_DEVICE
attr ikea_flur_oben IODev mqtt_server
attr ikea_flur_oben alias Licht Flur Oben
attr ikea_flur_oben eventMap on:ON off:OFF
attr ikea_flur_oben group group_licht
attr ikea_flur_oben icon light_control
attr ikea_flur_oben readingList zigbee2mqtt:zigbee2mqtt/ikea_flur_oben:.* { json2nameValue($EVENT) }
attr ikea_flur_oben room 110_Flur,23_MQTT
attr ikea_flur_oben setList on {'zigbee2mqtt/ikea_flur_oben/set {"state":"ON"}'}\
off {'zigbee2mqtt/ikea_flur_oben/set {"state":"OFF"}'}\
brightness {"zigbee2mqtt/ikea_flur_oben/set {\"$EVTPART0\":\"$EVTPART1\"}"}\
color_temp {"zigbee2mqtt/ikea_flur_oben/set {\"$EVTPART0\":\"$EVTPART1\"}"}
attr ikea_flur_oben webCmd brightness:on:off
attr ikea_flur_oben widgetOverride brightness:colorpicker,BRI,0,1,255 color_temp:colorpicker,CT,250,1,454

Die Range 250 - 454 bezieht sich auf die LED Panels, bei Gluehbirnen koennten diese Werte anders aussehen.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 19147
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #35 am: 08 Oktober 2018, 09:42:55 »
Zitat
Ich habe Schwierigkeiten mir vorzustellen, wie das sinnvoll mit $EVENT zusammenspielen soll.
Ist mir doch was eingefallen: falls die Zeile $EV enthaelt, dann wird sie speziell behandelt: in diesem Fall wird $EVENT und $EVTPARTx ersetzt. d.h. "set md brightness 10" liefert mit
attr md setList brightness zigbee2mqtt/Kueche_Durchgang_A2/set {"state":"on","$EVTPART0":"$EVTPART1"}die Topic/Message Kombination:zigbee2mqtt/Kueche_Durchgang_A2/set {"state":"on","brightness":"10"}Gilt fuer setList und getList.

Offline Beta-User

  • Hero Member
  • *****
  • Beiträge: 3989
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #36 am: 08 Oktober 2018, 10:15:12 »
@rudolfkoenig:
Es geht mehr um $EVTPARTx, weniger um den ganzen $EVENT. Bisher kenne ich keinen sinnvollen anderen Weg, z.B. das eigentliche Reading in JSON-Blobs zu bekommen als über die Verwendung von $EVTPART1 usw..

Für das rename muß es z.B. auszugsweise so aussehen:
... rename {"zigbee2mqtt/bridge/config/rename  { \"old\":\"$EVTPART1\",\"new\":\"$EVTPART2\"}"}\

@MarkusN
Danke für die Rückmeldung.
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | VCCU mit einiger HM-Hardware | MySensors seriell (2.3.1-beta@RS485, div. konkrete Hardware, u.a. einige DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 19147
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #37 am: 08 Oktober 2018, 10:42:19 »
Zitat
Es geht mehr um $EVTPARTx, weniger um den ganzen $EVENT
Das klingt so, als ob Du noch was vermissen wuerdest.
Rename geht jetzt auch so:
rename zigbee2mqtt/bridge/config/rename  {"old":"$EVTPART1","new":"$EVTPART2"}
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Beta-User

  • Hero Member
  • *****
  • Beiträge: 3989
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #38 am: 08 Oktober 2018, 10:48:37 »
(Sorry, der zwischenzeitliche Post von 9:42 ist mir durchgerutscht gewesen, so wie das in den letzten Posts von 9:42 und 10:42 Uhr geschildert ist, ist das super, jedenfalls vorläufig vermisse ich nichts)

Wow, also Verwenden von $EVTPARTx und auch noch ohne die Maskiererei!

Super Service!
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | VCCU mit einiger HM-Hardware | MySensors seriell (2.3.1-beta@RS485, div. konkrete Hardware, u.a. einige DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline Beta-User

  • Hero Member
  • *****
  • Beiträge: 3989
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #39 am: 08 Oktober 2018, 18:21:33 »
So, letzter Stand der Dinge (svn-Version) ist am Start, das vereinfacht die setList usw. wirklich nochmal sehr:defmod IKEA_Bulb1 MQTT2_DEVICE
attr IKEA_Bulb1 IODev MQTT2_FHEM_Server
attr IKEA_Bulb1 devStateIcon {devStateIcon255($name)}
attr IKEA_Bulb1 eventMap on:ON off:OFF
attr IKEA_Bulb1 icon light_control
attr IKEA_Bulb1 readingList zigbee_pi:zigbee2mqtt/Kueche_Durchgang_A1:.* { json2nameValue($EVENT) }
attr IKEA_Bulb1 room Esszimmer
attr IKEA_Bulb1 setList on zigbee2mqtt/Kueche_Durchgang_A1/set {"state":"ON"}\
off zigbee2mqtt/Kueche_Durchgang_A1/set {"state":"OFF"}\
brightness:colorpicker,BRI,0,15,255 zigbee2mqtt/Kueche_Durchgang_A1/set {"state":"ON","$EVTPART0":"$EVTPART1"}
attr IKEA_Bulb1 webCmd brightness
Nix mehr widgetoverride usw.
Den gekürzten Code habe ich gleich in's Wiki gepackt (funktioniert aber erst ab morgen bzw. mit der svn-Version).
Noch der devStateIcon-Code:##############################################
# $Id: myUtils_Color.pm 08-15 2018-10-08 18:31:44Z Beta-User $
#

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Color_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.

sub devStateIcon255($) {
my $name = shift(@_);
return ".*:off:toggle" if( ReadingsVal($name,"state","ON") eq "OFF" );
my %dim_values = (
   0 => "dim06%",
   1 => "dim12%",
   2 => "dim18%",
   3 => "dim25%",
   4 => "dim31%",
   5 => "dim37%",
   6 => "dim43%",
   7 => "dim50%",
   8 => "dim56%",
   9 => "dim62%",
  10 => "dim68%",
  11 => "dim75%",
  12 => "dim81%",
  13 => "dim87%",
  14 => "dim93%",
);

my $pct = ReadingsVal($name,"brightness","255");
my $s = $dim_values{int($pct/18)};
$s="on" if( $pct > 253 );
return ".*:$s:off";
}

1;
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | VCCU mit einiger HM-Hardware | MySensors seriell (2.3.1-beta@RS485, div. konkrete Hardware, u.a. einige DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Beta-User

  • Hero Member
  • *****
  • Beiträge: 3989
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #40 am: 10 Oktober 2018, 07:41:09 »
Das klingt so, als ob Du noch was vermissen wuerdest.
...vielleicht eine Sache noch, aber eher als Wunsch:
In den im Wiki verarbeiteten Fällen, gerade für $EVTPARTx, steht praktisch immer derselbe code, das einzige Unterscheidungsmerkmal ist vorne die set-Angabe. Vielleicht könnte man das noch "vereinfachen", also

attr <device> setList (on|off) zigbee2mqtt/Kueche_Durchgang_A1/set {"state":"$EVENT"}\
(brightness:colorpicker,BRI,0,15,255|color_temp:colorpicker,CT,250,1,454) zigbee2mqtt/Kueche_Durchgang_A1/set {"state":"ON","$EVTPART0":"$EVTPART1"}
Oder "setList .* ..."

Aber zugegeben: das ist dann schon ein nicht wirklich dringender Wunsch, das muß man ja nur einmal einrichten, dass war es schon... So ist es schon klasse, vielen Dank!
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | VCCU mit einiger HM-Hardware | MySensors seriell (2.3.1-beta@RS485, div. konkrete Hardware, u.a. einige DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 19147
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #41 am: 10 Oktober 2018, 09:05:43 »
Danke fuers Nachdenken und Optimieren, aber ich werde diesen Vorschlag erstmal nicht realisieren, da:
- ist fuer Anfaenger (also Wiki-Benutzer) schwieriger zu verstehen. Aus pedagogischer Sicht ist vermutlich selbst die widgetOverride Variante besser, da man auf einmal weniger verstehen muss.
- ist relativ viel Programmierlogik erforderlich
- das Verwenden von | kollidiert evtl. mit irgendwelchen widget-Parametern

Es sei denn, es gibt andere Anwendungsfaelle, die diese Nachteile ueberwiegen.

Offline Badflex

  • Full Member
  • ***
  • Beiträge: 433
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #42 am: 11 Oktober 2018, 20:52:33 »
Hallo,
Kann es sein das die router/repeater Funktion mit mqtt2 nicht geht?
Wenn die Lampen dicht am stick sind gehen sie bei mir einwandfrei. Sobald ich sie an den ursprünglichen Ort bringe geht nur noch eine. Eine andere ist nur 2 Meter daneben und sie geht nicht mehr.

Bei dem mqtt1 Server gingen sie alle 3.
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo

Offline Beta-User

  • Hero Member
  • *****
  • Beiträge: 3989
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #43 am: 11 Oktober 2018, 20:57:58 »
Unwahrscheinlich.
Die Verwaltung der zigbee-Geräte erfolgt durch den zigbee2mqtt-Dienst (kkoenk's Java-Code), und der wird nicht geändert, weil ein anderer Broker eingesetzt wird.
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | VCCU mit einiger HM-Hardware | MySensors seriell (2.3.1-beta@RS485, div. konkrete Hardware, u.a. einige DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline Badflex

  • Full Member
  • ***
  • Beiträge: 433
Antw:Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE
« Antwort #44 am: 12 Oktober 2018, 18:36:58 »
Mhh, komisch .
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo

 

decade-submarginal