I am using the thinger.io IoTMP library for the esp-idf framework.
I declared a few resources as described in the documentation; one of these is, for example:
thing["astatus"] >> [](thinger::iotmp::output& out) { out["manouvers"] = st_manouvers; out["overtemps"] = st_overtempmans; out["workminuts"] = st_workhours; out["temperature"] = conv_temperature(st_temperature) / 10.0; out["cooldown"] = st_mot_cooldown / 60; };
The device connects to the cloud flawlessly, and I can see its “connected status” in the “Devices” page. Statistics are ok, and show data are exchanged.
If I go to the device API, all the declared resources are visible and work perfectly, each with its correct name, type, and current value. I can also set new values for input resources. The “astatus” resource looks like this:
But if I use the dashboard, widgets are updated only when the page is refreshed, i.e. only when I open the dashboard or when I reload the page.
The bigger problem is that it seems that data buckets don’t record anything. I configured a data bucket to poll for resource “astatus” every 5 minutes:
(not shown in the image, but backend is MongoDB with retention 1 month - all default).
I tried different resources, nothing gets ever recorded. And it is strange, because the APIs work: a poll from data bucket would only call the device repeatedly like the API page does.
Moreover, I also tried to stream the resource using:
thing.stream("lastmove");
but again, a data bucket configured to update by “Stream by device” never records anything:
Yes I have two buckets, one polls and the other waits for a streaming. None of them records anything.
Before using the IoTMP library, I used the standard MQTT functions of esp-idf, and in that case the data buckets worked. I switched to IoTMP because of its “describe” functionality, which is perfect for my customer who don’t have to remember topics and so on. But I need data buckets (just one or two), and they don’t work.
In another question I posted here (IOTMP: how to set new value for a resource, by device (like a publish)) user “ega” suggested to use the instruction write_bucket(), but that does not work either - it even disconnects from the server and then reconnects. I traced the library with logs, and discovered that the library sends a packet but the server never replies.
This problem is getting me frustrated. The best for me would be to make a push to update a data bucket, but I could also lower my expectations and use polling. But nothing works.
Any help is appreciated. I suspect the culprit is the thinger.io IoTMP library. Can someone confirm it really works?


