Milight via MQTT (war: Modul für Sidoh-Bridge, jetzt: MQTT2)

Begonnen von Beta-User, 12 April 2018, 23:23:41

Vorheriges Thema - Nächstes Thema

Ingo298

RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

Beta-User

Ist eigentlich ein Selberbau-Projekt (und als solches auch eher einfach, ein ESP8266 (mit ausreichend verfügbaren PINs), ein nRF24-Modul (am besten das 2.300m-Modell), ein paar Kabel und ein Kondensator, that's it...).

Manchmal gibt es hier im Marktplatz aber auch fertig gelötete MySensors (WLAN-) Gateways. Das kann man direkt verwenden, wenn man den einen PIN umkonfiguriert.
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

Ingo298

Hallo zusammen,

ich bin jetzt auch Besitzer Bridge. Einbindung in Fhem hat auch soweit alles geklappt sodass
ich die Leuchtmittel schalten kann. Was jedoch nicht so richtig klappen möchte ist:
1. das Licht (RGBW-Streifen an FUT038 Controller) aus Fhem heraus auf Weiß stellen (über die WebUI des Milight-Hub ohne probleme)
2. anbindung an ALEXA, Gerät wird anglegt und kann teilweise geschaltet werden, es wird jedoch in der Alexa-App angezeigt "Gerät reagiert nicht"
3. die Farbe (color_r, color_g, color_b) wird scheinbar nicht übertragen somit auch kein hex bzw. farbliches devStateIcon

Brocker

defmod myBroker MQTT2_SERVER 1883 global
attr myBroker DbLogExclude .*
attr myBroker autocreate simple
attr myBroker rawEvents 1
attr myBroker room 99_0 Geraete
attr myBroker verbose 3

setstate myBroker 2020-02-27 15:25:43 RETAIN {"milight/LWT":"{\u0022status\u0022:\u0022connected\u0022,\u0022firmware\u0022:\u0022milight-hub\u0022,\u0022version\u0022:\u00221.10.5\u0022,\u0022ip_address\u0022:\u0022192.168.2.46\u0022,\u0022reset_reason\u0022:\u0022Software/System restart\u0022}","milight/states/0xE002/rgbw/1":"{\u0022status\u0022:\u0022OFF\u0022,\u0022brightness\u0022:255,\u0022hue\u0022:309,\u0022color\u0022:\u0022#FF00D8\u0022,\u0022bulb_mode\u0022:\u0022color\u0022}","milight/states/0xE003/rgb/0":"{\u0022state\u0022:\u0022OFF\u0022,\u0022status\u0022:\u0022OFF\u0022,\u0022bulb_mode\u0022:\u0022color\u0022,\u0022color\u0022:{\u0022r\u0022:255,\u0022g\u0022:0,\u0022b\u0022:0}}","milight/states/0xE004/rgb_cct/1":"{\u0022status\u0022:\u0022ON\u0022,\u0022color\u0022:\u0022#B2FF00\u0022}","milight/states/0xE005/fut089/1":"{\u0022status\u0022:\u0022ON\u0022,\u0022color\u0022:{\u0022r\u0022:255,\u0022g\u0022:255,\u0022b\u0022:255}}","milight/states/0xE005/rgb_cct/1":"{\u0022status\u0022:\u0022ON\u0022,\u0022color\u0022:{\u0022r\u0022:255,\u0022g\u0022:255,\u0022b\u0022:255}}","milight/states/0xE006/rgbw/1":"{\u0022status\u0022:\u0022ON\u0022,\u0022color\u0022:{\u0022r\u0022:255,\u0022g\u0022:255,\u0022b\u0022:255}}"}
setstate myBroker 2020-02-27 15:25:43 nrclients 1
setstate myBroker 2020-02-26 20:42:22 state Initialized


Milight-HUB
defmod MQTT2_milight_hub_7990748 MQTT2_DEVICE milight_hub_7990748
attr MQTT2_milight_hub_7990748 DbLogExclude .*
attr MQTT2_milight_hub_7990748 IODev myBroker
attr MQTT2_milight_hub_7990748 autocreate 1
attr MQTT2_milight_hub_7990748 bridgeRegexp milight_hub_7990748:milight/[^/]*at[^/]+/(0x[0-9a-fA-F]{1,4})/.*/([0-8])?.*:.* "milight_$1_$2"
attr MQTT2_milight_hub_7990748 devStateIcon connected:10px-kreis-gruen disconnected.*:10px-kreis-rot
attr MQTT2_milight_hub_7990748 model esp_milight_hub_bridge
attr MQTT2_milight_hub_7990748 readingList milight_hub_7990748:milight/LWT:.* { json2nameValue($EVENT) }
attr MQTT2_milight_hub_7990748 room MQTT2_DEVICE
attr MQTT2_milight_hub_7990748 setStateList on off
attr MQTT2_milight_hub_7990748 stateFormat <a href="http://ip_address" target="_blank">\
status\
</a>Version: \
version

setstate MQTT2_milight_hub_7990748 <a href="http://192.168.2.46" target="_blank">\
connected\
</a>Version: \
1.10.5
setstate MQTT2_milight_hub_7990748 2020-02-27 15:25:43 firmware milight-hub
setstate MQTT2_milight_hub_7990748 2020-02-27 15:25:43 ip_address 192.168.2.46
setstate MQTT2_milight_hub_7990748 2020-02-27 15:25:43 reset_reason Software/System restart
setstate MQTT2_milight_hub_7990748 2020-02-27 15:25:43 status connected
setstate MQTT2_milight_hub_7990748 2020-02-27 15:25:43 version 1.10.5


Milight Device
defmod LED_Essen MQTT2_DEVICE milight_0xE002_1
attr LED_Essen DbLogExclude .*
attr LED_Essen IODev myBroker
attr LED_Essen comment To switch device also on when changing brightness, change payload pattern to {"status":"ON","$EVTPART0":"$EVTPART1"} or add a new element to setList, similar to brightness, e.g.brightness_on and change payload pattern as described.
attr LED_Essen devStateIcon {zigbee2mqtt_devStateIcon255($name,"hex",1)}
attr LED_Essen eventMap /set_white:Weiss/night_mode:Nacht/white_mode:white
attr LED_Essen genericDeviceType light
attr LED_Essen homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr LED_Essen icon light_control
attr LED_Essen model esp_milight_hub_rgbw_bulb
attr LED_Essen readingList milight/states/0xE002/rgbw/1:.* { json2nameValue($EVENT) }\
  milight/states/0xE002/rgbw/0:.* { json2nameValue($EVENT) }\
  milight/updates/0xE002/rgbw/1:.* { json2nameValue($EVENT) }\
  milight/updates/0xE002/rgbw/0:.* { json2nameValue($EVENT) }\
milight/updates/0xE002/rgb_cct/1:.* { json2nameValue($EVENT) }\
milight/states/0xE002/rgb_cct/1:.* { json2nameValue($EVENT) }
attr LED_Essen room 00_4 Essen,Homekit,MQTT2_DEVICE
attr LED_Essen setExtensionsEvent 1
attr LED_Essen setList on:noArg milight/0xE002/rgbw/1 {"status":"ON"}\
  on_transition:slider,3,10,3600 milight/0xE002/rgbw/1 {"status":"ON","transition":$EVTPART1}\
  off:noArg milight/0xE002/rgbw/1 {"status":"OFF"}\
  off_transition:slider,3,10,3600 milight/0xE002/rgbw/1 {"status":"OFF","transition":$EVTPART1}\
  brightness:colorpicker,BRI,0,15,255 milight/0xE002/rgbw/1 {"$EVTPART0":"$EVTPART1"}\
  hue:colorpicker,HUE,0,1,359 milight/0xE002/rgbw/1 {"$EVTPART0":"$EVTPART1"}\
  command:uzsuSelectRadio,Weiss,Nacht milight/0xE002/rgbw/1 {"$EVTPART0":"$EVTPART1"}
attr LED_Essen setStateList on off
attr LED_Essen userReadings hex:color_r.* {Color::rgb2hex(ReadingsVal($name,"color_r",255),ReadingsVal($name,"color_g",255),ReadingsVal($name,"color_b",255))}, hue:bulb_mode.*white {"0"}
attr LED_Essen webCmd brightness:hue:command

setstate LED_Essen OFF
setstate LED_Essen 2020-02-26 22:14:16 associatedWith MQTT2_milight_hub_7990748
setstate LED_Essen 2020-02-27 12:35:44 brightness 255
setstate LED_Essen 2020-02-27 12:35:44 bulb_mode color
setstate LED_Essen 2020-02-27 12:35:44 color #FF00D8
setstate LED_Essen 2020-02-27 06:43:01 color_b 255
setstate LED_Essen 2020-02-27 06:43:01 color_g 255
setstate LED_Essen 2020-02-27 06:43:01 color_r 255
setstate LED_Essen 2020-02-26 22:59:23 command set_white
setstate LED_Essen 2020-02-26 22:12:59 group_id 1
setstate LED_Essen 2020-02-27 06:43:01 hex FFFFFF
setstate LED_Essen 2020-02-27 12:35:44 hue 309
setstate LED_Essen 2020-02-26 21:10:20 on_transition set 3
setstate LED_Essen 2020-02-27 12:35:44 state OFF
setstate LED_Essen 2020-02-27 12:35:44 status OFF


kann jemand hier weiterhelfen ??

Mit freundlichen Grüßen
Ingo
RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

Beta-User

Hmm, schau mal als erstes in den Einstellungen des Hub, was alles via MQTT übertragen wird, da scheint die "color-Variante mit Einzelkanälen" nicht mit dabei zu sein (oder es hat sich mal wieder was geändert).

Wiederholtes Weiß-Stellen klappt auch bei mir nicht, da muß was ein anderes Kommando dazwischen sein.

Zu Alexa kann ich wenig sagen, aber die Beschreibung "teilweise" ist so unspezifisch, dass damit vermutlich auch sonst niemand was anfangen kann (bitte konkret nennen, was geht, und was nicht).

(die cct-Einträge sind irritierend, die kommen vermutlich von einer "Nicht-Umstellung" bei Schaltungen über den Hub her, oder?)
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

andre07

Hallo
Bei mir sieht es in der Bridge so aus

ZitatMQTT topic pattern:milight/:hex_device_id/:device_type/:group_id
ZitatMQTT update topic pattern:milight/updates/:hex_device_id/:device_type/:group_id
ZitatMQTT state topic pattern:milight/states/:hex_device_id/:device_type/:group_id
ZitatMQTT Client Status Topic: milight/LWT



Ingo298

Einiges habe ich bereits hinbekommen
zu 3. wenn ich im MQTT die Group state fields hex_color deaktiviere wird color_r, color_g, color_b übertragen
zu 2. alle Geräte nochmal gelöscht neu angelegt geht auch, sowie ich z.B. sage "Alexa, stelle licht essen weiß"
geht es nicht mehr (Gerät reagiert nicht) erst wenn ich irgend eine Farbe wieder auswähle geht es wieder

MfG Ingo


Hier die einstellung in MQTT
RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

TomLee

@Beta-User

Hatte mich vor längerer Zeit damit beschäftigt, aber nicht wirklich weiter gekommen.

Welche Einstellungen bei den Packet-Wiederholungen würdest du vornehmen/empfehlen, wenn die Leuchte ab und an nicht direkt an geht ?

Es liegt definitiv nicht am Abstand Leuchte->Gateway, das Gateway war schon Monate direkt unter der Lampe (Deckenmontage) in einer Steckdose Bodennähe (30cm), aktuell in ca. 5 Metern Entfernung hinter einer Couch, das Problem tritt nicht oft aber immer wieder mal auf.

Gruß

Thomas

Beta-User

Schwierig...

Ich steuere relativ wenig aktiv vom Hub aus, das meiste ist Empfangen (FB-Funktionalität)...

Hier mal meine Einstellungen, ist aber vor dem genannten Hintergrund nicht wirklich optimiert:
{[deleted],"ce_pin":4,"csn_pin":15,"reset_pin":0,"led_pin":-2,"radio_interface_type":"nRF24","packet_repeats":50,"http_repeat_factor":1,"auto_restart_period":0,[deleted],"mqtt_topic_pattern":"milight/:device_id/:device_type/:group_id","mqtt_update_topic_pattern":"milight/updates/:device_id/:device_type/:group_id","mqtt_state_topic_pattern":"milight/states/:device_id/:device_type/:group_id","mqtt_client_status_topic":"milight/LWT","simple_mqtt_client_status":false,"discovery_port":48899,"listen_repeats":3,"state_flush_interval":10000,"mqtt_state_rate_limit":500,"mqtt_debounce_delay":500,"packet_repeat_throttle_sensitivity":0,"packet_repeat_throttle_threshold":200,"packet_repeat_minimum":3,"enable_automatic_mode_switching":false,"led_mode_wifi_config":"Fast toggle","led_mode_wifi_failed":"On","led_mode_operating":"Slow blip","led_mode_packet":"Flicker","led_mode_packet_count":3,"hostname":"milight-hub","rf24_power_level":"MAX","rf24_listen_channel":"LOW","wifi_static_ip":"","wifi_static_ip_gateway":"","wifi_static_ip_netmask":"","packet_repeats_per_loop":10,"home_assistant_discovery_prefix":"","wifi_mode":"n","default_transition_period":500,"rf24_channels":["LOW","MID","HIGH"],"device_ids":[],"gateway_configs":[],"group_state_fields":["state","brightness","saturation","mode","color_temp","bulb_mode","computed_color"],"group_id_aliases":{}}
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

Mitch

Mit meinem "Projekt", so viel wie möglich auf MQTT umzubauen, war heute eine Altlast dran.

Habe hier seit langem drei Milight RGBW Leuchtmittel in einer Lampe.
Dazu habe ich eine Fernbedienung, mit der kann ich die Leuchtmittel auch steuern.
Bridge hatte ich mal.

Jetzt habe ich mir heute einen Milight Hub zusammen gebaut.
Mit dem Sniffer konnte ich auch ganz schnell die Adresse der FB heraus finden.
Habe dann noch alle drei Leuchtmittel einzeln gepaired.

In fhem wurde mir eine Device (der Hub) angelegt, wie im Wiki beschrieben.
Habe dann das esp_milight_hub_bridge Template angewandt.

So weit, so gut, ich sehe die Änderungen über die FB in fhem.

Leider kommen aber keine neuen Devices für die Leuchtmittel, sondern die readingList im Hub wurde erweitert.
Nun kann ich natürlich nichts schalten.

Der Hub:
Internals:
   CFGFN     
   CID        milight_hub_704684
   DEF        milight_hub_704684
   DEVICETOPIC MQTT2_milight_hub_704684
   FUUID      5fa98b54-f33f-5738-a24b-339fbae58a2056e3
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     23
   NAME       MQTT2_milight_hub_704684
   NR         23006
   STATE      <a href="http://ip_address" target="_blank">
status
</a>Version:
version
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 23
   myBroker_TIME 2020-11-09 20:05:20
   READINGS:
     2020-11-09 19:33:39   attrTemplateVersion 20200701
     2020-11-09 20:05:05   brightness      255
     2020-11-09 20:06:02   bulb_mode       white
     2020-11-09 20:06:02   color_b         255
     2020-11-09 20:06:02   color_g         255
     2020-11-09 20:06:02   color_r         255
     2020-11-09 20:06:07   command         set_white
     2020-11-09 20:05:20   hue             117
     2020-11-09 20:05:20   state           ON
Attributes:
   IODev      myBroker
   alias      Milight Hub
   autocreate 1
   bridgeRegexp milight/[^/]*at[^/]+/(0x[0-9a-fA-F]{1,4})/.*/([0-8])?.*:.* "milight_$1_$2"
   devStateIcon connected:10px-kreis-gruen disconnected.*:10px-kreis-rot
   group      Zentrale
   icon       mqtt
   model      esp_milight_hub_bridge
   readingList milight/LWT:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/updates/0xEE6D/rgbw/1:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/states/0xEE6D/rgbw/1:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/updates/0x1/rgbw/1:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/states/0x1/rgbw/1:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/updates/0x2/rgbw/1:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/states/0x2/rgbw/1:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/updates/0x3/rgbw/1:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/states/0x3/rgbw/1:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/updates/0x2/rgbw/0:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/states/0x2/rgbw/0:.* { json2nameValue($EVENT) }
milight_hub_704684:pattern_milight/updates/0xEE6D/rgbw/0:.* { json2nameValue($EVENT) }
   room       Zentrale
   setStateList on off
   stateFormat <a href="http://ip_address" target="_blank">
status
</a>Version:
version


Die 0xEE6D ist die Fernbedienung, die 0x1 bis 3 sind die Leuchtmittel.

Was mache ich falsch?
FHEM im Proxmox Container

rudolfkoenig

Dein bridgeRegexp Attribut passt nicht auf die empfangenen Topics.
Man muss es so anpassen, dass aus jedem topic der richtige "Geraetidentifizierer" extrahiert wird.
Z.Bsp.:
pattern_milight.*0x(.+)/rgbw/(.+):.* "milight_$1_$2"

Mitch

FHEM im Proxmox Container

Snocksman

Ich hab da mal ne Frage... Ich habe vor dem Milight-Hub über MQTT seinerzeit das Wifilight Modul genutzt. Hiermit war es möglich, bestimmte "vordefinierte" Farben per webCmd zu setzen.

Das sah configmäßig dann so aus:

attr LED-Controller webCmd Aus:dim:Ein:RGB:RGB ffffff:RGB FF0000:RGB FFFF00:RGB 00FF00:RGB 00FFFF:RGB 0000FF:RGB FF00FF:RGB ED8E00:RGB 56DB2E:RGB ED6002:RGB 753612:RGB 61A4AB:RGB 76ADA6:RGB 111461:RGB 4D1B46:RGB E3280B:RGB 46187A:RGB 9E5058:RGB 5E395C:RGB 4D330B


Ist sowas auch mit den Milight-Hub Devices möglich und wenn ja, wie ?

Mitch

Geht genauso.
webCmd einrichten und gut. So mache ich das auch.
FHEM im Proxmox Container

Snocksman

#268
Na ganz so einfach scheint das leider nicht zu sein... wenn ich im webCmd einfach z.B. RGB ffffff hinzufüge und dann auf das webCmd drauf klicke, bekomme ich die Meldung: Unknown argument RGB. Choose one of...... Das webCmd wird auch nicht richtig dargestellt. Anstelle der Farbbubble steht dort ausgeschrieben RGB ffffff

Ich denke mal, das liegt auch daran, dass für das MQTT Device auch HUE anstatt RGB genutzt wird, oder ?  ???


hue:colorpicker,HUE,0,1,359 milight/0x647/rgb_cct/1 {"$EVTPART0":"$EVTPART1"}


Wäre aber cool, wenn du mir da auf die sprünge helfen könntest. Vielleicht pastest du einfach mal ein Device hier rein, bei dem du diese Farbbubbles nutzt, dann kann ich ja mal mit meinem vergleichen.

Mitch

FHEM im Proxmox Container