Skip to content

FAQ

No. Each run starts fresh. If you need to accumulate values over time, publish them as variables with stable UIDs or as table rows — the Domotz portal keeps history and deduplicates by UID.

No. The sandbox deliberately hides Node’s module system. Everything the driver can do lives under the D.* namespace. See Sandbox constraints.

My driver works in curl but not in a driver — HTTPS

Section titled “My driver works in curl but not in a driver — HTTPS”

The most common cause is a self-signed certificate. Pass rejectUnauthorized: false in the options. See HTTP guide — TLS and self-signed certificates.

SSH says the credentials are wrong but they’re correct

Section titled “SSH says the credentials are wrong but they’re correct”

Old switches and firewalls often require deprecated KEX or ciphers that the default SSH library rejects. Override the algorithm lists in the options — see SSH guide — Algorithms for old devices.

They show up in the portal’s log panel when you click Test in the custom-driver editor. See Testing & debugging.

Why are my variable values showing as strings, not numbers?

Section titled “Why are my variable values showing as strings, not numbers?”

D.valueType.STRING is the default if you omit the type. Pass D.valueType.NUMBER explicitly in D.createVariable. See Data model.

My SNMP walk returns nothing on a device I know supports it

Section titled “My SNMP walk returns nothing on a device I know supports it”

Usually a community / user mismatch, or you walked from the wrong OID. Try snmpwalk -v 2c -c public <device> 1.3.6.1.2.1.1 from the collector host first — if that works, compare its arguments against what you passed to createSNMPSession.

How do I pass a different credential for one specific call?

Section titled “How do I pass a different credential for one specific call?”

Every D.device.* method accepts username and password in the options object, which override the Custom Driver Management credentials. See Credentials & secrets.

The sandbox kills unfinished runs. Check that every code path reaches exactly one D.success / D.failure — asynchronous fan-out in particular is easy to get wrong. See Error handling — Fan-out + single terminal call.

Can I hit an external HTTP API from a driver?

Section titled “Can I hit an external HTTP API from a driver?”

No. All HTTP traffic routes through the collector to the managed device. If you need an external data source, fetch it on the cloud side and correlate there, not in a driver.

How do I update a driver that’s already deployed?

Section titled “How do I update a driver that’s already deployed?”

Upload the new version over the old one from Integrations → Automation & Scripts. The collector picks up the change on the next schedule tick. Existing metrics keep their UIDs, so history stays linked.

What’s the difference between a generic driver and a configuration-management driver?

Section titled “What’s the difference between a generic driver and a configuration-management driver?”

GENERIC drivers expose validate() + get_status() and publish variables. CONFIGURATION_MANAGEMENT drivers expose validate() + backup() + restore(configuration) and work with config snapshots. See Driver lifecycle — Configuration management drivers.