Sort of continuing on from the discussion about interval vs sendinterval in this thread
I happened to find a page in the guide about emonhub interfacers
and it seems that the SDS011 Air-Quality sensor interfacer uses readinterval
the SDM120 single-phase meter interfacer uses read_interval
with an underscore.
As does the MBUS interfacer
as does the ds18b20 interfacer
whereas the direct pulse interfacer uses rate_limit
.
and the Tesla powerwall interfacer uses readinterval
again.
At the bottom of the page there are some links to other interacers so I took a gander at those too
the Modbus Renogy interfacer uses poll_interval
SMA solar interfacer uses timeinterval
the Victron VE.direct interfacer uses poll_interval
and lastly the Modbus TCP interfacer uses interval
That’s alot of different settings for essentially the same thing, the interval between iterations, reads, sends, polls etc. Not only is this confusing for the users, but with so many different settings there will undoubtedly be some errors slip into various posts and/or even docs, then it could become a right mess, the case of interval
vs sendinterval
is an example. I suspect this is also a significant amount or redundant code and wasted coding time since every interfacer inherits an interval setting from the core code.
Whilst these interfacers are relatively low use, it might be a good better time to correct it before it is far too late to fix. If not then this post may at least serve as documenting the different settings for different interfacers. That does of course assume that all the docs I’ve linked are correct and there are no other options.
If this does get fixed it is worth also noting that there is/was an undocumented rule of thumb to assist with settings placement. All init_settings
settings were hypenated and all runtimesettings
were not, so settingxyz = abc
was clearly a runtimesetting whilst setting_xyz
would be the same kinda setting but located in init_settings
so that a simple instuction like “try setting some_option = abc
” would not require detailed explanation as it is obviously an init_setting.
the interval
and quiet
etc are of course unhyphenated and therefore runtimesettings so one could argue that the poll_interval
in the VE direct interfacer and rate_limit
in the pulse counter are correct, but I question why they are init_settings and if we do need another interval in the init_settings it should ideally be (IMO) a more neutral interval_secs
or similar setting in the core that can be utilised in any/all interfacers needing an init_setting interval.