MiLight über ESP8266

Hi,
ich bin auf dieses Projekt gestoßen https://github.com/sidoh/esp8266_milight_hub. Konkret wird dort ein ESP8266 mit Funkmodul als MiLight Hub (statt der iBox) eingesetzt. Einen Vorteil den ich sehe ist, dass man pro Hub nichtmehr auf 4 Zonen begrenzt ist. Neben einer REST API kann der ESP über MQTT angesteuert werden - gerade jetzt wo IPS das aktuell in der Beta ja nativ unterstützt sicherlich interessant. Hat damit schonmal jemand experimentiert, gibt es evtl. sogar schon Module?

Gruß

Teste es und schick mir Debugs vom MQTT Server, dann schaue ich mir das an.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Hi,
ich habe es leider immernoch nicht zum Laufen bekommen. Sobald es läuft werde ich die Debugs hier posten! Danke schonmal für das Angebot!

Gruß

Hi,
auf dem ESP läuft das ganze nun, ich kann die Lampen über das Webinterface entsprechend steuern. Leider fehlt mir absolut der Ansatz in Symcon auch nur irgendwas damit hinzubekommen, wie kann ich denn testweise etwas an den ESP senden? Die Dokumentation zum MQTT Modul hilft mir hier leider nicht. Hier nochmal die Beschreibung zu der Schnittstelle:

To configure your ESP to integrate with MQTT, fill out the following settings:

mqtt_server- IP or hostname should work. Specify a port with standard syntax (e.g., „mymqttbroker.com:1884“).
mqtt_topic_pattern - you can control arbitrary configurations of device ID, device type, and group ID with this. A good default choice is something like milight/:device_id/:device_type/:group_id. More detail is provided below.
(optionally) mqtt_username
(optionally) mqtt_password
More detail on mqtt_topic_pattern

mqtt_topic_pattern leverages single-level wildcards (documented here). For example, specifying milight/:device_id/:device_type/:group_id will cause the ESP to subscribe to the topic milight/+/+/+. It will then interpret the second, third, and fourth tokens in topics it receives messages on as :device_id, :device_type, and :group_id, respectively. The following tokens are available:

:device_id - Device ID. Can be hexadecimal (e.g. 0x1234) or decimal (e.g. 4660).
:device_type - Remote type. rgbw, fut089, etc.
:group_id - Group. 0-4 for most remotes. The „All“ group is group 0.
Messages should be JSON objects using exactly the same schema that the REST gateway uses for the /gateways/:device_id/:device_type/:group_id endpoint. Documented above in the Bulb commands section.

Example:

If mqtt_topic_pattern is set to milight/:device_id/:device_type/:group_id, you could send the following message to it (the below example uses a ruby MQTT client):

irb(main):001:0> require ‚mqtt‘
irb(main):002:0> client = MQTT::Client.new(‚10.133.8.11‘,1883)
irb(main):003:0> client.connect
irb(main):004:0> client.publish(‚milight/0x118D/rgb_cct/1‘, ‚{„status“:„ON“,„color“:{„r“:255,„g“:200,„b“:255},„brightness“:100}‘)
This will instruct the ESP to send messages to RGB+CCT bulbs with device ID 0x118D in group 1 to turn on, set color to RGB(255,200,255), and brightness to 100.

Updates

ESPMH is capable of providing two types of updates:

Delta: as packets are received, they are translated into the corresponding command (e.g., „set brightness to 50“). The translated command is sent as an update.
State: When an update is received, the corresponding command is applied to known group state, and the whole state for the group is transmitted.
Delta updates

To publish data from intercepted packets to an MQTT topic, configure MQTT server settings, and set the mqtt_update_topic_pattern to something of your choice. As with mqtt_topic_pattern, the tokens :device_id, :device_type, and :group_id will be substituted with the values from the relevant packet. :device_id will always be substituted with the hexadecimal value of the ID. You can also use :hex_device_id, or :dec_device_id if you prefer decimal.

The published message is a JSON blob containing the state that was changed.

As an example, if mqtt_update_topic_pattern is set to milight/updates/:hex_device_id/:device_type/:group_id, and the group 1 on button of a Milight remote is pressed, the following update will be dispatched:

irb(main):005:0> client.subscribe(‚milight/updates/+/+/+‘)
=> 27
irb(main):006:0> puts client.get.inspect
[„lights/updates/0x1C8E/rgb_cct/1“, „{„status“:„on“}“]
Full state updates

For this mode, mqtt_state_topic_pattern should be set to something like milight/states/:hex_device_id/:device_type/:group_id. As an example:

irb(main):005:0> client.subscribe(‚milight/states/+/+/+‘)
=> 27
irb(main):006:0> puts client.get.inspect
[„lights/states/0x1C8E/rgb_cct/1“, „{„state“:„ON“,„brightness“:255,„color_temp“:370,„bulb_mode“:„white“}“]
irb(main):007:0> puts client.get.inspect
[„lights/states/0x1C8E/rgb_cct/1“, „{„state“:„ON“,„brightness“:100,„color_temp“:370,„bulb_mode“:„white“}“]
Make sure that mqtt_topic_pattern, mqtt_state_topic_pattern, and matt_update_topic_pattern are all different! If they are they same you can put your ESP in a loop where its own updates trigger an infinite command loop.

Customize fields

You can select which fields should be included in state updates by configuring the group_state_fields parameter. Available fields should be mostly self explanatory, with the possible exceptions of:

state / status - same value with different keys (useful if your platform expects one or the other).
brightness / level - [0, 255] and [0, 100] scales of the same value.
kelvin / color_temp - [0, 100] and [153, 370] scales for the same value. The later’s unit is mireds.
bulb_mode - what mode the bulb is in: white, rgb, etc.
color / computed_color - behaves the same when bulb is in rgb mode. computed_color will send RGB = 255,255,255 when in white mode. This is useful for HomeAssistant where it always expects the color to be set.
oh_color - same as color with a format compatible with OpenHAB’s colorRGB channel type.
device_id / device_type / group_id - this information is in the MQTT topic or REST route, but can be included in the payload in the case that processing the topic or route is more difficult.
Client Status

To receive updates when the MQTT client connects or disconnects from the broker, confugre the mqtt_client_status_topic parameter. A message of the following form will be published:

{„status“:„disconnected_unclean“,„firmware“:„milight-hub“,„version“:„1.9.0-rc3“,„ip_address“:„192.168.1.111“,„reset_reason“:„External System“}
If you wish to have the simple messages connected and disconnected instead of the above environmental data, configure simple_mqtt_client_status to true (or set Client Status Message Mode to „Simple“ in the Web UI).

Hi,
ich habe es nun hinbekommen und kann die Lampen durch das Senden einfacher Kommandos steuern. Ich habe mal ein erstes Debug angehängt. Was genau braucht ihr noch? Vielen Dank schonmal für die Unterstützung!

Gruß

TXT: 04.08.2019, 01:17:49 |      MQTT:TX:PUBLISH | Topic: milight/0x22/rgb_cct/1, Payload: "status":"ON","color":{"r":255,"g":200,"b":255},"brightness":100
HEX: 04.08.2019, 01:17:49 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 22 73 74 61 74 75 73 22 3A 22 4F 4E 22 2C 22 63 6F 6C 6F 72 22 3A 7B 22 72 22 3A 32 35 35 2C 22 67 22 3A 32 30 30 2C 22 62 22 3A 32 35 35 7D 2C 22 62 72 69 67 68 74 6E 65 73 73 22 3A 31 30 30 
TXT: 04.08.2019, 01:17:49 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:17:49 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:17:57 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:17:57 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:17:57 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:17:57 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:18:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:18:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:18:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:18:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:18:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:18:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:18:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:18:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:18:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:18:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:18:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:18:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:18:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:18:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:18:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:18:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:19:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:19:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:19:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:19:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:19:16 |      MQTT:TX:PUBLISH | Topic: milight/0x22/rgb_cct/1, Payload: "status":"OFF"
HEX: 04.08.2019, 01:19:16 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 22 73 74 61 74 75 73 22 3A 22 4F 46 46 22 
TXT: 04.08.2019, 01:19:16 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:19:16 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:19:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:19:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:19:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:19:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:19:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:19:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:19:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:19:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:19:50 |      MQTT:TX:PUBLISH | Topic: milight/0x22/rgb_cct/1, Payload: "status":"OFF"
HEX: 04.08.2019, 01:19:50 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 22 73 74 61 74 75 73 22 3A 22 4F 46 46 22 
TXT: 04.08.2019, 01:19:50 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:19:50 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:19:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:19:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:19:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:19:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:20:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:20:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:20:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:20:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:20:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:20:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:20:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:20:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:20:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:20:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:20:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:20:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:20:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:20:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:20:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:20:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:21:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:21:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:21:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:21:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:21:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:21:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:21:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:21:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:21:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:21:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:21:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:21:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:21:53 |      MQTT:TX:PUBLISH | Topic: milight/0x0022/rgb_cct/1, Payload: "status":"OFF"
HEX: 04.08.2019, 01:21:53 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 30 30 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 22 73 74 61 74 75 73 22 3A 22 4F 46 46 22 
TXT: 04.08.2019, 01:21:53 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:21:53 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:21:56 |      MQTT:TX:PUBLISH | Topic: milight/0x0022/rgb_cct/1, Payload: "status":"OFF"
HEX: 04.08.2019, 01:21:56 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 30 30 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 22 73 74 61 74 75 73 22 3A 22 4F 46 46 22 
TXT: 04.08.2019, 01:21:56 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:21:56 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:21:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:21:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:21:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:21:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:22:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:22:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:22:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:22:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:22:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:22:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:22:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:22:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:22:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:22:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:22:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:22:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:22:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:22:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:22:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:22:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:23:00 |      MQTT:TX:PUBLISH | Topic: milight/0x0022/rgb_cct/1, Payload: {"status":"ON","color":{"r":255,"g":200,"b":255},"brightness":100}
HEX: 04.08.2019, 01:23:00 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 30 30 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 7B 22 73 74 61 74 75 73 22 3A 22 4F 4E 22 2C 22 63 6F 6C 6F 72 22 3A 7B 22 72 22 3A 32 35 35 2C 22 67 22 3A 32 30 30 2C 22 62 22 3A 32 35 35 7D 2C 22 62 72 69 67 68 74 6E 65 73 73 22 3A 31 30 30 7D 
TXT: 04.08.2019, 01:23:00 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:23:00 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:23:04 |      MQTT:TX:PUBLISH | Topic: milight/0x0022/rgb_cct/1, Payload: {"status":"ON","color":{"r":255,"g":200,"b":255},"brightness":100}
HEX: 04.08.2019, 01:23:04 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 30 30 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 7B 22 73 74 61 74 75 73 22 3A 22 4F 4E 22 2C 22 63 6F 6C 6F 72 22 3A 7B 22 72 22 3A 32 35 35 2C 22 67 22 3A 32 30 30 2C 22 62 22 3A 32 35 35 7D 2C 22 62 72 69 67 68 74 6E 65 73 73 22 3A 31 30 30 7D 
TXT: 04.08.2019, 01:23:04 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:23:04 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:23:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:23:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:23:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:23:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:23:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:23:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:23:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:23:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:23:32 |      MQTT:TX:PUBLISH | Topic: milight/0x0022/rgb_cct/1, Payload: {"status":"ON","color":{"r":255,"g":200,"b":255},"brightness":100}
HEX: 04.08.2019, 01:23:32 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 30 30 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 7B 22 73 74 61 74 75 73 22 3A 22 4F 4E 22 2C 22 63 6F 6C 6F 72 22 3A 7B 22 72 22 3A 32 35 35 2C 22 67 22 3A 32 30 30 2C 22 62 22 3A 32 35 35 7D 2C 22 62 72 69 67 68 74 6E 65 73 73 22 3A 31 30 30 7D 
TXT: 04.08.2019, 01:23:32 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:23:32 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:23:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:23:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:23:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:23:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:23:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:23:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:23:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:23:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:24:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:24:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:24:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:24:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:24:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:24:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:24:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:24:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:24:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:24:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:24:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:24:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:24:53 |      MQTT:TX:PUBLISH | Topic: milight/0x0022/rgb_cct/1, Payload: {"status":"ON","color":{"r":255,"g":200,"b":255},"brightness":255}
HEX: 04.08.2019, 01:24:53 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 30 30 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 7B 22 73 74 61 74 75 73 22 3A 22 4F 4E 22 2C 22 63 6F 6C 6F 72 22 3A 7B 22 72 22 3A 32 35 35 2C 22 67 22 3A 32 30 30 2C 22 62 22 3A 32 35 35 7D 2C 22 62 72 69 67 68 74 6E 65 73 73 22 3A 32 35 35 7D 
TXT: 04.08.2019, 01:24:53 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:24:53 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:24:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:24:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:24:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:24:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:25:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:25:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:25:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:25:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:25:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:25:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:25:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:25:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:25:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:25:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:25:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:25:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:25:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:25:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:25:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:25:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:26:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:26:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:26:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:26:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:26:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:26:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:26:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:26:28 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:26:32 |      MQTT:TX:PUBLISH | Topic: milight/0x0022/rgb_cct/1, Payload: {"status":"ON","color":{"r":255,"g":200,"b":255},"brightness":100}
HEX: 04.08.2019, 01:26:32 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 30 30 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 7B 22 73 74 61 74 75 73 22 3A 22 4F 4E 22 2C 22 63 6F 6C 6F 72 22 3A 7B 22 72 22 3A 32 35 35 2C 22 67 22 3A 32 30 30 2C 22 62 22 3A 32 35 35 7D 2C 22 62 72 69 67 68 74 6E 65 73 73 22 3A 31 30 30 7D 
TXT: 04.08.2019, 01:26:32 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:26:32 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:26:42 |      MQTT:TX:PUBLISH | Topic: milight/0x0022/rgb_cct/1, Payload: {"status":"OFF","color":{"r":255,"g":200,"b":255},"brightness":100}
HEX: 04.08.2019, 01:26:42 |      MQTT:TX:PUBLISH | 54 6F 70 69 63 3A 20 6D 69 6C 69 67 68 74 2F 30 78 30 30 32 32 2F 72 67 62 5F 63 63 74 2F 31 2C 20 50 61 79 6C 6F 61 64 3A 20 7B 22 73 74 61 74 75 73 22 3A 22 4F 46 46 22 2C 22 63 6F 6C 6F 72 22 3A 7B 22 72 22 3A 32 35 35 2C 22 67 22 3A 32 30 30 2C 22 62 22 3A 32 35 35 7D 2C 22 62 72 69 67 68 74 6E 65 73 73 22 3A 31 30 30 7D 
TXT: 04.08.2019, 01:26:42 |      MQTT:TX:PUBLISH | Sending to milight-hub-6532874 (192.168.1.28:49153)
HEX: 04.08.2019, 01:26:42 |      MQTT:TX:PUBLISH | 53 65 6E 64 69 6E 67 20 74 6F 20 6D 69 6C 69 67 68 74 2D 68 75 62 2D 36 35 33 32 38 37 34 20 28 31 39 32 2E 31 36 38 2E 31 2E 32 38 3A 34 39 31 35 33 29 
TXT: 04.08.2019, 01:26:43 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:26:43 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:26:43 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:26:43 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:26:58 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:26:58 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:26:58 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:26:58 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:27:13 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:27:13 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:27:13 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:27:13 |      MQTT:RX:PINGREQ | 
TXT: 04.08.2019, 01:27:28 |            BUFFER IN | À<NUL>
HEX: 04.08.2019, 01:27:28 |            BUFFER IN | C0 00 
TXT: 04.08.2019, 01:27:28 |      MQTT:RX:PINGREQ | 
HEX: 04.08.2019, 01:27:28 |      MQTT:RX:PINGREQ | 

Scheint nicht so schwer zu sein.
Ich schaue mir das mal an.

Grüße,
Kai

Super, vielen Dank! Ich werde die Lampen erstmal über einfache Scripte für Szenen einbinden, die dann die jeweiligen Befehle auf die Devices publishen. Melde dich gerne, wenn du noch Debugs brauchst, ich etwas testen soll oder sowas!

Gruß

Kannst du was zu den unterschiedlichen Modi sagen?

Grüße,
Kai

Hi,
das sind meines Wissens nach verschieden, vorprogrammierte „Disco“ Modi. Sprich z.B. vorprogrammierte Lauflichter etc., die zusätzlich in der Geschwindigkeit variiert werden können. Soweit ich weiß, unterstützen das aber nicht alle MiLight Geräte. Ich habe es noch nie genutzt, da ich eher ein Fan statischer Beleuchtung bin. Für mich wären die Modi dementsprechend nicht relevant, oder meintest du andere Modi?

Gruß

Sorry, ich meine den device_type.
Gibt es da eine vernünftige Übersicht für?

Grüße,
Kai

Hi,
ich habe dazu mal eine Übersicht angehängt. Das heißt für die Modi konkret:

RGBW: RGB + Weiß Devices

CCT: Warmweiß + Kaltweiß Devices (Dual LED)

RGB + CCT: RGB + Warmweiß + Kaltweiß Devices

RGB: RGB Devices

FUT089 / B8: Wie RGB + CCT, jedoch mit 8 statt 4 Zonen. Scheinbar für neuere Geräte nötig.

FUT091 / B2: Wie CCT, jedoch scheinbar eine neue Protokollversion

Kannst du mit der Info soweit etwas anfangen?

Also sollte im Modul einstellbar sein, welcher Modus genutzt wird?
Welchen Modus nutzt du, dann würde ich damit anfangen.

Grüße,
Kai

Ich denke das würde für jedes angelegte Device in der entsprechenden Instanz Sinn machen, genau. Ich nutze aktuell ausschließlich RGB+CCT.

Hallo Luca, Kai,

eine schicke Lösung die du hier vorstellst, ich nutze seit einiger Zeit Milight E27 Lampen und die RGBW LED Module. Das im Forum vorgestellt Milight Modul (das erste) funktioniert seit langen bei mir sehr gut, mit dem Limit auf 4 Kanäle bzw. 4 Bereiche.
Die Lösung mit einem WEMOS D1 und dem NRF24L01 habe ich mir heute nachgebaut und Funktioniert, schöne Lösung. Die Verbindung ESP > MQTT > IPS verstehe ich noch nicht so ganz. Kai du implementierst es in das Tasmota Modul? Wenn es hilft teste ich es gerne, bei mir sind wie schon geschrieben RGBW und zwar E27 und LED Module in Betrieb.
Die Eingaben die in dem ESP für MQTT gemacht werden müssen sind mir auch nicht alle klar, ich bin dabei wenn ich helfen kann.

alles Gute D.Voss

Hallo Zusammen,

gibt es hierzu schon etwas Neues?
Habe auch schon so ein Gateway aufgesetzt:
https://blog.christophermullins.com/2017/02/11/milight-wifi-gateway-emulator-on-an-esp8266/
Ging ganz einfach, Zeit für die Realisierung ca. 10 Minuten, Kosten unter EUR 10.

Habe auch schon die Topics per MQTT in IPS, allerdings scheitere ich an der Rückmeldung:
Sofern ich MQTT richtig verstanden habe, ändere ich die Inhalt der Topic-Variable auf dem Server und der Client bekommt es mit?

Mit einem:

$ID =   28904;
RequestAction ($ID, "{"state":"ON","brightness":255,"bulb_mode":"color","color":{"r":255,"g":0,"b":46}}"  );

bekomme ich immer diese Fehlermeldung:

Parse error:  syntax error, unexpected 'state' (T_STRING), expecting ')' in C:\ProgramData\Symcon\scripts\55926.ips.php on line 6
Abort Processing during Fatal-Error: syntax error, unexpected 'state' (T_STRING), expecting ')'

mit

$ID =   28904;
RequestAction ($ID, "bla"  );

wird die Variable gesetzt.
Wenn ich die Variable per Hand auf der Konsole setzte, wird dies auch nicht an die Lampe übertragen.
Im Wireshark sehe ich, daß die Werte per MQTT übertragen werden:

milight/0x0/rgb_cct/1blablub

Wobei ich nach der ganzen Frickelei keine Pakete mehr vom IPS in Richtung Bridge sehe …

Vielleicht kann ja jemand einen Schubs in die richtige Richtung geben …

Dank und Gruß

kea

PS Anbei noch ein Screenshot der Birdge-Konfiguration

1 „Gefällt mir“

Hallo Zusammen,

hab mich mal ein bisschen mit dem System beschäftigt und werfe mal ein paar Brocken in den Thread.

  1. Bau des Gateways (Materialkosten keine €5), siehe oben oder direkt https://github.com/sidoh/esp8266_milight_hub.

  2. MQTT Server in IPS aktivieren

  3. ESP-Bridge einstellen (siehe Bild esp.png)

  4. Lampen an das Gateway anlernen,
    Wichtig: Jeder Lampe eine eigene ID verpassen (siehe anlern.png) und den „Remote Type“ „FUT089/B8“ auswählen, dann sind 8 Gruppen möglich.

  5. Die Lampen bei Bedarf an weitere Steuerelemente anlernen

  6. Die Lampen mal schalten/steuern

  7. Jetzt sollte beim IPS schon was ankommen: MQTT lässt sich gut mit dem http://mqtt-explorer.com/ prüfen, einfach auf den IPS-Server zeigen lassen. (siehe mqttexplorer.png)

  8. Nun im IPS mit dem MQTT Konfigurator die Instanz anlegen
    Obacht! Es gibt mehrer Topics für eine Lampe:
    a) die oben vergebene ID (diese wird auch zum Steuern genutzt)
    b) die ID der Fernbedienung
    c) ggf, mehrer Gruppen-ID
    Lässt sich gut mit dem MQTT Explorer erkennen

  9. Nun die Variablen anlegen (siehe Bild ipsvar.png). Hier sind die Variablendefinitionen:

// Profile erstellen
// MiLiState
IPS_CreateVariableProfile("MiLiState", 1);
IPS_SetVariableProfileText("MiLiState", "", "");
IPS_SetVariableProfileValues("MiLiState", 0, 3, 1);
IPS_SetVariableProfileDigits("MiLiState", 0);
IPS_SetVariableProfileIcon("MiLiState", "");
IPS_SetVariableProfileAssociation("MiLiState", 0, "Aus", "", 16711680);
IPS_SetVariableProfileAssociation("MiLiState", 1, "Ein", "", 65280);
IPS_SetVariableProfileAssociation("MiLiState", 2, "Nacht", "", 160);
IPS_SetVariableProfileAssociation("MiLiState", 3, "Putzlicht", "", 16777215);
// MiLiBulbMode
IPS_CreateVariableProfile("MiLiBulbMode", 1);
IPS_SetVariableProfileText("MiLiBulbMode", "", "");
IPS_SetVariableProfileValues("MiLiBulbMode", 0, 0, 0);
IPS_SetVariableProfileDigits("MiLiBulbMode", 0);
IPS_SetVariableProfileIcon("MiLiBulbMode", "");
IPS_SetVariableProfileAssociation("MiLiBulbMode", 0, "White", "", -1);
IPS_SetVariableProfileAssociation("MiLiBulbMode", 1, "Color", "", -1);
IPS_SetVariableProfileAssociation("MiLiBulbMode", 2, "Scene", "", -1);
IPS_SetVariableProfileAssociation("MiLiBulbMode", 3, "Night", "", -1);
// MiLiScene
IPS_CreateVariableProfile("MiLiScene", 1);
IPS_SetVariableProfileText("MiLiScene", "", "");
IPS_SetVariableProfileValues("MiLiScene", 0, 8, 0);
IPS_SetVariableProfileDigits("MiLiScene", 0);
IPS_SetVariableProfileIcon("MiLiScene", "");
IPS_SetVariableProfileAssociation("MiLiScene", 0, "All Colors Smooth", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 1, "White only", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 2, "Red Green Blue smooth", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 3, "All Colors Hard", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 4, "All colors hard II", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 5, "Red show", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 6, "Green show", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 7, "Blue show", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 8, "White show", "", -1);
IPS_SetVariableProfileAssociation("MiLiScene", 9, "RGB Circle fade", "", -1);
// MiLiColorTemp_2
IPS_CreateVariableProfile("MiLiColorTemp_2", 1);
IPS_SetVariableProfileText("MiLiColorTemp_2", "", "");
IPS_SetVariableProfileValues("MiLiColorTemp_2", 153, 370, 25);
IPS_SetVariableProfileDigits("MiLiColorTemp_2", 0);
IPS_SetVariableProfileIcon("MiLiColorTemp_2", "");
// MiLi_Brightness
IPS_CreateVariableProfile("MiLi_Brightness", 1);
IPS_SetVariableProfileText("MiLi_Brightness", "", "");
IPS_SetVariableProfileValues("MiLi_Brightness", 0, 255, 0);
IPS_SetVariableProfileDigits("MiLi_Brightness", 0);
IPS_SetVariableProfileIcon("MiLi_Brightness", "");

  1. Ein Auswertescript an die benötigten Variablen setzen (bei sind es zwei Variablen):
<?php

// 0.9  2020-08-23  soe (start of engeneering)

if ($_IPS['SENDER'] == "Variable" or $_IPS['SENDER'] =='TimerEvent')
    {
   	$SenderTyp = $_IPS['SENDER'];
   	$SenderID = $_IPS['VARIABLE'];    // alt EVENT
   	}
 
// Variablendefinition

$BulbID         =   35518;
$BulbValue      =   47287;
$Chroma         =   35703;
$Mode           =   55368;
$White          =   43243;       // scene white color
$State          =   30279;
$Luma           =   43777;
$Scene			=	45228;  // mode 0 - 9

if ($_IPS['SENDER'] == "Variable") {                         // script wird von einer Variable getriggert
// Werte lesen 
	$IN    	=    GetValue($SenderID);                       // org Bulb Value
	$json 	= 	json_decode($IN);
    	
	// var_dump($json);      // nur zum debug, erzeugt sonst einen fehler
	
	// State auswerten
	IF ($json->state == "OFF" or $json->state == "off") {
        SetValue ($State, 0);

    }		
	// Weitere Ablauf nur wenn Lampe an
	    IF ($json->state == "ON" or $json->state == "on") 	{
            SetValue ($State, 1);		
		    SetValue ($Luma, $json->brightness);// Brightness auswerten
				// Mode auswerten
			IF ($json->bulb_mode == "white") 			{ 
	                        SetValue ($Chroma, 0);
				SetValue ($Mode, 0);  
				SetValue ($White,$json->color_temp);
			}
			IF ($json->bulb_mode == "night")			{
				SetValue ($Mode, 3);
                SetValue ($State, 2);							// Nachtmodus
			}
			IF ($json->bulb_mode == "color")  			{
				SetValue ($Mode, 1); 
				// RGB lesen, Einzelwerte nach RGB-Hex umrechnen
				$RGB = hexdec(str_pad(dechex($json->color->r), 
					2,'0', STR_PAD_LEFT).str_pad(dechex($json->color->g), 
					2,'0', STR_PAD_LEFT).str_pad(dechex($json->color->b), 
					2,'0', STR_PAD_LEFT));
				SetValue ($Chroma, $RGB);
			}
			IF ($json->bulb_mode == "scene")  			{
				SetValue ($DebugID, $json);
				SetValue ($Mode, 2);
				IF ($json->mode == "0")  SetValue($Scene, 0);
				IF ($json->mode == "1")  SetValue($Scene, 1);
				IF ($json->mode == "2")  SetValue($Scene, 2);
				IF ($json->mode == "3")  SetValue($Scene, 3);
				IF ($json->mode == "4")  SetValue($Scene, 4);
				IF ($json->mode == "5")  SetValue($Scene, 5);
				IF ($json->mode == "6")  SetValue($Scene, 6);
				IF ($json->mode == "7")  SetValue($Scene, 7);
				IF ($json->mode == "8")  SetValue($Scene, 8);
                IF ($json->mode == "9")  SetValue($Scene, 9);
			}
		} 	
	exit;
	}
	
	
  1. Aktionsscripte an die Variablen hängen:

<?php
// Milight_Brigthness setzen
$parentID 		= 	IPS_GetObject($IPS_SELF);
$parentID 		= 	$parentID['ParentID'];
$Luma	   		= 	( $_IPS['VALUE']);
$BulbValue 		=   47287;
RequestAction ($BulbValue, "{\"state\":\"ON\",\"brightness\":\"$Luma\"}" );


<?php
//Milight_aus_Farbrad setzen
$Chroma    		= 	35703;
$BulbValue 		=   47287;
$r 				= 	(($_IPS['VALUE'] >> 16) & 0xFF);
$g 				= 	(($_IPS['VALUE'] >> 8) & 0xFF);
$b 				= 	(($_IPS['VALUE'] >> 0) & 0xFF);
RequestAction ($BulbValue, "{\"state\":\"ON\",\"color\":{\"r\":$r,\"g\":$g,\"b\":$b}}"  );


<?php
//Milight_ColorTemp
$White	    	= 	($_IPS['VALUE']);
$BulbValue 		=    47287;
RequestAction ($BulbValue, "{\"state\":\"ON\",\"color_temp\":\"$White\"}" );



<?
// Milight_State setzen
$parentID 		= 	IPS_GetObject($IPS_SELF);
$parentID 		= 	$parentID['ParentID'];
$State	    	= 	($_IPS['VALUE']);
$BulbValue 		=   47287;
if ($State == 0)    RequestAction ($BulbValue,  "{\"state\":\"OFF\"}"  );
if ($State == 1)    RequestAction ($BulbValue,  "{\"state\":\"ON\"}" );
if ($State == 2)    RequestAction ($BulbValue,  "{\"state\":\"ON\",\"command\":\"night_mode\"}" );   // Nachtlich
if ($State == 3)    RequestAction ($BulbValue,  "{\"state\":\"ON\",\"command\":\"set_white\",\"brightness\":255 }" );   // Putzlicht


<?php
//Milight_Scene
$Scene	    	= 	($_IPS['VALUE']);
$BulbValue 		=   47287;
RequestAction ($BulbValue, "{\"state\":\"ON\",\"mode\":\"$Scene\"}" );

Ein Schönheitspreis werde ich damit nicht gewinnen, aber vielleicht nützt es Euch etwas.

Bin noch am überlegen wie ich die Skalierung mache, entweder für jede Lampe/Bulb/LED-Streifen alles per Hand anlegen oder das Master-Script um eine Auswertung erweitern.

Viel Spaß am Gerät

kea

Hi,
sieht gut aus, ich hatte das damals dann zwischenzeitlich ähnlich gelöst, jedoch nur die Parameter übergeben, die ich persönlich nutze - ich werde deine Variante mal testen - vielen Dank fürs Teilen!

Gruß

Hallo @kea ,
irgendwie sind im neuen Board leider deine Bilder abhanden gekommen :confused:
Kannst du die bitte nochmal posten, damit ich sehe wo du die Variablen und die Skripte angelegt hast.

Danke Hofi61

Anbei die Bilder erneut.


@hofi61 Bitte gerne.

Hallo @kea,

vielen Dank. Inzwischen hab ich es hinbekommen und das GW lässt sich über das Webinterface vom ESP schalten und die Variablen in IPS werden auch gesetzt.
Hast du eine Lösung wie die MiLight auch über ein PHP-Skript ansteuern kann?
Mit dem MQTT-Explorer kann ich zwar sehen, dass gesendet wird aber das GW reagiert nicht.
Im Prinzip nutze ich deine Aktionsscripte leicht modifiziert und triggre diese mit einer Variablen die den Befehl enthält. Getestet am Beispiel State, Variabe = 0 im Explorer kommt auch " rgb_cct = {„state“:„OFF“}" an, aber nichts passiert…

VG Hofi61

PS. Dem Problem mit den fehlenden Bildern ist paresy schon auf der Spur.