PunchThrough / node-red-contrib-bean

Node-Red nodes for the LightBlue Bean
23 stars 16 forks source link

No timeout option on bean nodes #16

Open dsample opened 8 years ago

dsample commented 8 years ago

I left my Bean without the battery in for a day, but the flow I had made used an inject to collect the temperature every 10 seconds. When the battery was put into the Bean again my debug node after the bean temperature node started spewing out messages to the debug panel continuously until I redeployed in order to reset everything.

Could we please have the option to specify how long to wait and cause an exception (we can then use a catch node) on timeout?

It would also be beneficial if there was a way to configure a semaphore so that only one call to the instance could happen at a time.

Since we can't use it in the middle of a flow easily (as it overwrites msg.payload, I'm having to do the following to save it to a flow/global property):

[{"id":"dd16f3d4.7795e","type":"inject","z":"b49e686d.c857c8","name":"Every 10s","topic":"","payload":"","payloadType":"date","repeat":"10","crontab":"","once":true,"x":110,"y":80,"wires":[["d37e6bf0.74ce18"]]},{"id":"cd44f2a5.b6f8e","type":"debug","z":"b49e686d.c857c8","name":"","active":true,"console":"false","complete":"payload","x":450,"y":140,"wires":[]},{"id":"d37e6bf0.74ce18","type":"bean temp","z":"b49e686d.c857c8","name":"","bean":"d17079df.e56568","x":270,"y":80,"wires":[["f846914.242427","cd44f2a5.b6f8e"]]},{"id":"f846914.242427","type":"change","z":"b49e686d.c857c8","name":"Set global temperature","rules":[{"t":"set","p":"temperature","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":80,"wires":[[]]},{"id":"d17079df.e56568","type":"bean","z":"b49e686d.c857c8","name":"Bean","uuid":"","connectiontype":"timeout","connectiontimeout":"60"}]`