What is the minimum interval for timer.setinterval(interval, sendsensor) for usual server and for local server?
Impossible question to answer without knowing what you are doing within your timed functions.
As example, I would like to make Blynk.virtualWrite. I see the comments “Please don’t send more that 10 values per second”. Obviously it is for not to overload the server. But if I will use my own local blynk server, is the instruction different ?
What hardware would you be running your local server on, and what storage media will it use (e.g RPI4 with Micro SD card).
Will you be running anything else on that server?
I consider a question to use Raspberry Pi 4 Model B as local Blynk server. I would like control 10 peltier chambers and get tempature and 4 ADC streams (20 ms per sample) from each chamber. If Blynk will not be appropriate for data logginng and analyzing, probably I will use MQTT, Node-RED, InfluxDB and Grafana software installed on same server and use Blynk only for control.
So that’s 50 samples per second per device.
4 devices running concurrently is 200 samples per second to be logged.
If you’re lucky you might get away with 100 Blynk.virtualWrites per second on a local server (but you might not!) but I don’t think you’ll have any success with 200 per second.
I’d also doubt whether sending 200 MQTT messages per second would work either TBH.
Have you tried asking over on the Node-Red forum what sort of MQTT data transmission frequency they have been able to achieve?
Either way, you didn’t answer my question about the storage media you’ll be using.
You’ll need an SSD to cope with these data write speeds and also to give you any sort of life expectancy, because a MicroSD card would die quite quickly with this sort of activity. You’ll also need a lot of storage space.
Are you aware that the Legacy local server (and cloud servers) only stores one data point per minute for each virtual pin?
The 3000 data points that you send for each virtual pin in one minute are averaged, and that result is written to the database. When you report these values, it’s the averaged results that will be reported.
Live View of a Superchart in the app will show actual rather than averaged values, but you almost certainly won’t get the granularity that you’re looking for because the server and app are unlikely to be able to plot data of this type of frequency.
The more stuff you run on the Pi, the more overhead - and therefore delays - this will produce. You certainly don’t want to be running a desktop on the Pi, as this is very resource hungry.
Thank you for the comments. I will take it into account and will try find appropriate solution.