Migrating Zwave & ZigBee stuff to MQTT - guidance needed.
-
New testing version v22.11.29 should identify (some) lights, and it's plausible that the on/off control will work (the dimmer doesn't, and the internal state doesn't yet get updated.) Would be interested in the log when trying this.
-
a-lurkerreplied to akbooer on Nov 30, 2022, 7:33 AM last edited by a-lurker Nov 30, 2022, 2:47 AM
Making great progress. The light is recognized and can be turned on & off. Also if I change the color with the zigbee2mqtt web page and then turn the light off and on in AltUI the color is retained.
Here is one observed issue: I have in my own code with a subscription to the occupancy sensor and using that to set a switch in VirtualHTTP. Has been working and has now stopped working. You see the code here - line 415.. Looks like something in openLuup has stopped that functioning? See error in log below:
luup_log:209: VirtualDevices[3.0-beta7@209](initializeMqtt@421):initializeMqtt(209,{ PowerStatusOff={ Value="0", Service="urn:upnp-org:serviceId:SwitchPower1", Variable="Status" }, BrightnessValue={ Variable="LoadLevelStatus", Service="urn:upnp-org:serviceId:Dimming1" }, PowerStatusOn={ Value="1", Service="urn:upnp-org:serviceId:SwitchPower1", Variable="Status" } }) - openLuup: true luup_log:209: VirtualDevices[3.0-beta7@209](subscribeToMqtt@414):subscribeToMqtt(209,nil,{ deviceID=209, opts={ Value="0", Service="urn:upnp-org:serviceId:SwitchPower1", Variable="Status" } }) openLuup.context_switch:: ERROR: [dev #209] ./L_VirtualLibrary.lua:415: attempt to concatenate field 'topic' (a nil value) openLuup.scheduler:: job aborted : ./L_VirtualLibrary.lua:415: attempt to concatenate field 'topic' (a nil value) openLuup.scheduler:: [211] Zigbee2MQTT device startup luup.set_failure:: status = 0 luup.variable_set:: 211.urn:micasaverde-com:serviceId:HaDevice1.CommFailure was: 0 now: 0 #hooks:0 luup.variable_set:: 211.urn:micasaverde-com:serviceId:HaDevice1.CommFailureTime was: 0 now: 0 #hooks:0 openLuup.scheduler:: [211] Zigbee2MQTT device startup completed: status=true, msg=OK, name=Zigbee2MQTTBridge
Start up of openLuup and then connecting to zigbee2mqtt server follows:
openLuup.mqtt:: CONNECT tcp{client}: 0x2d4a968 openLuup.mqtt:: ClientId: mqttjs_2080d9ee openLuup.mqtt:: WillTopic: zigbee2mqtt/bridge/state openLuup.mqtt:: WillMessage: {"state":"offline"} openLuup.mqtt:: UserName: **** openLuup.mqtt:: Password: **** openLuup.mqtt:: CONNECT tcp{client}: 0x25141a0 openLuup.mqtt:: ClientId: mqtt-explorer-27e89756 openLuup.mqtt:: WillTopic: openLuup.mqtt:: WillMessage: openLuup.mqtt:: UserName: **** openLuup.mqtt:: Password: **** openLuup.mqtt:: SUBSCRIBE tcp{client}: 0x25141a0 openLuup.mqtt:: Packet Id: 0xa5b3 openLuup.mqtt:: Topic: # openLuup.mqtt:: mqtt-explorer-27e89756 SUBSCRIBE to # tcp{client}: 0x25141a0 openLuup.mqtt:: SUBSCRIBE tcp{client}: 0x25141a0 openLuup.mqtt:: Packet Id: 0xa5b4 openLuup.mqtt:: Topic: $SYS/# openLuup.mqtt:: mqtt-explorer-27e89756 SUBSCRIBE to $SYS/# tcp{client}: 0x25141a0 openLuup.mqtt:: SUBSCRIBE tcp{client}: 0x2d4a968 openLuup.mqtt:: Packet Id: 0x6437 openLuup.mqtt:: Topic: zigbee2mqtt/# openLuup.mqtt:: mqttjs_2080d9ee SUBSCRIBE to zigbee2mqtt/# tcp{client}: 0x2d4a968 openLuup.mqtt:: PUBLISH tcp{client}: 0x2d4a968 luup.zigbee2mqtt:0: Topic ignored : bridge/logging openLuup.mqtt:: PUBLISH tcp{client}: 0x2d4a968 luup.zigbee2mqtt:0: Topic ignored : bridge/logging openLuup.mqtt:: PUBLISH tcp{client}: 0x2d4a968 luup.zigbee2mqtt:0: Topic ignored : bridge/state openLuup.server:: request completed (871430 bytes, 55 chunks, 630 ms) tcp{client}: 0x29113e0 openLuup.server:: GET /data_request?id=user_data&output_format=json&DataVersion=768995292&_=1669768933474 HTTP/1.1 tcp{client}: 0x29113e0 openLuup.server:: request completed (1679360 bytes, 105 chunks, 1182 ms) tcp{client}: 0x29113e0
Restart of zigbee2mqtt server to force devices to be announced by the zigbee2mqtt server. You see the zigbee devices being detected and set up by openLuup.
openLuup.mqtt:: CONNECT tcp{client}: 0x2ac56b0 openLuup.mqtt:: ClientId: mqttjs_689eab85 openLuup.mqtt:: WillTopic: zigbee2mqtt/bridge/state openLuup.mqtt:: WillMessage: {"state":"offline"} openLuup.mqtt:: UserName: **** openLuup.mqtt:: Password: **** openLuup.mqtt:: PUBLISH tcp{client}: 0x2ac56b0 luup.zigbee2mqtt:0: Topic ignored : bridge/state openLuup.mqtt:: SUBSCRIBE tcp{client}: 0x2ac56b0 openLuup.mqtt:: Packet Id: 0x8099 openLuup.mqtt:: Topic: zigbee2mqtt/# openLuup.mqtt:: mqttjs_689eab85 SUBSCRIBE to zigbee2mqtt/# tcp{client}: 0x2ac56b0 openLuup.mqtt:: PUBLISH tcp{client}: 0x2ac56b0 luup.zigbee2mqtt:0: Topic ignored : bridge/info openLuup.mqtt:: PUBLISH tcp{client}: 0x2ac56b0 luup.zigbee2mqtt:0: New Zigbee detected: 0xRedacted1 luup.create_device:: [20001] D_GenericZigbeeDevice.xml / / D_GenericZigbeeDevice.json (GenericZigbeeDevice) luup.zigbee2mqtt:0: New Zigbee detected: 0xRedacted2 luup.create_device:: [20002] D_MotionSensor1.xml / / D_MotionSensor1.json (urn:schemas-micasaverde-com:device:MotionSensor:1) luup.zigbee2mqtt:0: New Zigbee detected: 0xRedacted3 luup.create_device:: [20003] D_DimmableLight1.xml / / D_DimmableLight1.json (urn:schemas-upnp-org:device:DimmableLight:1) openLuup.server:: request completed (16218 bytes, 2 chunks, 4645 ms) tcp{client}: 0x2456b18 openLuup.mqtt:: PUBLISH tcp{client}: 0x2ac56b0 luup.zigbee2mqtt:0: Topic ignored : bridge/groups openLuup.mqtt:: PUBLISH tcp{client}: 0x2ac56b0 luup.zigbee2mqtt:0: Topic ignored : bridge/extensions openLuup.mqtt:: PUBLISH tcp{client}: 0x2ac56b0 luup.zigbee2mqtt:0: Topic ignored : bridge/logging openLuup.mqtt:: PUBLISH tcp{client}: 0x2ac56b0 luup.zigbee2mqtt:0: Topic ignored : bridge/logging openLuup.mqtt:: PUBLISH tcp{client}: 0x2ac56b0
Here is the light being turned on & off noting that it actually does go on & off but I'm unclear about all the "Topic ignored". eg "0x_redacted_light_bulb/set/state"
openLuup.server:: GET /data_request?id=action&output_format=json&DeviceNum=20003&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1 HTTP/1.1 tcp{client}: 0x28ba940 luup.call_action:: 20003.urn:upnp-org:serviceId:SwitchPower1.SetTarget luup.call_action:: action will be handled by parent: 211 luup.zigbee2mqtt:0: Topic ignored : 0x_redacted_light_bulb/set/state openLuup.server:: request completed (35 bytes, 1 chunks, 16 ms) tcp{client}: 0x28ba940 luup.watch_callback:: 12.urn:a-lurker-com:serviceId:Paradox_IP150_wps1.Zone_018 called [3]variableWatchCallback() function: 0x156a978 openLuup.mqtt:: PUBLISH tcp{client}: 0x2b88a08 luup.zigbee2mqtt:0: Topic ignored : bridge/logging openLuup.mqtt:: PUBLISH tcp{client}: 0x2b88a08 luup.zigbee2mqtt:0: Topic ignored : 0x_redacted_light_bulb luup.variable_set:: 10021.urn:micasaverde-com:serviceId:ZWaveNetwork1.LastPollSuccess was: 1669791951 now: 1669792831 #hooks:0 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=769116357&Timeout=60&MinimumDelay=1500&_=1669769862259 HTTP/1.1 tcp{client}: 0x1f620a0 openLuup.server:: request completed (7375 bytes, 1 chunks, 120 ms) tcp{client}: 0x1f620a0 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=769116361&Timeout=60&MinimumDelay=1500&_=1669769862260 HTTP/1.1 tcp{client}: 0x1f620a0 openLuup.server:: GET /data_request?id=action&output_format=json&DeviceNum=20003&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1 HTTP/1.1 tcp{client}: 0x28ba940 luup.call_action:: 20003.urn:upnp-org:serviceId:SwitchPower1.SetTarget luup.call_action:: action will be handled by parent: 211 luup.zigbee2mqtt:0: Topic ignored : 0x_redacted_light_bulb/set/state openLuup.server:: request completed (35 bytes, 1 chunks, 4 ms) tcp{client}: 0x28ba940 openLuup.mqtt:: PUBLISH tcp{client}: 0x2b88a08 luup.zigbee2mqtt:0: Topic ignored : bridge/logging openLuup.mqtt:: PUBLISH tcp{client}: 0x2b88a08 luup.zigbee2mqtt:0: Topic ignored : 0x_redacted_light_bulb openLuup.server:: request completed (6642 bytes, 1 chunks, 3272 ms) tcp{client}: 0x1f620a0 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=769116362&Timeout=60&MinimumDelay=1500&_=1669769862261 HTTP/1.1 tcp{client}: 0x1f620a0 openLuup.server:: GET /data_request?id=action&output_format=json&DeviceNum=20003&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0 HTTP/1.1 tcp{client}: 0x28ba940 luup.call_action:: 20003.urn:upnp-org:serviceId:SwitchPower1.SetTarget luup.call_action:: action will be handled by parent: 211 luup.zigbee2mqtt:0: Topic ignored : 0x_redacted_light_bulb/set/state openLuup.server:: request completed (35 bytes, 1 chunks, 4 ms) tcp{client}: 0x28ba940 openLuup.mqtt:: PUBLISH tcp{client}: 0x2b88a08 luup.zigbee2mqtt:0: Topic ignored : bridge/logging openLuup.mqtt:: PUBLISH tcp{client}: 0x2b88a08 luup.zigbee2mqtt:0: Topic ignored : 0x_redacted_light_bulb openLuup.server:: request completed (6870 bytes, 1 chunks, 4973 ms) tcp{client}: 0x1f620a0
Here is the light being turned on & off being reported by zigbee2mqtt in the linux terminal.
Zigbee2MQTT:info 2022-11-30 18:20:30: MQTT publish: topic 'zigbee2mqtt/0x_redacted_light_bulb', payload '{"brightness":42,"color":{"x":0.5267,"y":0.4133},"color_mode":"color_temp","color_temp":500,"linkquality":224,"state":"ON"}' Zigbee2MQTT:info 2022-11-30 18:20:35: MQTT publish: topic 'zigbee2mqtt/0x_redacted_light_bulb', payload '{"brightness":42,"color":{"x":0.5267,"y":0.4133},"color_mode":"color_temp","color_temp":500,"linkquality":232,"state":"ON"}' Zigbee2MQTT:info 2022-11-30 18:20:40: MQTT publish: topic 'zigbee2mqtt/0x_redacted_light_bulb', payload '{"brightness":42,"color":{"x":0.5267,"y":0.4133},"color_mode":"color_temp","color_temp":500,"linkquality":224,"state":"OFF"}' Zigbee2MQTT:info 2022-11-30 18:26:51: MQTT publish: topic 'zigbee2mqtt/0x_redacted_occupancy_sensor', payload '{"battery":100,"detection_interval":30,"device_temperature":19,"illuminance":77,"linkquality":132,"motion_sensitivity":"medium","occupancy":false,"power_outage_count":0,"trigger_indicator":false,"voltage":3189}'
-
@a-lurker said in Migrating Zwave & ZigBee stuff to MQTT - guidance needed.:
Here is one observed issue: I have in my own code with a subscription to the occupancy sensor and using that to set a switch in VirtualHTTP. Has been working and has now stopped working. You see the code here - line 415.. Looks like something in openLuup has stopped that functioning? See error in log below:
This is clearly a nil topic value in the call. Where that is supposed to come from, I don't know.
@a-lurker said in Migrating Zwave & ZigBee stuff to MQTT - guidance needed.:
Here is the light being turned on & off noting that it actually does go on & off but I'm unclear about all the "Topic ignored". eg "0x_redacted_light_bulb/set/state"
The ignored topics are the reason that the openLuup device state is not changing – I simply haven't coded the monitoring side of things yet. The next step.
I'm unclear because of your log edits whether the devices are using their ieee_address or their friendly_name as MQTT topics. AFAIK, it's legal to use either? I need to make some extra arrangements if so.
Which devices are currently not being correctly identified?
-
"The ignored topics are the reason that the openLuup device state is not changing – I simply haven't coded the monitoring side of things yet" - makes sense. Yes next step.
"your log edits": - sorry about this. Being a bit paranoid. All the ieee_address(s) and their associated friendly_name(s) are equal to each other. I haven't changed them. They are still the hex "mac" addresses of the devices.
"AFAIK, it's legal to use either? " It would certainly appear so. The use of the friendly_name(s) would certainly be needed to do topic filtering. ie plus & hash. But I've made no attempt so far to change the friendly_name(s). Trying to keep the change in all the variables to a minimum.
"This is clearly a nil topic value in the call" - this is my separate code. I subscribe to the occupancy sensor and the openLuup handler routine is coded to set a virtual switch. Seems the topic is getting screwed up in the handler but may be red herring, so please don't take too much notice. However as far as I can see @thereadldb has not made any recent code changes.
"Which devices are currently not being correctly identified?" - errhh none! Working very well so far.If I need to provide more info please let me know.
-
@a-lurker said in Migrating Zwave & ZigBee stuff to MQTT - guidance needed.:
"Which devices are currently not being correctly identified?" - errhh none! Working very well so far.
Oh! ... wasn't expecting that!
Currently working on the device variable status updates.
-
@a-lurker said in Migrating Zwave & ZigBee stuff to MQTT - guidance needed.:
Being a bit paranoid.
I did, at least, replace username and password in the MQTT diagnostics with "****"!
These wouldn't anyway appear in the log at all if you had not enabled DEBUG in that module.
-
New testing version v22.11.30 should now mirror the device status (on/off and brightness) and also enable the openLuup device on/off control to work. Brightness level not yet implemented.
Battery levels should be shown too (once the device has woken up.)
Does the occupancy sensor work too?
-
@akbooer
Looking good - using AltUI for the following:Light bulb:
Works:
- on/off does control the bulb
- variable LoadLevelStatus reflects any brightness changes
- virtually all variables are loaded with a few exceptions - see below
Doesn't work:
- brightness slider (as you noted)
- light bulb icon does not change state in UI
- variable LoadLevelTarget is always zero
- variable linkquality is not loaded from the mqtt messages
- variable effect is not loaded from the mqtt messages
Motion detector:
Works:
- red dagger shows in UI when triggered
- last trigger time shows in the UI (30 secs later as per its set up parms)
- battery icon shows with percentage
- virtually all variables are loaded with a few exceptions - see below
Not loaded from the mqtt messages:
- detection_interval
- device_temperature
- illuminance
- illuminance_lux
- linkquality
- motion_sensitivity
- occupancy
- trigger_indicator
- voltage
Other:
- variable "BatteryLevel" (and UI icon) shows "100" and variable "battery" shows "numeric". mqtt exposes "battery", so maybe some mix up or duplication here. They're probably the same thing - one mios & one zigbee.
Start up problem:
Conditions:- devices have all been previously detected and built and are available in AltUI.
- the zigbee2mqtt server is running.
OK now restart openLupp. Status of all devices are not updated by any incoming mqtt messages from then on. Log says: "Topic Ignored : 0x_ieee_address".
Referring to file L_Zigbee2MQTTBridge.lua: function handle_friendly_names line 407 . Table "devices" is empty, so "dno" and "D" are nil.
Reason: it appears the "devices" table is loaded by "function init_device" and this is only called when the devices are first created in "function create_devices".
The devices table needs to be loaded if the devices have already been created. The work around is to restart the zigbee2mqtt server, so it publishes the topic "zigbee2mqtt/devices".
Logging:
Another slight issue with logging: The log showed for example on occasion : "bridge/logging" when it's actually "zigbee2mqtt/bridge/logging". The prefix zigbee2mqtt is missing and it makes a little unclear what topic is actually being ignored. Just makes it a bit harder to debug.Console -> openLuup -> About:
There is item labelled "Debug" - how do you set this to true?Everything is coming together!
-
a-lurkerreplied to a-lurker on Dec 1, 2022, 9:30 AM last edited by a-lurker Dec 1, 2022, 5:38 AM
Next device I'm hoping to try out: a Xiaomi button.
The above has similarities with the Hue dimmer switch
And then there is the magic cube - that's a very interesting one. eg you can just rotate it to dim/undim lights. Flip it and control something else.
-
Thanks for the report… all exactly as I would expect. Indeed I had not done anything about initialisation apart from the bridge/device message. I now need to use the variables from existing devices to build the initial table.
I see what you mean about the error message. Will fix that. Will post separately on the debug switch. It may make sense to have console page for that.
-
Light bulb slider now working:
Issue with variable updating. Looks like api.lua handles this somehow in the meta verse:
openLuup.context_switch:: ERROR: [dev #0] ./openLuup/L_Zigbee2MQTTBridge.lua:166: ERROR - READONLY: attempt to create index illuminance
So added some debug code to this section - not sure how variable "S" is used:
-- update exposed values local S = D.exposes for n,v in pairs (message) do D[n] = tostring(v) end
Motion sensor:
luup_log:0: D: table: 0x1b25f70 luup_log:0: S: table: 0x1680730 luup_log:0: n: illuminance luup_log:0: v: 75 luup_log:0: n: device_temperature luup_log:0: v: 20 luup_log:0: n: battery luup_log:0: v: 100 luup_log:0: n: occupancy luup_log:0: v: false luup_log:0: n: detection_interval luup_log:0: v: 30 luup_log:0: n: voltage luup_log:0: v: 3177 luup_log:0: n: linkquality luup_log:0: v: 255 luup_log:0: n: trigger_indicator luup_log:0: v: false luup_log:0: n: power_outage_count luup_log:0: v: 0 luup_log:0: n: motion_sensitivity luup_log:0: v: medium
Light bulb. Note that "color" and "update" are table ptrs:
luup_log:0: D: table: 0x1b25a30 luup_log:0: S: table: 0xed39b0 luup_log:0: n: state luup_log:0: v: ON luup_log:0: n: color_temp luup_log:0: v: 153 luup_log:0: n: color_mode luup_log:0: v: xy luup_log:0: n: color luup_log:0: v: table: 0x8ec4f8 luup_log:0: n: brightness luup_log:0: v: 53 luup_log:0: n: linkquality luup_log:0: v: 212 luup_log:0: n: update luup_log:0: v: table: 0x3e0268
-
Ooops!
Looks like this should be:
S[n] = tostring(v)
-
” Looks like api.lua handles this somehow in the meta verse:”
Yes, FYI the new openLuup API maps device services and variables directly into the plug-in context. There are shorthand names for the otherwise unwieldy serviceIds:
API[devNo][serviceId][varname] = value -- sets the value value = API[devNo][serviceId][varname] -- gets the value
These are all standard Lua (metatable) structures, so you can write:
D = API[devNo] -- the device S = D[serviceId] -- the service S[varname] = value -- sets the value value = S[varname] -- gets the value kWh = D.energy.KWH -- get device energy usage
It’s still evolving, but this much is stable. It’s so neat and readable compared to the usual luup.variable_set/get() calls, and I’m now using it all the time in new code development (since I’ll never be writing another Vera-compatible plug-in.)
-
@akbooer
This is all going nicely - but time will tell how reliable the system as whole would be. Have added in one of these Aqara buttons and it work fine.Zigbee2mqtt "interviews" a device while it's being paired. On occasion the interview is partially completed ie it fails and some variables are void or invalid but "Interview completed" is still set to true.
With such a faulty pairing and with openLuup being subjected to same, more often or not, the function "infer_device_type" will default to "D_GenericZigbeeDevice.xml", of which the actual file doesn't seem to exist. So one occasion I observed this error, which appears to be related:
openLuup.context_switch:: ERROR: [dev #0] ./openLuup/L_Zigbee2MQTTBridge.lua:438: attempt to call field '?' (a nil value) openLuup.mqtt:: ERROR publishing application message for mqtt:zigbee2mqtt/0x00158d000706951c : ./openLuup/L_Zigbee2MQTTBridge.lua:438: attempt to call field '?' (a nil value)
You have to repair the device, delete the "Generic" device in AltUI and then restart the zigbee2mqtt server to get the correct device to show in AltUI.
Inference: Looking at the function "infer_device_type: the code IMO should be split, so "switch" and "action" produce different devices ie an on/off switch or a scene controller:
In GitHub: elseif exp.switch or exp.action then
The nomenclature is bit tricky: switch is often conflated with power relay switches and say a scene controller switch. In Zigbee2MQTT speak, a "switch" is like a relay (mechanical or solid state) and a scene controller switch is considered something that has an "action".
Composite devices will become an issue and hopefully that can be handled in the future (yes can of worms), especially dual outlet power sockets or multi gang switches, which are ubiquitous.
Here is an example of sometime that doesn't fit the mold. These Aqara devices logically act as both a switch and a scene controller. Question arises if you do say a "double" click, what happens to the switch status. Likewise for say "hold_release". There are very few of these devices and they are nearly all made by Xiaomi.
-
akbooerreplied to a-lurker on Dec 6, 2022, 11:14 AM last edited by akbooer Dec 6, 2022, 6:18 AM
@a-lurker said in Migrating Zwave & ZigBee stuff to MQTT - guidance needed.:
time will tell how reliable the system as whole would be
Is there some symptomatic problem I should know about?
@a-lurker said in Migrating Zwave & ZigBee stuff to MQTT - guidance needed.:
"D_GenericZigbeeDevice.xml", of which the actual file doesn't seem to exist
It does, in openLuup's virtual world. If you try
http://openLuupIP:3480/D_GenericZigbeeDevice.xml
you should see this in the browser:<?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> <minimus>auto-generated</minimus></specVersion> <device> <staticJson>D_GenericZigbeeDevice.json</staticJson> <deviceType>GenericZigbeeDevice</deviceType></device></root>
I'll fix the error and review the infer_device_type() function. It was always going to evolve anyway as different device needs arise.
I have tended to represent any sort of multi-action switch as a scene controller. There will always be difficult cases (sometimes resolved by using vendor/manufacturer) but I have shied away from an extensive configuration database. Plausible, I suppose, to pull this from the web...?
I rely on Philips Hue for the few Zigbee devices that I have, so probably won't get to road test this for myself. You're going to want to do the whole thing again for Zwave JS ?
-
@akbooer said in Migrating Zwave & ZigBee stuff to MQTT - guidance needed.:
Is there some symptomatic problem I should know about?
I don't think so but who wants to set up heaps of devices in a new set up when everything has been going well for years with just openLuup and an old Vera war horse!
Plausible, I suppose, to pull this from the web...?
Don't need to get to complicated too soon, as you just about have it all covered but I'm still thinking of one of these Hue Smart plugs. It's just a switch, as opposed to a scene controller.
I rely on Philips Hue for the few Zigbee devices that I have
Arrhh you know you want to ditch that hub.
You're going to want to do the whole thing again for Zwave JS ?
Maybe after a cup of tea and good lie down. And yourself?
-
@a-lurker said in Migrating Zwave & ZigBee stuff to MQTT - guidance needed.:
Maybe after a cup of tea and good lie down. And yourself?
Definitely the tea. Possibly the lie down.
You'll have to educate me about the protocol, yet again, but it should almost be a dead-ringer for the Zigbee ??
42/73