I learned about Cayenne from an ad on the raspberry-asterisk.org site, was quite impressed by the dashboard display and would like to use it in a variety of monitoring applications.
To get started, I followed the Manually Publishing / Subscribing tutorial, installing MQTT.fx and configuring a simulated temperature sensor per the example. The widget appeared as expected and correctly shows an updated value upon changing the source data and clicking Publish. I set up a trigger and received the expected SMS upon sending a value above the threshold.
However, numerous things are not working properly and I don’t know how to troubleshoot them.
-
When re-opening the dashboard, the widget reads zero, until the next publish event occurs (even though Retained was selected for previous transmissions). For example, if room temperature is reported every five minutes, you’d have to wait up to five minutes to see the current value. Chrome, Firefox, IE all fail the same way.
-
Upon clicking the Details and Chart button, the live data chart shows up fine, but selecting any history option causes the spinner to run indefinitely, until the sub-window is closed. Once closed, clicking the button again won’t reopen it, even if all browser windows are closed (including killing any stuck instances with Task Manager) and the browser is relaunched. If you try with another browser, you can open the chart again, but only once. Failed attempts give a JavaScript error (example from Firefox console):
Error: CHILD.values.data is null setScale@https://cayenne.mydevices.com/build/assets/js/app-90c24b58b1.js:16697:25 init@https://cayenne.mydevices.com/build/assets/js/app-90c24b58b1.js:16503:21 SensorModalController@https://cayenne.mydevices.com/build/assets/js/app-90c24b58b1.js:16491:9 h/<.invoke@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:212:14 vf/this.$get</</<@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:261:9 a.$get</j.open/k<@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:501:25863 e/<@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:302:28 Kf/this.$get</m.prototype.$eval@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:316:305 Kf/this.$get</m.prototype.$digest@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:313:428 Kf/this.$get</m.prototype.$apply@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:317:92 Sc[b]</<.compile/</<@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:451:253 n.event.dispatch@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:159:14338 n.event.add/r.handle@https://cayenne.mydevices.com/build/assets/js/vendor-e1bca47ccc.js:159:11162
-
Because of the above website issues, I tried the Android app. It apparently installed correctly and I can log in ok but get a “No devices added” error. Upon attempting to add a device, the only choices offered are Raspberry Pi and Arduino.
-
I tried the iOS app; unfortunately the results were same as above.
-
So, maybe this does need a Pi. I have several, but they are all running ‘big’ projects, such as RasPBX or Kodi. Is Cayenne generally compatible?
-
Assume that (5) is not an issue, or that a Pi is dedicated to Cayenne. It appears that all of the examples involve sensors and actuators connected to analog or digital I/O ports on the Pi. My stuff is not like that. They connect via USB (Honeywell weather station), via the LAN (alarm system, Insteon gateway), via manufacturer’s cloud API (Neurio, Honeywell thermostat) or by scraping the manufacturer’s portal page (thermostat furnished by power company). I assume that the related scripts would use MQTT to keep Cayenne updated. Is that correct? If so, it seems unrelated to the Pi and could run just as well on e.g. a Windows PC or a Mac. Does running this code on a PI magically cause the mobile apps to work? If so, does it actually have to run on a Pi or does one just need to declare that it does?
-
Finally, when it’s all working, I’d like to display an array of widgets in a corner of the screen as a Windows Gadget or similar. Basic requirements are that it starts upon Windows login in the correct screen position, is reasonably robust, e.g. continues by itself after a network outage, never requires re-entry of a password, and does not waste any screen real estate on Windows UI elements, browser UI elements, or Cayenne UI elements, i.e. only the widgets appear. Has anyone implemented such a display?
Thanks for taking the time to read my long tale of woe. Any suggestions will be gratefully appreciated.
–Stewart