-
-
Notifications
You must be signed in to change notification settings - Fork 349
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NUT Dummy driver Gen3 #94
Comments
Actually, the nutdrv-repeater driver might also be useful for modifying values from an UPS that is reporting predictably incorrect values. I think this was the original motivation behind the thread that inspired #97 (min/max reporting). Obviously, if we can unambiguously detect that a driver should scale or offset a value, then we should do that in the driver, but if it is a calibration issue, or if the UPS hardware cannot be uniquely identified, then I think this should be handled by a repeater. That way, upsmon can still connect directly to the real driver, but graphing software can talk to the repeater. The repeater might be best implemented in a high-level language like Python, where the scale/offset operations can be done with an 'eval' statement. |
.dev/.seq fileswhat about something like this?
If we want new dumps to be backward compatible we could:
However doing this would mean we won't be able to use parseconf (at least as it is now, since ddl repoWe may want to split things down to Manufacturer/Model_Families/Models: nut-recorderSince we want to record (both in dev and sec files) also rw vars and commands instead of relying on the output from upsc/upsrw/upscmd and then parse it we may want use directly NUT's net-protocol. We could use PyNUT or maybe upsclient, just like ups{c,cmd,rw}.. and since we are there.. what about merging ups{c,cmd,rw}/nut-recorder in something like a 'nut-controller'? Does this whole thing sound that bad? |
.dev/.seq files - ..follow-up: |
@zykh: this doesn't sound bad at all, and we're definitely on the same page! 2) .dev/.seq files v2
nutdrv-simulation
ddl repo
nut-recorder
|
Many considerations: Dummy driverThe need to have a dummy driver is clearly to have a simulation driver. This needs to address three points, in order of importance:
Recording dataWe need to record data ... to replay them.
But we probably need to record different level of data.
I think we will have a complete correct vision of what is done in nut data flow when we will ready to have these 3 levels. I think this needs some big rework and cannot be achieve soon. But it make sense to be considered. nutclientA strange thing is remaining in nut distribution is the presence of many executables to do similar requests: upsc/upsrw/upscmd. Why not ! But why ?
A such client can process commands like network commands:
This can be nammed "nutclient". It is more in line with actual commands and library (like libnutclient). Moreover the "nut controller" will be used to the internal orchestrator for future nut system. |
@clepple : on the repeater part and your above answer... |
If people need more powerful scripting capabilities to adjust reported values, it should not be in the driver core. |
Fix false positive when communication is lost
dummycons (1rst generation) and dummy-ups (2nd generation) have well served various purposes, such as:
The work on dummy-ups also permitted the creation of the NUT Devices Dumps Library (http://www.networkupstools.org/devdumps/).
However, time has come for a 3rd generation to address the following, either in definition files (.dev / . seq) and / or the driver:
The text was updated successfully, but these errors were encountered: