MQTT Hub/Gateway

Did you install the BETA version of the MQTT client?

I have the same issue as Stefan.
I have the beta app MQTT Client (v.2.2.0) and MQTT Gateway (v.2.0.0).

I do get something but no state changes, I receive this topic in node red but nothing else.
“Homey/unknown/home/system/general/state”

Rgds
John

Yes, I have MQTT Client 2.2.0 beta.

Wen I restarted the Gateway app yesterday I now se that something (guessing the Gateway) transmitted:

homey_36af8cb2/status : Offline
homey_bac54d07/status : Offline
homey_79335a9b/status : Offline

I cant find anything i those “codes” which refers to any of my devices tough.

Just now i restarted the MQTT Client and now I’a also getting:

“Homey/unknown/home/system/general/state” containing the systemstatus

every 30 seconds so at least it’s transmitting something now :slight_smile: But still no devise state change och update.

Same config and problem here.

I was very excited after discovering the MQTT Gateway; this would be great for easy integration of some Node Red stuff. But here (using v1.00) it’s also not working. I installed through the CLI to get some extra info on what the programm is doing.

Rights after starting the app I see the following:

Blockquote
.< snip >.
20190118-10:47:28 Aqara Temperature and Humidity Sensor: aqara_temperature_and_humidity_sensor
20190118-10:47:28 subscribing to topic: homey/command
20190118-10:47:28 Devices registered
20190118-10:47:28 FlowTriggerDispatcher: not implemented
20190118-10:47:28 subscribing to topic: homey/+/+/+/+/describe
20190118-10:47:28 subscribing to topic: homey/+/+/+/+/request
20190118-10:47:28 subscribing to topic: homey/+/+/+/+/update
Notification added
Error: not_found
at function.r.__client.emit.then.t (/opt/homey-client/system/manager/ManagerApps/bootstrap/sdk/v2/manager/api.js:1:1083)
at
at process._tickCallback (internal/process/next_tick.js:189:7)
Notification added
Error: not_found
at function.r.__client.emit.then.t (/opt/homey-client/system/manager/ManagerApps/bootstrap/sdk/v2/manager/api.js:1:1083)
at
at process._tickCallback (internal/process/next_tick.js:189:7)
Notification added
Error: not_found
at function.r.__client.emit.then.t (/opt/homey-client/system/manager/ManagerApps/bootstrap/sdk/v2/manager/api.js:1:1083)
at
at process._tickCallback (internal/process/next_tick.js:189:7)
Notification added
Error: not_found
at function.r.__client.emit.then.t (/opt/homey-client/system/manager/ManagerApps/bootstrap/sdk/v2/manager/api.js:1:1083)
at
at process._tickCallback (internal/process/next_tick.js:189:7)

And after that I get messages like these on every state change:

Blockquote
.< snip >.
20190118-10:53:04 object Message
20190118-10:53:04 PROPERTIES: {
“qos”: 0,
“retain”: false,
“mqttTopic”: “sensor/keuken/motion_sensor_keuken/alarm_motion/state”,
“mqttMessage”: true
}
20190118-10:53:05 sensor/keuken/motion_sensor_keuken/alarm_motion/state: true
20190118-10:53:05 object Message
20190118-10:53:05 PROPERTIES: {
“qos”: 0,
“retain”: false,
“mqttTopic”: “sensor/keuken/motion_sensor_keuken/measure_luminance/state”,
“mqttMessage”: 209
}
20190118-10:53:05 sensor/keuken/motion_sensor_keuken/measure_luminance/state: 209
20190118-10:53:05 object Message
20190118-10:53:05 PROPERTIES: {
“qos”: 0,
“retain”: false,
“mqttTopic”: “sensor/keuken/motion_sensor_keuken/alarm_battery/state”,
“mqttMessage”: false
}
20190118-10:53:05 sensor/keuken/motion_sensor_keuken/alarm_battery/state: false
20190118-10:53:05 object Message
20190118-10:53:05 PROPERTIES: {
“qos”: 0,
“retain”: false,
“mqttTopic”: “sensor/keuken/motion_sensor_keuken/measure_battery/state”,
“mqttMessage”: 79
}
20190118-10:53:05 sensor/keuken/motion_sensor_keuken/measure_battery/state: 79
(node:20758) UnhandledPromiseRejectionWarning: Error: not_found
at function.r.__client.emit.then.t (/opt/homey-client/system/manager/ManagerApps/bootstrap/sdk/v2/manager/api.js:1:1083)
at
at process._tickCallback (internal/process/next_tick.js:189:7)
(node:20758) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 16)
(node:20758) UnhandledPromiseRejectionWarning: Error: not_found
at function.r.__client.emit.then.t (/opt/homey-client/system/manager/ManagerApps/bootstrap/sdk/v2/manager/api.js:1:1083)
at
at process._tickCallback (internal/process/next_tick.js:189:7)
(node:20758) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 17)
(node:20758) UnhandledPromiseRejectionWarning: Error: not_found
at function.r.__client.emit.then.t (/opt/homey-client/system/manager/ManagerApps/bootstrap/sdk/v2/manager/api.js:1:1083)
at
at process._tickCallback (internal/process/next_tick.js:189:7)
(node:20758) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 18)
(node:20758) UnhandledPromiseRejectionWarning: Error: not_found
at function.r.__client.emit.then.t (/opt/homey-client/system/manager/ManagerApps/bootstrap/sdk/v2/manager/api.js:1:1083)
at
at process._tickCallback (internal/process/next_tick.js:189:7)
(node:20758) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 19)

I really hope this can be sloved, a program like this would really make integration with other software (like dashboards) a lot easier. So I hope you’ll find the time!

TIA, cheers,
/Cacti

Greet feedback guys! I’ll try to address some of these issue this evening. I did not yet upgrade my Homey tot 2.0. So some of the issues are hard to reproduce. Maybe @scanno can assist here.

Hi,

I upgraded to the Beta version of MQTT Client (nl.scanno.mqtt version 2.2.0) and now it’s working!!! Loads of messages flooding my node-red! Whoohooo!!! I was on the stable version (v2.1.1). Maybe you can do version check in your in your MQTTClient.js?

Anyways, many thanks. Donation on it’s way :thumbs up:

Cheers,
/Cacti

Sounds great Harrie! :slight_smile:

I tried a lot of different topics thru mqtt yesterday since I thought that I might had misunderstood the format of the topic. I know it’s suppose to resolve the device id from the name but would it be possible to have it just listen for the device-id also rather then the whole “light/room/name”. It would be great to have it just lite “homey/device-id/onoff/update/” for example. Then you could move and rename both room and device names without breaking anything.
Just a thought :slight_smile:

Actually I think it’s ideal as it is because you can then subscribe to changes that happen within a device category or within a room.

I didn’t mean that it would replace the existing way but complement it.

U can use wildcards to accomplish this.
Homey/+/+/name

Yes I know, but then I can’t change the name of the device.

Just thought that as it resolves in the device-id anyway that it would be nice to be able to just use it directly instead of the name :slight_smile:

Maybe homey/+/+/device-id can be implemented more easily then just homey/device-id?

Note, this is by no way a showstopper, just a way to make it more convenient for some users :slight_smile:

Hmmm something weird I see on incoming messages within Node Red:

Blockquote
18-1-2019 15:22:33node: 13961c11.80cca4homey/light/woonkamer/lampen_tv/onoff/state : msg.payload : string[4]
“true”
18-1-2019 15:22:34node: 13961c11.80cca4homey/light/woonkamer/lampen_tv/onoff/state : msg.payload : string[0]
“”

Logging from the app seems OK:

Blockquote
20190118-15:22:22 object Message
20190118-15:22:22 PROPERTIES: {
“qos”: 0,
“retain”: false,
“mqttTopic”: “light/woonkamer/lampen_tv/onoff/state”,
“mqttMessage”: true
}
20190118-15:22:22 light/woonkamer/lampen_tv/onoff/state: true
20190118-15:22:23 object Message
20190118-15:22:23 PROPERTIES: {
“qos”: 0,
“retain”: false,
“mqttTopic”: “light/woonkamer/lampen_tv/onoff/state”,
“mqttMessage”: false
}
20190118-15:22:23 light/woonkamer/lampen_tv/onoff/state: false

But “True” is being recieved when device are turned on, but “” is received when devices are turned off.

I think it’s a bug, but maybe I’m doing something wrong. Might be even be a Node Red problem. Can anybody confirm this behaviour?

TIA, Cheers,
/Cacti

Fixed that by checking if the capability is onoff and then creating a string as message value.

@scanno Hi - does that mean it was an issue in MQTT client or was it an issue in MQTT gateway … that you worked around ? All MQTT messages are textual in nature aren’t they ?

Is that in GitHub now for one of the Homey apps ?

Or perhaps do you mean you worked around it in NodeRED ?

Kevin

It is in the Mqtt Gateway app. If you want to test, the fix is in my fork (beta branch) . Made a pull request to upstream (i.e. @HarriedeGroot)

Booleans are a bit nasty sometimes when converting to strings.

Since the HomeyDuino app does not updates anymore I think about to change my ESP8266 devices to use MQTT instead. Does anyone have an Arduino example to share?

I was helpt a lot in the beginning with the examples on github for the Homeyduino.

Tried that, but it’s 2.0. Could you elaborate what you changed where? I can’t seem to find it myself.

Thanks in advance.

try

or use my master branch, guess that one is 1.5

Take a look at this thread, a few alternatives are being discussed there.

I posted one here, where I use the MySensors library for ESP8266 to push lightsensor readings to Homey over MQTT.