Abstract
Generated using TypeDoc
The CommandService uses the /Command.htm
endpoint of the ProCon.IP
+
The CommandService uses the /Command.htm
endpoint of the ProCon.IP
pool controller to turn on manual dosage for a given amount of time/seconds.
Constructor.
+Constructor.
Service config.
Service logger.
-Protected
_configSpecific service endpoint.
+Protected
_configSpecific service endpoint.
A path relative to the IServiceConfig.controllerUrl.
-HTTP request method for this specific service endpoint. +
HTTP request method for this specific service endpoint.
See: axios/Method
Protected
_requestCustom HTTP headers.
+Protected
_requestCustom HTTP headers.
Custom headers can be defined in form of a key value pair.
this._requestHeaders["Cache-Control"] = "no-cache";
-Protected
logLogger which will be used for all logging events.
-Protected
axiosGet an axios/AxiosRequestConfig
object.
Get the base url.
+Protected
logLogger which will be used for all logging events.
+Protected
axiosGet an axios/AxiosRequestConfig
object.
Get the base url.
The IServiceConfig.controllerUrl string.
-Get the webservice url (joined base url and endpoint).
+Get the webservice url (joined base url and endpoint).
URL string (joined base url and endpoint).
TypeError [ERR_INVALID_URL]: Invalid URL
-Private
_setPrivate
sendPrivate
_setPrivate
sendSet the desired relay state.
Dosage target (0 = chlorine, 1 = pH minus, 2 = pH plus).
Desired duration in seconds.
-Generated using TypeDoc
Generated using TypeDoc
This class is parser and access helper at once with integrated object +
This class is parser and access helper at once with integrated object representation for the response CSV of the GetStateService. (This might be changed/split in seperate classes in a future refactoring)
Extend the data object instances as you like.
-Initialize new GetStateData instance.
+Initialize new GetStateData instance.
Optional
rawData: stringPlain response string of the GetStateService or the
/GetState.csv
API endpoint.
Lists all indices of objects that are not labeled with 'n.a.' and therefore +
Lists all indices of objects that are not labeled with 'n.a.' and therefore considered to be active.
-Readonly
categoriesActual data objects for further processing.
+Readonly
categoriesActual data objects for further processing.
Ordered by CSV column position starting at 0.
-CSV input parsed to a simple 2-dimensional array.
+CSV input parsed to a simple 2-dimensional array.
Structure:
[
0: [ // line one
0: // line one, column one
1: // line one, column two
],
1: [ // line two
0: // line two, column one
...
...
]
-Raw CSV input string (retrieved by the GetStateService).
-SysInfo column data.
+Raw CSV input string (retrieved by the GetStateService).
+SysInfo column data.
The first line of the csv has no relation to the rest of the CSV. So it is stored seperately in here.
-Static
Readonly
categoriesData categories as array of objects.
+Static
Readonly
categoriesData categories as array of objects.
Category names as keys and arrays as values. These arrays list columns
(referencing the parsed CSV) which fall into this category.
The array values might contain simple listings of the column positions or
another array containing the starting and ending index of a slice/range.
Counting columns starts at 0. The value is of type any
to simplify
dynamic iteration without linting or parsing errors.
Get the chlorine dosage control RelayDataObject.
-Get a single GetStateDataObject by id aka column index.
+Get the chlorine dosage control RelayDataObject.
+Get a single GetStateDataObject by id aka column index.
Object column index.
-Get GetStateDataObject objects by index.
+Get GetStateDataObject objects by index.
An array of object indices specifying the return objects.
Optionally filter for active objects only.
-Get all data objects of a given category.
+Get all data objects of a given category.
A valid category string (see GetStateCategory)
Optionally filter for active objects only.
-Get the pH- dosage control RelayDataObject.
-Get the pH+ dosage control RelayDataObject.
-Check whether the given id refers to a dosage control RelayDataObject.
-Get the pH- dosage control RelayDataObject.
+Get the pH+ dosage control RelayDataObject.
+Check whether the given id refers to a dosage control RelayDataObject.
+Parse the CSV string into a 2-dimensional array structure and into GetStateDataObject and RelayDataObject objects.
Raw CSV input string (response of the /GetState.csv
endpoint)
Generated using TypeDoc
Generated using TypeDoc
An object representation of a single CSV response column (ignoring the first
+ An object representation of a single CSV response column (ignoring the first
row of the raw input!). Making GetStateDataObject objects extensible, also allows accessing
object keys using string variables. Passthru all parameters to GetStateDataObject.set. Passthru all parameters to GetStateDataObject.set. Column id/index Column or data portion name Column or data portion unit (if applicable in any way) Column value offset Column value gain Column value raw measurement Indicates whether the object is considered to be active. Indicates whether the object is considered to be active. Indeed this only means the name is not 'n.a.'. Object instance category string. Sub-index for each category. Object instance category string. Sub-index for each category. Starts counting from Object display value. Object value gain. Object id aka column index. Object label. Object value offset. Raw object input value. Object unit. Plain (calculated) object value. Object display value. Object value gain. Object id aka column index. Object label. Object value offset. Raw object input value. Object unit. Plain (calculated) object value. Set object values based on the raw input values. The input values correspond to the data rows of the represented column
(except the Column id/index Column value offset Column value gain Column value raw measurementClass GetStateDataObject
Hierarchy (view full)
Indexable
Index
Constructors
Properties
Methods
Constructors
constructor
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
Returns GetStateDataObject
Properties
active
Returns GetStateDataObject
Properties
active
category
category
category
category
0
at the first object of the instances category.
Used to determine e.g. the relay IDs.display
gain
id
label
offset
raw
unit
value
Methods
for
display
gain
id
label
offset
raw
unit
value
Methods
for
set
Returns void
set
index
paramter which indeed is the column id/index itself).Parameters
Returns void
Generated using TypeDoc
Generated using TypeDoc
A class for an object representation of the first line of the /GetState.csv
+
A class for an object representation of the first line of the /GetState.csv
API endpoint response. This line has a special role and no relation to the
subsequent lines of the CSV file.
Making GetStateDataSysInfo objects extensible, also allows accessing object keys using string variables.
-Initialize a new GetStateDataSysInfo object.
+Initialize a new GetStateDataSysInfo object.
Optional
data: string[][]Parsed response CSV of the /GetState.csv
endpoint as
2-dimensional array (see: GetStateData.parsed)
Chlorine dosage relay id.
-Other config flags.
+Chlorine dosage relay id.
+Other config flags.
Values are documented bitwise as follows:
0
) oder DMX (1
)See manual for more information or updates: http://www.pooldigital.de/trm/TRM_ProConIP.pdf
-Dosage control information flags.
+Dosage control information flags.
Values are documented bitwise as follows:
See manual for more information or updates: http://www.pooldigital.de/trm/TRM_ProConIP.pdf
-NTP fault state.
+NTP fault state.
Values are documented bitwise as follows:
See manual for more information or updates: http://www.pooldigital.de/trm/TRM_ProConIP.pdf
-pH- dosage relay id.
-pH+ dosage relay id.
-Reset root cause.
+pH- dosage relay id.
+pH+ dosage relay id.
+Reset root cause.
Values are documented bitwise as follows:
See manual for more information or updates: http://www.pooldigital.de/trm/TRM_ProConIP.pdf
-Uptime of the ProCon.IP controller at the time this data was requested.
-Current firmware version string.
-Uptime of the ProCon.IP controller at the time this data was requested.
+Current firmware version string.
+Returns the configured dosage relay for a given GetStateDataObject object.
The GetStateDataObject to check, should be a GetStateData.categories.canister or a GetStateData.categories.canisterConsumptions object.
-Check whether the given GetStateDataObject object is a dosage control +
Check whether the given GetStateDataObject object is a dosage control relay.
The GetStateDataObject to check.
-Set values from based on a 2-dimensional array structure.
Parsed response CSV of the /GetState.csv
endpoint as
2-dimensional array (see: GetStateData.parsed)
Generated using TypeDoc
Generated using TypeDoc
The GetStateService implements the AbstractService for the +
The GetStateService implements the AbstractService for the
/GetState.csv
endpoint.
Initialize a new GetStateService.
+Initialize a new GetStateService.
Service configuration.
Service logger.
-Protected
_configSpecific service endpoint.
+Protected
_configSpecific service endpoint.
A path relative to the IServiceConfig.controllerUrl.
-HTTP request method for this specific service endpoint. +
HTTP request method for this specific service endpoint.
See: axios/Method
Protected
_requestCustom HTTP headers.
+Protected
_requestCustom HTTP headers.
Custom headers can be defined in form of a key value pair.
this._requestHeaders["Cache-Control"] = "no-cache";
-Private
Optional
_updateAn optional callback, that can be passed when calling the +
Private
Optional
_updateAn optional callback, that can be passed when calling the start method.
-An optional callback, that can be passed when calling the -start method.
-Private
_updateInitially set via IGetStateServiceConfig. +
Private
_updateInitially set via IGetStateServiceConfig. Can be adjusted using the setUpdateInterval method.
-The actual service data object.
-Protected
logLogger which will be used for all logging events.
-Protected
axiosGet an axios/AxiosRequestConfig
object.
Get the base url.
+The actual service data object.
+Protected
logLogger which will be used for all logging events.
+Protected
axiosGet an axios/AxiosRequestConfig
object.
Get the base url.
The IServiceConfig.controllerUrl string.
-Get the webservice url (joined base url and endpoint).
+Get the webservice url (joined base url and endpoint).
URL string (joined base url and endpoint).
TypeError [ERR_INVALID_URL]: Invalid URL
-Recursive wrapper for the polling mechanism. The next request/interval starts after the preceding one has ended. That means a big timeout (IGetStateServiceConfig.timeout) could cause an actual higher update interval (IGetStateServiceConfig.updateInterval).
-Tells you whether the service has most recent status information or not.
More accurately it tells you whether the most recent request succeeded or
not. So it will return true
if the request succeeded and your data is
up-to-date. It will return false
until the service retrieved its first
data and again if a subsequent request fails.
Start the service.
This will periodically update the internal data and invoke the optional callables each time new data is received.
Optional
successCallback: ((data) => void)Will be triggered everytime the service receives @@ -71,10 +69,10 @@
Optional
stopOnError: booleanWhether to stop in case the consecutive error tolerance is hit. Default behavior (for backward compatibility) is to keep running in any case.
-Update data by staging an HTTP request to the pool controller.
+Update data by staging an HTTP request to the pool controller.
This method will be triggered periodically once the service
has been started (see GetStateService.start). It also
includes the part responsible for the execution of the
[[_updateCallback
]] (see start).
Generated using TypeDoc
Generated using TypeDoc
Console logger as default fallback.
+Console logger as default fallback.
This logger uses the console.log
method and simply prepends a timestamp
plus the used log level in uppercase. You can write your own custom logger
or pass any other (e.g. ioBroker has a suitable logger on board), that
matches the ILogger interface.
Initialize a new Logger.
+Protected
timestampGet current datetime with milliseconds.
+Protected
timestampGet current datetime with milliseconds.
An ISO 8601 conform timestamp (e.g. 2020-10-10T12:34:56.789Z).
-Set the actual log level
Method calls to lower log levels than the one defined here, will not generate any output.
-ILogger a message with severity warn
to console.
Generated using TypeDoc
Generated using TypeDoc
The RelayDataInterpreter is a helper for all the binary operations +
The RelayDataInterpreter is a helper for all the binary operations that are necessary to read and write relay states.
-Initialize a new RelayDataInterpreter.
-A pair of bit patterns in decimal representation according to the way the +
Initialize a new RelayDataInterpreter.
+A pair of bit patterns in decimal representation according to the way the
/usrcfg.cgi
endpoints wants its values.
Private
logEvaluate the current relay states and set the bitStates accordingly.
+Private
logEvaluate the current relay states and set the bitStates accordingly.
The determined values are used to set the switching parameters. Therefore,
the input values should be as up-to-date as possible. Otherwise, a change
on one relay will reset all other relays based on the stateData
.
The most recent GetStateData instance.
-True if the given relay (GetStateDataObject) is currently in auto +
True if the given relay (GetStateDataObject) is currently in auto mode.
-True if the given relay (GetStateDataObject) is currently not in +
True if the given relay (GetStateDataObject) is currently not in auto mode.
-True if the given relay (GetStateDataObject) is currently switched +
True if the given relay (GetStateDataObject) is currently switched off.
-True if the given relay (GetStateDataObject) is currently switched +
True if the given relay (GetStateDataObject) is currently switched on.
-Return the appropriate bit patterns for the /usrcfg.cgi
endpoint to
+
Return the appropriate bit patterns for the /usrcfg.cgi
endpoint to
switch the given relay (GetStateDataObject) into auto mode.
Return the appropriate bit patterns for the /usrcfg.cgi
endpoint to
+
Return the appropriate bit patterns for the /usrcfg.cgi
endpoint to
switch the given relay (GetStateDataObject) off.
Return the appropriate bit patterns for the /usrcfg.cgi
endpoint to
+
Return the appropriate bit patterns for the /usrcfg.cgi
endpoint to
switch the given relay (GetStateDataObject) on.
Generated using TypeDoc
Generated using TypeDoc
The RelayDataObject extends the GetStateDataObject by an +
The RelayDataObject extends the GetStateDataObject by an additional magic bitMask attribute, that determines the correct bitmask to toggle the relay's state.
-Initialize a new RelayDataObject from a given GetStateDataObject.
+Initialize a new RelayDataObject from a given GetStateDataObject.
Just
-Indicates whether the object is considered to be active.
+Indicates whether the object is considered to be active.
Indeed this only means the name is not 'n.a.'.
-Object instance category string.
-Sub-index for each category.
+Object instance category string.
+Sub-index for each category.
Starts counting from 0
at the first object of the instances category.
Used to determine e.g. the relay IDs.
Object display value.
-Object value gain.
-Object id aka column index.
-Object label.
-Object value offset.
-Raw object input value.
-Object unit.
-Plain (calculated) object value.
-Returns the bit mask for toggling the relay's state using the /usrcfg.cgi
+
Object display value.
+Object value gain.
+Object id aka column index.
+Object label.
+Object value offset.
+Raw object input value.
+Object unit.
+Plain (calculated) object value.
+Returns the bit mask for toggling the relay's state using the /usrcfg.cgi
endpoint (see: UsrcfgCgiService).
The service endpoint expects two input values, one defining on/off states and another one for the auto-mode on/off. Both values are simple bit @@ -42,9 +42,9 @@ state of every single relay to determine the values you need to change a single relays state. This is, where the RelayDataInterpreter comes in.
-Set object values based on the raw input values.
The input values correspond to the data rows of the represented column
(except the index
paramter which indeed is the column id/index itself).
Column id/index
@@ -53,4 +53,4 @@Column value offset
Column value gain
Column value raw measurement
-Generated using TypeDoc
Generated using TypeDoc
The CommandService uses the /SetState.pl
endpoint of the ProCon.IP
+
The CommandService uses the /SetState.pl
endpoint of the ProCon.IP
pool controller to turn on relays for a specified time span.
Constructor.
+Constructor.
Service config.
Service logger.
-Protected
_configSpecific service endpoint.
+Protected
_configSpecific service endpoint.
A path relative to the IServiceConfig.controllerUrl.
-HTTP request method for this specific service endpoint. +
HTTP request method for this specific service endpoint.
See: axios/Method
Protected
_requestCustom HTTP headers.
+Protected
_requestCustom HTTP headers.
Custom headers can be defined in form of a key value pair.
this._requestHeaders["Cache-Control"] = "no-cache";
-Protected
logLogger which will be used for all logging events.
-Protected
axiosGet an axios/AxiosRequestConfig
object.
Get the base url.
+Protected
logLogger which will be used for all logging events.
+Protected
axiosGet an axios/AxiosRequestConfig
object.
Get the base url.
The IServiceConfig.controllerUrl string.
-Get the webservice url (joined base url and endpoint).
+Get the webservice url (joined base url and endpoint).
URL string (joined base url and endpoint).
TypeError [ERR_INVALID_URL]: Invalid URL
-Private
_setPrivate
_setGenerated using TypeDoc
Generated using TypeDoc
The UsrcfgCgiService uses the /usrcfg.cgi
endpoint of the ProCon.IP
+
The UsrcfgCgiService uses the /usrcfg.cgi
endpoint of the ProCon.IP
pool controller to switch its relay states.
It uses two bit patterns in decimal representation, to set on/off and auto states for all relays at once. This means considering the states of all relays, those which states should be changed as well as the ones which states not gonna to be changed.
-Initialize a new UsrcfgCgiService
+Initialize a new UsrcfgCgiService
The service config.
The service logger.
A corresponding GetStateService (must address the same pool controller)
An instance of RelayDataInterpreter.
-Protected
_configSpecific service endpoint.
+Protected
_configSpecific service endpoint.
A path relative to the IServiceConfig.controllerUrl.
-HTTP request method for this specific service endpoint. +
HTTP request method for this specific service endpoint.
See: axios/Method
Protected
_requestCustom HTTP headers.
+Protected
_requestCustom HTTP headers.
Custom headers can be defined in form of a key value pair.
this._requestHeaders["Cache-Control"] = "no-cache";
-Private
getProtected
logLogger which will be used for all logging events.
-Private
relayPrivate
stateProtected
axiosGet an axios/AxiosRequestConfig
object.
Get the base url.
+Private
getProtected
logLogger which will be used for all logging events.
+Private
relayPrivate
stateProtected
axiosGet an axios/AxiosRequestConfig
object.
Get the base url.
The IServiceConfig.controllerUrl string.
-Get the webservice url (joined base url and endpoint).
+Get the webservice url (joined base url and endpoint).
URL string (joined base url and endpoint).
TypeError [ERR_INVALID_URL]: Invalid URL
-Private
_setPrivate
sendPrivate
_setPrivate
sendSet the given relay in auto mode.
Relay data object.
-Switch the given relay off.
Relay data object.
-Switch the given relay on.
Relay data object.
-Private
setPrivate
setSet the desired relay state.
Relay data object.
The desired state.
-Generated using TypeDoc
Generated using TypeDoc
This enum can be used with the CommandService.setDosage method. But +
This enum can be used with the CommandService.setDosage method. But there are also shorthand wrappers for all states (CommandService.setChlorineDosage, CommandService.setPhPlusDosage, CommandService.setPhMinusDosage) that can be used.
-Generated using TypeDoc
Generated using TypeDoc
Enum of valid categories that can be used with +
Enum of valid categories that can be used with GetStateData.getDataObjectsByCategory.
Categories are based on the official API documentation.
See manual (search for GetState.csv): http://www.pooldigital.de/trm/TRM_ProConIP.pdf
-Category for analog channels.
-Category for canister filling levels.
-Category for canister consumptions.
-Category for digital inputs.
-Category for electrode readings.
-Category for external relays.
-Category for internal relays.
-Category for temperature sensor values.
-Internal time of the ProCon.IP when processing the corresponding request. +
Category for analog channels.
+Category for canister filling levels.
+Category for canister consumptions.
+Category for digital inputs.
+Category for electrode readings.
+Category for external relays.
+Category for internal relays.
+Category for temperature sensor values.
+Internal time of the ProCon.IP when processing the corresponding request. Hence, there is only one item in this category.
-Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
The relay state is a two bit value in decimal representation:
+The relay state is a two bit value in decimal representation:
It is used by the RelayDataInterpreter and the UsrcfgCgiService.
-Generated using TypeDoc
Generated using TypeDoc
This enum can be used with the UsrcfgCgiService.setState method. But +
This enum can be used with the UsrcfgCgiService.setState method. But there are also shorthand wrappers for all states (UsrcfgCgiService.setOn, UsrcfgCgiService.setOff, UsrcfgCgiService.setAuto) that can be used.
-Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Extend common IServiceConfig with special parameters that only apply to +
Extend common IServiceConfig with special parameters that only apply to the polling characteristics of this service.
-Enable HTTP basic auth.
-Controller URL must be a valid URL string with leading protocol scheme +
Enable HTTP basic auth.
+Controller URL must be a valid URL string with leading protocol scheme
(e.g. 'http://') and should point to the ProCon.IP HTTP root. This address
will be combined with the endpoint (e.g. "/GetState.csv"
) to build the
request address. A trailing slash will be added automatically if needed.
Define how many HTTP request errors to tolerate before raising an error.
-Optional
passwordHTTP basic auth pass. Optional.
-Optional
requestDefine request timeout.
-Interval [ms] between two webservice polling requests.
-Optional
usernameHTTP basic auth username. Optional.
-Generated using TypeDoc
Define how many HTTP request errors to tolerate before raising an error.
+Optional
passwordHTTP basic auth pass. Optional.
+Optional
requestDefine request timeout.
+Interval [ms] between two webservice polling requests.
+Optional
usernameHTTP basic auth username. Optional.
+Generated using TypeDoc
Interface for compatible loggers.
+Interface for compatible loggers.
Must at least support the log levels debug
, info
, warn
and error
.
Generated using TypeDoc
Generated using TypeDoc
Configurations might contain any other values/keys, that do not conflict +
Configurations might contain any other values/keys, that do not conflict with valid configuration parameters.
-Enable HTTP basic auth.
-Controller URL must be a valid URL string with leading protocol scheme +
Enable HTTP basic auth.
+Controller URL must be a valid URL string with leading protocol scheme
(e.g. 'http://') and should point to the ProCon.IP HTTP root. This address
will be combined with the endpoint (e.g. "/GetState.csv"
) to build the
request address. A trailing slash will be added automatically if needed.
Optional
passwordHTTP basic auth pass. Optional.
-Optional
requestDefine request timeout.
-Optional
usernameHTTP basic auth username. Optional.
-Generated using TypeDoc
Optional
passwordHTTP basic auth pass. Optional.
+Optional
requestDefine request timeout.
+Optional
usernameHTTP basic auth username. Optional.
+Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Const
Response payload of the /GetState.csv
endpoint.
Generated using TypeDoc
Const
Response payload of the /GetState.csv
endpoint.
Generated using TypeDoc
Abstract service implementing the common base setup for the axios requests +
- Preparing search index...
- The search index is not available
procon-ipClass AbstractService
Abstract
Abstract service implementing the common base setup for the axios requests of the specific service implementations.
-Hierarchy (view full)
Index
Constructors
Properties
Accessors
Constructors
constructor
Constructor.
+Hierarchy (view full)
Index
Constructors
Properties
Accessors
Constructors
constructor
Constructor.
Parameters
Service config.
Service logger.
-Returns AbstractService
Properties
Protected
_configAbstract
_endpointSpecific webservice endpoint.
+Returns AbstractService
Properties
Protected
_configAbstract
_endpointSpecific webservice endpoint.
An absolute URL, which means a path with leading slash ('/') relative to the IServiceConfig.controllerUrl (ProCon.IP base address).
-Abstract
_methodHTTP request method.
+Abstract
_methodHTTP request method.
Must be one of the valid HTTP request methods like GET, POST, etc. See
-axios/Method
type:Protected
_request    [key: string]: string;
}
Custom HTTP headers.
+Protected
_request    [key: string]: string;
}
Custom HTTP headers.
Custom headers can be defined in form of a key value pair.
-Type declaration
[key: string]: string
Protected
logLogger which will be used for all logging events.
-Accessors
Protected
axiosGet an
-axios/AxiosRequestConfig
object.Returns AxiosRequestConfig<any>
base Url
Get the base url.
+Type declaration
[key: string]: string
Protected
logLogger which will be used for all logging events.
+Accessors
Protected
axiosGet an
+axios/AxiosRequestConfig
object.Returns AxiosRequestConfig<any>
base Url
Get the base url.
Returns string
The IServiceConfig.controllerUrl string.
-url
Get the webservice url (joined base url and endpoint).
+url
Get the webservice url (joined base url and endpoint).
Returns string
URL string (joined base url and endpoint).
Throws
TypeError [ERR_INVALID_URL]: Invalid URL
-Settings
Member Visibility
Theme
On This Page
Generated using TypeDoc