Skip to content

Lifecycle

Signal the end of a run and classify failures.


Domotz device Info properties. Tag a metric with one of these via D.createMetric({..., deviceProperty: D.deviceProperty.FIRMWARE}) to make its value a source for the device serial/firmware/model shown on the Device Info page.

Signature

D.deviceProperty

Properties

SERIAL · `string`
The metric value is the device serial number
FIRMWARE · `string`
The metric value is the device firmware version
MODEL · `string`
The metric value is the device model

Returns

  • object — A map of device-property constants, passed to D.createMetric(...).

Example

D.createMetric({ uid: 'fw', name: 'Firmware', value: '1.2.3', deviceProperty: D.deviceProperty.FIRMWARE })

Known Domotz Context Error types. Pass one of these as the argument to D.failure(...) so the portal can classify the failure in dashboards.

Signature

D.errorType

Properties

RESOURCE_UNAVAILABLE · `string`
Device unreachable, endpoint times out, DNS resolution fails.
AUTHENTICATION_ERROR · `string`
Credentials rejected (HTTP 401/403, bad SSH key, wrong SNMP community).
PARSING_ERROR · `string`
Response returned but its structure is not what the driver expects.
TIMEOUT_ERROR · `string`
Operation took longer than its configured timeout.
MISSING_DEVICE_ERROR · `string`
The target device is no longer in the collector's managed set.
IMPORT_NOT_ALLOWED · `string`
Driver tried to `import` — sandbox forbids it.
REQUIRE_NOT_ALLOWED · `string`
Driver tried to `require` — sandbox forbids it.
METRIC_VALIDATION_ERROR · `string`
A metric payload failed validation (bad UID, wrong value type, …).
TABLE_VALIDATION_ERROR · `string`
A table payload failed validation (missing column, bad row UID, …).
GENERIC_ERROR · `string`
None of the above fit. Prefer one of the specific types when possible.

Returns

  • object — A map of error-type constants, passed to D.failure(...).

Example

D.failure(D.errorType.AUTHENTICATION_ERROR)

Failure callback in D (D.failure). It can be present in any function in order to indicate a failure in the execution

Signature

D.failure([errorType])

Parameters

errorType · `ErrorType` · optional
The type of error that caused the failure callback. Must be a member of D.errorType

Returns

  • void

Example

D.failure(D.errorType.AUTHENTICATION_ERROR)

Success callback in D (D.success). It must be present in validate, get_status or all custom action functions code (or their callbacks) in order to indicate their successful execution

Signature

D.success([metrics], [table])

Parameters

metrics · `Array.<(Variable|Metric)>` · optional
The metrics to return (dry run) or store
table · `Table` · optional
The custom driver table to return (dry run) or store

Returns

  • void

Example

D.success()
D.success(table)
D.success(variables)
D.success(metrics)
D.success(variables, table)

Success callback in D (D.success). It must be present in the validate and backup functions (or their callbacks) in order to indicate their successful execution

Signature

D.success([configuration])

Parameters

configuration · `ConfigurationBackup` · optional
The configuration to return (dry run) or store for backup

Returns

  • void

Example

D.success()
D.success(configuration)

Domotz Variable Value Types. Pass one of these as the last argument to D.createVariable(...) / D.createMetric(...) so the portal knows how to render and chart the value.

Signature

D.valueType

Properties

STRING · `string`
Free-form text. Portal renders as a text field.
NUMBER · `string`
Numeric scalar. Portal renders as a chart.
DATETIME · `string`
ISO-8601 timestamp.
RATE · `string`
Per-second rate computed from consecutive samples.
MONOTONE_RATE · `string`
Per-second rate from a strictly-increasing counter (wraps/resets handled for you).

Returns

  • object — A map of value-type constants, passed to D.createVariable(...).

Example

D.createVariable('1a', 'CPU Temp', 60, 'C', D.valueType.NUMBER)