-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to send sane messages? (with cayenneLLP) #21
Comments
if you are going to work with json objects I recommend you
The channel, type, etc is how CayenneLLP treats the messages, before the msgpack I used the channel as idx in domoticz. About status messages I'm not sure but I think they can be disabled in |
@dgcasana Yes I mentioned that in my post and asked about Cayenne encoding there as well. Also DHT22 doesn't measure humidity correctly, can be off 3-20%, you should use SHT31, SHT35, SHT85 or BME280 (if you want pressure) & thanks for the status message, I saw it in there but was hoping there was a better setting than commenting out code. |
CayenneLPP to JSON conversion is done by CayenneLPP library so I've attached to its format. You can check an example here https://github.com/ElectronicCats/CayenneLPP/blob/master/examples/Decode/Decode.ino You can use that and process it after receiving MQTT message. EnigmaIOTNode example shows how to manage CayenneLPP data. If you need specific JSON format, then it is better to use MsgPack. I do not remember if status data can be disabled. Anyway you can subscribe to g/1/data instead g/1/# to get only data messages. I'll check if there is any setting in EnitmaIOTConfig.h to control that feature. I will add it if does not exist. |
Actually looks like the channel stuff is some specific design of cayenneLPP, some reason the extra messages are added (idc enough to check why) but it's just extra useless data so I guess I'll have to use msgpack. |
I don't see it in any of the examples, best one seems to be:
https://github.com/gmag11/EnigmaIOT/blob/master/examples/enigmaiot_node/enigmaiot_node.ino
which has no control of what is sent?
Instead of:
should be:
JSON is like:
"THING":"VALUE"
no reason to do
"name":"THING","value":VALUE
What's all the channel, types, etc I can't find documentation at all and I can't think of a use case for it? MQTT has channels (topics) if it's needed to spread them out. And status calculations/storage just seems to waste gateway memory.
Is this padding for the encryption so it's harder to break or something?
This tutorial does it good:
https://github.com/gmag11/EnigmaIOT/tree/master/examples/enigmaiot_node_msgpack
Is this cayenneLLP specific that it has all of the extra data? You say msgpack is less efficient but it also can have less data, can we achieve the same in Cayenne or no?
Thanks!
The text was updated successfully, but these errors were encountered: