etm-powersync-app/docs/nymea_api.md
etm d5dc0c7ca5 Initial commit : Flutter app nymea energy monitor
- NymeaService : auth complète (Hello → Authenticate → SetNotificationStatus)
- Token top-level dans chaque requête JSON-RPC (fix critique GetThings)
- Persistance token via shared_preferences par hôte
- Dashboard : champs utilisateur/mot de passe dans le dialog de connexion
- ThingDetailScreen : renommer, réglages (settingsTypes) et supprimer
- NymeaThingClass : champ settingsTypes parsé depuis l'API
- NymeaThing : copyWith(name) + settingValue()
- Fix overflow _StateChip dans ThingsScreen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 16:57:46 +01:00

83 KiB

Nymea JSON-RPC API

AirConditioning.AddZone

Create a zones.

Parameters

  • name
  • o:indoorSensors
  • o:notifications
  • o:outdoorSensors
  • o:thermostats
  • o:windowSensors

Returns

  • airConditioningError
  • o:zone

Example Request

{
  "id": 1,
  "method": "AirConditioning.AddZone",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AirConditioning.GetZones

Get all Zones.

Parameters

  • o:zoneId

Returns

  • airConditioningError
  • zones

Example Request

{
  "id": 1,
  "method": "AirConditioning.GetZones",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AirConditioning.RemoveZone

Remove a zone.

Parameters

  • zoneId

Returns

  • airConditioningError

Example Request

{
  "id": 1,
  "method": "AirConditioning.RemoveZone",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AirConditioning.SetZoneName

Set zone name.

Parameters

  • name
  • zoneId

Returns

  • airConditioningError

Example Request

{
  "id": 1,
  "method": "AirConditioning.SetZoneName",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AirConditioning.SetZoneSetpointOverride

Set zone setpoint override temperature. Parameter minutes gives the minutes until the setpoint should return to the standby/schedule.

Parameters

  • mode
  • o:minutes
  • setpointOverride
  • zoneId

Returns

  • airConditioningError

Example Request

{
  "id": 1,
  "method": "AirConditioning.SetZoneSetpointOverride",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AirConditioning.SetZoneStandbySetpoint

Set zone standby setpoint temperature.

Parameters

  • standbySetpoint
  • zoneId

Returns

  • airConditioningError

Example Request

{
  "id": 1,
  "method": "AirConditioning.SetZoneStandbySetpoint",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AirConditioning.SetZoneThings

Set Zone things

Parameters

  • o:indoorSensors
  • o:notifications
  • o:outdoorSensors
  • o:thermostats
  • o:windowSensors
  • zoneId

Returns

  • airConditioningError

Example Request

{
  "id": 1,
  "method": "AirConditioning.SetZoneThings",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AirConditioning.SetZoneWeekSchedule

Set the time schedule for a zone.

Parameters

  • weekSchedule
  • zoneId

Returns

  • airConditioningError

Example Request

{
  "id": 1,
  "method": "AirConditioning.SetZoneWeekSchedule",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AppData.Load

Retrieve an app data storage value that has previously been set with Store(). If no value had been set for this appId/key combination before, an empty value will be returned.

Parameters

  • appId
  • key
  • o:group

Returns

  • value

Example Request

{
  "id": 1,
  "method": "AppData.Load",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

AppData.Store

Store an app data entry to the server. App data can be used by the client application to store configuration values. The app data storage is a key-value pair storage. Each entry value is identified by an appId, a key and optionally a group. The value data is a bytearray and can contain arbitrary data, such as a JSON map or image data, however, be aware of the maximum packet size for the used transport. This might be useful to a client application to sync settings across multiple instances of the same application. The group parameter might be used to create groups for this application. IMPORTANT: Currently no verification of the appId is done. The appid is merely a mechanism to prevent different different client apps from colliding by using the same key for data entries. This implies that the app data storage may not be suited for sensitive data given that anyone with a valid server token can read it.

Parameters

  • appId
  • key
  • o:group
  • value

Example Request

{
  "id": 1,
  "method": "AppData.Store",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.DeleteMqttPolicy

Delete a MQTT policy from the broker.

Parameters

  • clientId

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.DeleteMqttPolicy",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.DeleteMqttServerConfiguration

Delete a MQTT Server interface of the server.

Parameters

  • id

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.DeleteMqttServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.DeleteTcpServerConfiguration

Delete a TCP interface of the server. Note: if you are deleting the configuration for the interface you are currently connected to, the connection will be dropped.

Parameters

  • id

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.DeleteTcpServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.DeleteTunnelProxyServerConfiguration

Delete a Tunnel Proxy Server interface of the server. Note: if you are deleting the configuration for the interface you are currently connected to, the connection will be dropped.

Parameters

  • id

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.DeleteTunnelProxyServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.DeleteWebServerConfiguration

Delete a WebServer interface of the server.

Parameters

  • id

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.DeleteWebServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.DeleteWebSocketServerConfiguration

Delete a WebSocket Server interface of the server. Note: if you are deleting the configuration for the interface you are currently connected to, the connection will be dropped.

Parameters

  • id

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.DeleteWebSocketServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.GetAvailableLanguages

Returns a list of locale codes available for the server. i.e. en_US, de_AT

Returns

  • languages

Example Request

{
  "id": 1,
  "method": "Configuration.GetAvailableLanguages",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.GetConfigurations

Get all configuration parameters of the server.

Returns

  • basicConfiguration
  • tcpServerConfigurations
  • tunnelProxyServerConfigurations
  • webServerConfigurations
  • webSocketServerConfigurations

Example Request

{
  "id": 1,
  "method": "Configuration.GetConfigurations",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.GetMqttPolicies

Get all MQTT broker policies.

Returns

  • mqttPolicies

Example Request

{
  "id": 1,
  "method": "Configuration.GetMqttPolicies",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.GetMqttServerConfigurations

Get all MQTT Server configurations.

Returns

  • mqttServerConfigurations

Example Request

{
  "id": 1,
  "method": "Configuration.GetMqttServerConfigurations",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.GetTimeZones

Get the list of available timezones.

Returns

  • timeZones

Example Request

{
  "id": 1,
  "method": "Configuration.GetTimeZones",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetDebugServerEnabled

Enable or disable the debug server.

Parameters

  • enabled

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetDebugServerEnabled",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetLanguage

Sets the server language to the given language. See also: "GetAvailableLanguages"

Parameters

  • language

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetLanguage",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetLocation

Sets the server location.

Parameters

  • location

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetLocation",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetMqttPolicy

Configure a MQTT broker policy. If the ID is an existing one, the existing policy will be modified, otherwise a new one will be added.

Parameters

  • policy

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetMqttPolicy",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetMqttServerConfiguration

Configure a MQTT Server interface on the MQTT broker. If the ID is an existing one, the existing config will be modified, otherwise a new one will be added. Setting authenticationEnabled to true will require MQTT clients to use credentials set in the MQTT broker policies.

Parameters

  • configuration

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetMqttServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetServerName

Set the name of the server. Default is nymea.

Parameters

  • serverName

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetServerName",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetTcpServerConfiguration

Configure a TCP interface of the server. If the ID is an existing one, the existing config will be modified, otherwise a new one will be added. Note: if you are changing the configuration for the interface you are currently connected to, the connection will be dropped.

Parameters

  • configuration

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetTcpServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetTimeZone

Set the time zone of the server. See also: "GetTimeZones"

Parameters

  • timeZone

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetTimeZone",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetTunnelProxyServerConfiguration

Configure a Tunnel Proxy Server interface of the server. If the ID is an existing one, the existing config will be modified, otherwise a new one will be added. Note: if you are changing the configuration for the interface you are currently connected to, the connection will be dropped.

Parameters

  • configuration

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetTunnelProxyServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetWebServerConfiguration

Configure a WebServer interface of the server. If the ID is an existing one, the existing config will be modified, otherwise a new one will be added.

Parameters

  • configuration

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetWebServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Configuration.SetWebSocketServerConfiguration

Configure a WebSocket Server interface of the server. If the ID is an existing one, the existing config will be modified, otherwise a new one will be added. Note: if you are changing the configuration for the interface you are currently connected to, the connection will be dropped.

Parameters

  • configuration

Returns

  • configurationError

Example Request

{
  "id": 1,
  "method": "Configuration.SetWebSocketServerConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Debug.GetLoggingCategories

Get all available logging categories.

Returns

  • loggingCategories

Example Request

{
  "id": 1,
  "method": "Debug.GetLoggingCategories",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Debug.SetLoggingCategoryLevel

Set the logging category with the given name to the given logging level.

Parameters

  • level
  • name

Returns

  • debugError

Example Request

{
  "id": 1,
  "method": "Debug.SetLoggingCategoryLevel",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Energy.GetPowerBalance

Get the current power balance. That is, production, consumption and acquisition.

Returns

  • currentPowerAcquisition
  • currentPowerConsumption
  • currentPowerProduction
  • currentPowerStorage
  • totalAcquisition
  • totalConsumption
  • totalProduction
  • totalReturn

Example Request

{
  "id": 1,
  "method": "Energy.GetPowerBalance",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Energy.GetPowerBalanceLogs

Get logs for the power balance. If from is not give, the log will start at the beginning of recording. If to is not given, the logs will and at the last sample for this sample rate before now.

Parameters

  • o:from
  • o:to
  • sampleRate

Returns

  • powerBalanceLogEntries

Example Request

{
  "id": 1,
  "method": "Energy.GetPowerBalanceLogs",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Energy.GetRootMeter

Get the root meter ID. If there is no root meter set, the params will be empty.

Returns

  • o:rootMeterThingId

Example Request

{
  "id": 1,
  "method": "Energy.GetRootMeter",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Energy.GetThingPowerLogs

Get logs for one or more things power values. If thingIds is not given, logs for all energy related things will be returned. If from is not given, the log will start at the beginning of recording. If to is not given, the logs will and at the last sample for this sample rate before now. If the parameter "includeCurrent" is set to true, the result will contain the newest log entries available, regardless of the sample rate (that is, 1 minute). This may be useful to calculate the difference to the newest entry of the fetched sample rate and the current values to display the live value until the current sample is completed.

Parameters

  • o:from
  • o:includeCurrent
  • o:thingIds
  • o:to
  • sampleRate

Returns

  • o:currentEntries
  • thingPowerLogEntries

Example Request

{
  "id": 1,
  "method": "Energy.GetThingPowerLogs",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Energy.SetRootMeter

Set the root meter.

Parameters

  • rootMeterThingId

Returns

  • energyError

Example Request

{
  "id": 1,
  "method": "Energy.SetRootMeter",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

EvDash.AddUser

Add a new user with the given username and password.

Parameters

  • password
  • username

Returns

  • evDashError

Example Request

{
  "id": 1,
  "method": "EvDash.AddUser",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

EvDash.GetEnabled

Get the enabled status of EV Dash service.

Returns

  • enabled

Example Request

{
  "id": 1,
  "method": "EvDash.GetEnabled",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

EvDash.GetUsers

Get the list of available users names.

Returns

  • usernames

Example Request

{
  "id": 1,
  "method": "EvDash.GetUsers",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

EvDash.RemoveUser

Remove the user with the given username.

Parameters

  • username

Returns

  • evDashError

Example Request

{
  "id": 1,
  "method": "EvDash.RemoveUser",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

EvDash.SetEnabled

Enable/Disable the EV Dash service.

Parameters

  • enabled

Returns

  • evDashError

Example Request

{
  "id": 1,
  "method": "EvDash.SetEnabled",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.AddThing

Add a new thing to the system. Only things with a setupMethod of SetupMethodJustAdd can be added this way. For things with a setupMethod different than SetupMethodJustAdd, use PairThing. Things with CreateMethodJustAdd require all parameters to be supplied here. Things with CreateMethodDiscovery require the use of a thingDescriptorId. For discovered things, params are not required and will be taken from the ThingDescriptor, however, they may be overridden by supplying thingParams.

Parameters

  • name
  • o:thingClassId
  • o:thingDescriptorId
  • o:thingParams

Returns

  • o:displayMessage
  • o:thingId
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.AddThing",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.BrowseThing

Browse a thing. If a ThingClass indicates a thing is browsable, this method will return the BrowserItems. If no parameter besides the thingId is used, the root node of this thingwill be returned. Any returned item which is browsable can be passed as node. Results will be children of the given node. In case of an error during browsing, the error will be indicated and the displayMessage may contain additional information for the user. The displayMessage will be translated. A client UI showing this message to the user should be prepared for empty, but also longer strings.

Parameters

  • o:itemId
  • thingId

Returns

  • o:displayMessage
  • o:items
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.BrowseThing",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.ConfirmPairing

Confirm an ongoing pairing. For SetupMethodUserAndPassword, provide the username in the "username" field and the password in the "secret" field. For SetupMethodEnterPin and provide the PIN in the "secret" field. In case of SetupMethodOAuth, the previously opened web view will eventually be redirected to http://128.0.0.1:8888 and the OAuth code as query parameters to this url. Provide the entire unmodified URL in the secret field.

Parameters

  • o:secret
  • o:username
  • pairingTransactionId

Returns

  • o:displayMessage
  • o:thingId
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.ConfirmPairing",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.ConnectIO

Connect two generic IO states. Input and output need to be compatible, that is, either a digital input and a digital output, or an analog input and an analog output. If successful, the connectionId will be returned.

Parameters

  • inputStateTypeId
  • inputThingId
  • o:inverted
  • outputStateTypeId
  • outputThingId

Returns

  • o:ioConnectionId
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.ConnectIO",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.DisconnectIO

Disconnect an existing IO connection.

Parameters

  • ioConnectionId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.DisconnectIO",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.DiscoverThings

Performs a thing discovery for things of the given thingClassId and returns the results. This function may take a while to return. Note that this method will include all the found things, that is, including things that may already have been added. Those things will have thingId set to the id of the already added thing. Such results may be used to reconfigure existing things and might be filtered in cases where only unknown things are of interest.

Parameters

  • o:discoveryParams
  • thingClassId

Returns

  • o:displayMessage
  • o:thingDescriptors
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.DiscoverThings",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.EditThing

Edit the name of a thing.

Parameters

  • name
  • thingId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.EditThing",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.ExecuteAction

Execute a single action.

Parameters

  • actionTypeId
  • o:params
  • thingId

Returns

  • o:displayMessage
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.ExecuteAction",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.ExecuteBrowserItem

Execute the item identified by itemId on the given thing. In case of an error during execution, the error will be indicated and the displayMessage may contain additional information for the user. The displayMessage will be translated. A client UI showing this message to the user should be prepared for empty, but also longer strings.

Parameters

  • itemId
  • thingId

Returns

  • o:displayMessage
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.ExecuteBrowserItem",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.ExecuteBrowserItemAction

Execute the action for the browser item identified by actionTypeId and the itemId on the given thing. In case of an error during execution, the error will be indicated and the displayMessage may contain additional information for the user. The displayMessage will be translated. A client UI showing this message to the user should be prepared for empty, but also longer strings.

Parameters

  • actionTypeId
  • itemId
  • o:params
  • thingId

Returns

  • o:displayMessage
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.ExecuteBrowserItemAction",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetActionTypes

Get action types for a specified thingClassId.

Parameters

  • thingClassId

Returns

  • actionTypes

Example Request

{
  "id": 1,
  "method": "Integrations.GetActionTypes",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetBrowserItem

Get a single item from the browser. This won't give any more info on an item than a regular BrowseThing call, but it allows to fetch details of an item if only the ID is known. In case of an error during browsing, the error will be indicated and the displayMessage may contain additional information for the user. The displayMessage will be translated. A client UI showing this message to the user should be prepared for empty, but also longer strings.

Parameters

  • o:itemId
  • thingId

Returns

  • o:displayMessage
  • o:item
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.GetBrowserItem",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetEventTypes

Get event types for a specified thingClassId.

Parameters

  • thingClassId

Returns

  • eventTypes

Example Request

{
  "id": 1,
  "method": "Integrations.GetEventTypes",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetIOConnections

Fetch IO connections. Optionally filtered by thingId and stateTypeId.

Parameters

  • o:thingId

Returns

  • o:ioConnections
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.GetIOConnections",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetPluginConfiguration

Get a plugin's params.

Parameters

  • pluginId

Returns

  • o:configuration
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.GetPluginConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetPlugins

Returns a list of loaded plugins.

Returns

  • plugins

Example Request

{
  "id": 1,
  "method": "Integrations.GetPlugins",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetStateTypes

Get state types for a specified thingClassId.

Parameters

  • thingClassId

Returns

  • stateTypes

Example Request

{
  "id": 1,
  "method": "Integrations.GetStateTypes",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetStateValue

Get the value of the given thing and the given stateType

Parameters

  • stateTypeId
  • thingId

Returns

  • o:value
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.GetStateValue",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetStateValues

Get all the state values of the given thing.

Parameters

  • thingId

Returns

  • o:values
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.GetStateValues",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetThingClasses

Returns a list of supported thing classes, optionally filtered by vendorId or by a list of thing class ids.

Parameters

  • o:thingClassIds
  • o:vendorId

Returns

  • o:thingClasses
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.GetThingClasses",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetThings

Returns a list of configured things, optionally filtered by thingId.

Parameters

  • o:thingId

Returns

  • o:things
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.GetThings",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.GetVendors

Returns a list of supported Vendors.

Returns

  • vendors

Example Request

{
  "id": 1,
  "method": "Integrations.GetVendors",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.PairThing

Pair a new thing. Use this to set up or reconfigure things for ThingClasses with a setupMethod different than SetupMethodJustAdd. Depending on the CreateMethod and whether a new thing is set up or an existing one is reconfigured, different parameters are required: CreateMethodJustAdd takes the thingClassId and the parameters you want to have with that thing. If an existing thing should be reconfigured, the thingId of said thing should be given additionally. CreateMethodDiscovery requires the use of a thingDescriptorId, previously obtained with DiscoverThings. Optionally, parameters can be overridden with the give thingParams. ThingDescriptors containing a thingId will reconfigure an existing thing, descriptors without a thingId will add a new thing to the system. If success is true, the return values will contain a pairingTransactionId, a displayMessage and the setupMethod. Depending on the setupMethod, the application should present the use an appropriate login mask, that is, For SetupMethodDisplayPin the user should enter a pin that is displayed on the device or online service, for SetupMethodEnterPin the application should present the given PIN so the user can enter it on the device or online service. For SetupMethodPushButton, the displayMessage shall be presented to the user as informational hints to press a button on the device. For SetupMethodUserAndPassword a login mask for a user and password login should be presented to the user. In case of SetupMethodOAuth, an OAuth URL will be returned which shall be opened in a web view to allow the user logging in. Once the login procedure has completed, the application shall proceed with ConfirmPairing, providing the results of the pairing procedure.

Parameters

  • o:name
  • o:thingClassId
  • o:thingDescriptorId
  • o:thingId
  • o:thingParams

Returns

  • o:displayMessage
  • o:oAuthUrl
  • o:pairingTransactionId
  • o:pin
  • o:setupMethod
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.PairThing",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.ReconfigureThing

Reconfigure a thing. This comes down to removing and recreating a thing with new parameters but keeping its thing id the same (and with that keeping rules, tags etc). For things with create method CreateMethodDiscovery, a discovery (DiscoverThings) shall be performed first and this method is to be called with a thingDescriptorId of the re-discovered thing instead of the thingId directly. Thing parameters will be taken from the discovery, but can be overridden individually here by providing them in the thingParams parameter. Only writable parameters can be changed.

Parameters

  • o:thingDescriptorId
  • o:thingId
  • o:thingParams

Returns

  • o:displayMessage
  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.ReconfigureThing",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.RemoveThing

Remove a thing and all its childs from the system. RemovePolicy is deprecated and has no effect any more.

Parameters

  • dremovePolicy
  • thingId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.RemoveThing",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.SetActionLogging

Enable/disable logging for the given action type on the given thing.

Parameters

  • actionTypeId
  • enabled
  • thingId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.SetActionLogging",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.SetEventLogging

Enable/disable logging for the given event type on the given thing.

Parameters

  • enabled
  • eventTypeId
  • thingId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.SetEventLogging",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.SetPluginConfiguration

Set a plugin's params.

Parameters

  • configuration
  • pluginId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.SetPluginConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.SetStateFilter

Set the filter for the given state on the given thing.

Parameters

  • filter
  • stateTypeId
  • thingId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.SetStateFilter",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.SetStateLogging

Enable/disable logging for the given state type on the given thing.

Parameters

  • enabled
  • stateTypeId
  • thingId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.SetStateLogging",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Integrations.SetThingSettings

Change the settings of a thing.

Parameters

  • settings
  • thingId

Returns

  • thingError

Example Request

{
  "id": 1,
  "method": "Integrations.SetThingSettings",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

JSONRPC.Authenticate

Authenticate a client to the api via user & password challenge. Provide a device name which allows the user to identify the client and revoke the token in case the device is lost or stolen. This will return a new token to be used to authorize a client at the API.

Parameters

  • deviceName
  • password
  • username

Returns

  • o:scopes
  • o:token
  • o:username
  • success

Example Request

{
  "id": 1,
  "method": "JSONRPC.Authenticate",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

JSONRPC.CreateUser

Create a new user in the API. This is only allowed to be called when the initial setup is required. To create additional users, use Users.CreateUser instead. Call Authenticate after this to obtain a device token for the newly created user.

Parameters

  • o:displayName
  • o:email
  • password
  • username

Returns

  • error

Example Request

{
  "id": 1,
  "method": "JSONRPC.CreateUser",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

JSONRPC.Hello

Initiates a connection. Use this method to perform an initial handshake of the connection. Optionally, a parameter "locale" is can be passed to set up the used locale for this connection. Strings such as ThingClass displayNames etc will be localized to this locale. If this parameter is omitted, the default system locale (depending on the configuration) is used. The reply of this method contains information about this core instance such as version information, uuid and its name. The locale valueindicates the locale used for this connection. Note: This method can be called multiple times. The locale used in the last call for this connection will be used. Other values, like initialSetupRequired might change if the setup has been performed in the meantime. The field cacheHashes may contain a map of methods and MD5 hashes. As long as the hash for a method does not change, a client may use a previously cached copy of the call instead of fetching the content again. While the Hello call doesn't necessarily require a token, this can be called with a token. If a token is provided, it will be verified and the reply contains information about the tokens validity and the user and permissions for the given token.

Parameters

  • o:locale

Returns

  • authenticationRequired
  • initialSetupRequired
  • language
  • locale
  • name
  • o:authenticated
  • o:cacheHashes
  • o:experiences
  • o:permissionScopes
  • o:username
  • protocol version
  • pushButtonAuthAvailable
  • server
  • uuid
  • version

Example Request

{
  "id": 1,
  "method": "JSONRPC.Hello",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

JSONRPC.Introspect

Introspect this API.

Returns

  • methods
  • notifications
  • types

Example Request

{
  "id": 1,
  "method": "JSONRPC.Introspect",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

JSONRPC.KeepAlive

This is basically a Ping/Pong mechanism a client app may use to check server connectivity. Currently, the server does not actually do anything with this information and will return the call providing the given sessionId back to the caller. It is up to the client whether to use this or not and not required by the server to keep the connection alive.

Parameters

  • sessionId

Returns

  • sessionId
  • success

Example Request

{
  "id": 1,
  "method": "JSONRPC.KeepAlive",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

JSONRPC.RequestPushButtonAuth

Authenticate a client to the api via Push Button method. Provide a device name which allows the user to identify the client and revoke the token in case the device is lost or stolen. If push button hardware is available, this will return with success and start listening for push button presses. When the push button is pressed, the PushButtonAuthFinished notification will be sent to the requesting client. The procedure will be cancelled when the connection is interrupted. If another client requests push button authentication while a procedure is still going on, the second call will take over and the first one will be notified by the PushButtonAuthFinished signal about the error. The application should make it clear to the user to not press the button when the procedure fails as this can happen for 2 reasons: a) a second user is trying to auth at the same time and only the currently active user should press the button or b) it might indicate an attacker trying to take over and snooping in for tokens.

Parameters

  • deviceName

Returns

  • success
  • transactionId

Example Request

{
  "id": 1,
  "method": "JSONRPC.RequestPushButtonAuth",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

JSONRPC.SetNotificationStatus

Enable/Disable notifications for this connections. Either "enabled" or "namespaces" needs to be given but not both of them. The boolean based "enabled" parameter will enable/disable all notifications at once. If instead the list-based "namespaces" parameter is provided, all given namespaceswill be enabled, the others will be disabled. The return value of "success" will indicate success of the operation. The "enabled" property in the return value is deprecated and used for legacy compatibilty only. It will be set to true if at least one namespace has been enabled.

Parameters

  • denabled
  • o:namespaces

Returns

  • d:enabled
  • namespaces

Example Request

{
  "id": 1,
  "method": "JSONRPC.SetNotificationStatus",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

JSONRPC.Version

Version of this nymea/JSONRPC interface.

Returns

  • protocol version
  • qtBuildVersion
  • qtVersion
  • version

Example Request

{
  "id": 1,
  "method": "JSONRPC.Version",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Logging.GetLogEntries

Get the LogEntries matching the given filter. "sources": Builtin sources are: "core", "rules", "scripts", "integrations". May be extended by experience plugins. "columns": Columns to be returned. "filter": A map of column:value entries. Only = is supported currently. "startTime": The datetime of the oldest entry, in ms. "endTime": The datetime of the newest entry, in ms. "sampleRate": If given, returns a sampled series of the values, filling in gaps with the previous value. "sortOrder": Sort order of results. Note that this impacts the filling of gaps when resampling. "limit": Maximum amount of entries to be returned. "offset": Offset to be skipped before returning entries.

Parameters

  • o:columns
  • o:endTime
  • o:filter
  • o:limit
  • o:offset
  • o:sampleRate
  • o:sortOrder
  • o:startTime
  • sources

Returns

  • count
  • o:logEntries
  • offset

Example Request

{
  "id": 1,
  "method": "Logging.GetLogEntries",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ModbusRtu.AddModbusRtuMaster

Add a new modbus RTU master with the given configuration. The timeout value is in milli seconds and the minimum value is 10 ms.

Parameters

  • baudrate
  • dataBits
  • numberOfRetries
  • parity
  • serialPort
  • stopBits
  • timeout

Returns

  • modbusError
  • o:modbusUuid

Example Request

{
  "id": 1,
  "method": "ModbusRtu.AddModbusRtuMaster",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ModbusRtu.GetModbusRtuMasters

Get the list of configured modbus RTU masters.

Returns

  • modbusError
  • o:modbusRtuMasters

Example Request

{
  "id": 1,
  "method": "ModbusRtu.GetModbusRtuMasters",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ModbusRtu.GetSerialPorts

Get the list of available serial ports from the host system.

Returns

  • serialPorts

Example Request

{
  "id": 1,
  "method": "ModbusRtu.GetSerialPorts",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ModbusRtu.ReconfigureModbusRtuMaster

Reconfigure the modbus RTU master with the given UUID and configuration.

Parameters

  • baudrate
  • dataBits
  • modbusUuid
  • numberOfRetries
  • parity
  • serialPort
  • stopBits
  • timeout

Returns

  • modbusError

Example Request

{
  "id": 1,
  "method": "ModbusRtu.ReconfigureModbusRtuMaster",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ModbusRtu.RemoveModbusRtuMaster

Remove the modbus RTU master with the given modbus UUID.

Parameters

  • modbusUuid

Returns

  • modbusError

Example Request

{
  "id": 1,
  "method": "ModbusRtu.RemoveModbusRtuMaster",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.ConnectWifiNetwork

Connect to the wifi network with the given ssid and password.

Parameters

  • interface
  • o:password
  • ssid

Returns

  • networkManagerError

Example Request

{
  "id": 1,
  "method": "NetworkManager.ConnectWifiNetwork",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.CreateWiredConnection

Create a wired connection.

Parameters

  • interface
  • o:dns
  • o:gateway
  • o:ip
  • o:prefix
  • type

Returns

  • networkManagerError

Example Request

{
  "id": 1,
  "method": "NetworkManager.CreateWiredConnection",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.DisconnectInterface

Disconnect the given network interface. The interface will remain disconnected until the user connect it again.

Parameters

  • interface

Returns

  • networkManagerError

Example Request

{
  "id": 1,
  "method": "NetworkManager.DisconnectInterface",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.EnableNetworking

Enable or disable networking in the NetworkManager.

Parameters

  • enable

Returns

  • networkManagerError

Example Request

{
  "id": 1,
  "method": "NetworkManager.EnableNetworking",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.EnableWirelessNetworking

Enable or disable wireless networking in the NetworkManager.

Parameters

  • enable

Returns

  • networkManagerError

Example Request

{
  "id": 1,
  "method": "NetworkManager.EnableWirelessNetworking",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.GetNetworkDevices

Get the list of current network devices.

Returns

  • networkManagerError
  • o:wiredNetworkDevices
  • o:wirelessNetworkDevices

Example Request

{
  "id": 1,
  "method": "NetworkManager.GetNetworkDevices",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.GetNetworkStatus

Get the current network manager status.

Returns

  • networkManagerError
  • o:status

Example Request

{
  "id": 1,
  "method": "NetworkManager.GetNetworkStatus",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.GetWirelessAccessPoints

Get the current list of wireless network access points for the given interface. The interface has to be a WirelessNetworkDevice.

Parameters

  • interface

Returns

  • networkManagerError
  • o:wirelessAccessPoints

Example Request

{
  "id": 1,
  "method": "NetworkManager.GetWirelessAccessPoints",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.ScanWifiNetworks

Start a wifi scan for searching new networks.

Parameters

  • interface

Returns

  • networkManagerError

Example Request

{
  "id": 1,
  "method": "NetworkManager.ScanWifiNetworks",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NetworkManager.StartAccessPoint

Start a WiFi Access point on the given interface with the given SSID and password. Use DisconnectInterface to stop it again.

Parameters

  • interface
  • password
  • ssid

Returns

  • networkManagerError

Example Request

{
  "id": 1,
  "method": "NetworkManager.StartAccessPoint",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetAcquisitionTolerance

Get the acquisition tolerance. This value will control how much solar surplus is required to start the charging.

Returns

  • acquisitionTolerance

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetAcquisitionTolerance",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetAvailableSpotMarketProviders

Get the list of available spot market data providers.

Returns

  • providers

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetAvailableSpotMarketProviders",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetBatteryLevelConsideration

Get the battery level consideration. This value will control how much the energy storage is taking in account

Returns

  • batteryLevelConsideration

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetBatteryLevelConsideration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetChargingInfos

Get the charging info for all or a single EV charger

Parameters

  • o:evChargerId

Returns

  • chargingInfos

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetChargingInfos",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetChargingSchedules

Get the planed charging schedules.

Returns

  • chargingSchedules

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetChargingSchedules",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetLockOnUnplug

Get the lock on unplug setting.

Returns

  • lockOnUnplug

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetLockOnUnplug",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetPhasePowerLimit

Get the phase power consumption limit. 0 if unset. This needs to be set in order for the smart charging to do anything.

Returns

  • phasePowerLimit

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetPhasePowerLimit",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetSpotMarketConfiguration

Get the current spotmarket configuration.

Returns

  • available
  • enabled
  • o:providerId

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetSpotMarketConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.GetSpotMarketScoreEntries

Get the current score entries from the current spot market. If spot market is not enabled or not available, the list will be empty. The weighting of the available score entries goes from 0 (worst) to 1.0 (best).

Returns

  • spotMarketScoreEntries

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.GetSpotMarketScoreEntries",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.SetAcquisitionTolerance

Set the acquisition tolerance for the charging.

Parameters

  • acquisitionTolerance

Returns

  • energyError

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.SetAcquisitionTolerance",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.SetBatteryLevelConsideration

Set the battery level consideration for the charging.

Parameters

  • batteryLevelConsideration

Returns

  • energyError

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.SetBatteryLevelConsideration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.SetChargingInfo

Set the charging info for an EV charger. Only given properties will be set, others will be untouched.

Parameters

  • chargingInfo

Returns

  • energyError

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.SetChargingInfo",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.SetLockOnUnplug

Set the lock on unplug setting.

Parameters

  • lockOnUnplug

Returns

  • energyError

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.SetLockOnUnplug",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.SetPhasePowerLimit

Set the phase power consumption limit. This is the maximum allowed Ampere per phase. A value of 0 means unset. All smart charging will be disabled.

Parameters

  • phasePowerLimit

Returns

  • energyError

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.SetPhasePowerLimit",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

NymeaEnergy.SetSpotMarketConfiguration

Set the current spotmarket configuration. If enabled, the provideId must be valid. You can get the available providers using GetAvailableSpotMarketProviders.

Parameters

  • enabled
  • o:providerId

Returns

  • energyError

Example Request

{
  "id": 1,
  "method": "NymeaEnergy.SetSpotMarketConfiguration",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.AddRule

Add a rule. You can describe rules by one or many EventDesciptors and a StateEvaluator. Note that only one of either eventDescriptor or eventDescriptorList may be passed at a time. A rule can be created but left disabled, meaning it won't actually be executed until set to enabled. If not given, enabled defaults to true. A rule can have a list of actions and exitActions. It must have at least one Action. For state based rules, actions will be executed when the system enters a state matching the stateDescriptor. The exitActions will be executed when the system leaves the described state again. For event based rules, actions will be executed when a matching event happens and if the stateEvaluator matches the system's state. ExitActions for such rules will be executed when a matching event happens and the stateEvaluator is not matching the system's state. A rule marked as executable can be executed via the API using Rules.ExecuteRule, that means, its actions will be executed regardless of the eventDescriptor and stateEvaluators.

Parameters

  • actions
  • name
  • o:enabled
  • o:eventDescriptors
  • o:executable
  • o:exitActions
  • o:stateEvaluator
  • o:timeDescriptor

Returns

  • o:ruleId
  • ruleError

Example Request

{
  "id": 1,
  "method": "Rules.AddRule",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.DisableRule

Disable a rule. The rule won't be triggered by it's events or state changes while it is disabled. If successful, the notification "Rule.RuleConfigurationChanged" will be emitted.

Parameters

  • ruleId

Returns

  • ruleError

Example Request

{
  "id": 1,
  "method": "Rules.DisableRule",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.EditRule

Edit the parameters of a rule. The configuration of the rule with the given ruleId will be replaced with the new given configuration. In ordert to enable or disable a Rule, please use the methods "Rules.EnableRule" and "Rules.DisableRule". If successful, the notification "Rule.RuleConfigurationChanged" will be emitted.

Parameters

  • actions
  • name
  • o:enabled
  • o:eventDescriptors
  • o:executable
  • o:exitActions
  • o:stateEvaluator
  • o:timeDescriptor
  • ruleId

Returns

  • o:rule
  • ruleError

Example Request

{
  "id": 1,
  "method": "Rules.EditRule",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.EnableRule

Enabled a rule that has previously been disabled.If successful, the notification "Rule.RuleConfigurationChanged" will be emitted.

Parameters

  • ruleId

Returns

  • ruleError

Example Request

{
  "id": 1,
  "method": "Rules.EnableRule",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.ExecuteActions

Execute the action list of the rule with the given ruleId.

Parameters

  • ruleId

Returns

  • ruleError

Example Request

{
  "id": 1,
  "method": "Rules.ExecuteActions",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.ExecuteExitActions

Execute the exit action list of the rule with the given ruleId.

Parameters

  • ruleId

Returns

  • ruleError

Example Request

{
  "id": 1,
  "method": "Rules.ExecuteExitActions",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.FindRules

Find a list of rules containing any of the given parameters.

Parameters

  • thingId

Returns

  • ruleIds

Example Request

{
  "id": 1,
  "method": "Rules.FindRules",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.GetRuleDetails

Get details for the rule identified by ruleId

Parameters

  • ruleId

Returns

  • o:rule
  • ruleError

Example Request

{
  "id": 1,
  "method": "Rules.GetRuleDetails",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.GetRules

Get the descriptions of all configured rules. If you need more information about a specific rule use the method Rules.GetRuleDetails.

Returns

  • ruleDescriptions

Example Request

{
  "id": 1,
  "method": "Rules.GetRules",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Rules.RemoveRule

Remove a rule

Parameters

  • ruleId

Returns

  • ruleError

Example Request

{
  "id": 1,
  "method": "Rules.RemoveRule",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Scripts.AddScript

Add a script

Parameters

  • content
  • name

Returns

  • o:errors
  • o:script
  • scriptError

Example Request

{
  "id": 1,
  "method": "Scripts.AddScript",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Scripts.EditScript

Edit a script

Parameters

  • id
  • o:content
  • o:name

Returns

  • o:errors
  • scriptError

Example Request

{
  "id": 1,
  "method": "Scripts.EditScript",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Scripts.GetScriptContent

Get a scripts content.

Parameters

  • id

Returns

  • o:content
  • scriptError

Example Request

{
  "id": 1,
  "method": "Scripts.GetScriptContent",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Scripts.GetScripts

Get all script, that is, their names and properties, but no content.

Returns

  • scripts

Example Request

{
  "id": 1,
  "method": "Scripts.GetScripts",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Scripts.RemoveScript

remove a script

Parameters

  • id

Returns

  • scriptError

Example Request

{
  "id": 1,
  "method": "Scripts.RemoveScript",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.CheckForUpdates

Instruct the system to poll the server for updates. Normally the system should automatically do this in regular intervals, however, if the client wants to allow the user to manually check for new updates now, this can be called. Returns true if the operation has been started successfully and the update manager will become busy. In order to know whether there are updates available, clients should walk through the list of packages retrieved from GetPackages and check whether there are packages with the updateAvailable flag set to true.

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.CheckForUpdates",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.EnableRepository

Enable or disable a repository.

Parameters

  • enabled
  • repositoryId

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.EnableRepository",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.GetCapabilities

Get the list of capabilites on this system. The property "powerManagement" indicates whether restarting nymea and rebooting or shutting down is supported on this system. The property "updateManagement indicates whether system update features are available in this system. The property "timeManagement" indicates whether the system time can be configured on this system. Note that GetTime will be available in any case.

Returns

  • powerManagement
  • timeManagement
  • updateManagement

Example Request

{
  "id": 1,
  "method": "System.GetCapabilities",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.GetPackages

Get the list of packages currently available to the system. This might include installed available but not installed packages. Installed packages will have the installedVersion set to a non-empty value.

Returns

  • packages

Example Request

{
  "id": 1,
  "method": "System.GetPackages",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.GetRepositories

Get the list of repositories currently available to the system.

Returns

  • repositories

Example Request

{
  "id": 1,
  "method": "System.GetRepositories",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.GetSystemInfo

Returns information about the system nymea is running on.

Returns

  • deviceSerialNumber

Example Request

{
  "id": 1,
  "method": "System.GetSystemInfo",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.GetTime

Get the system time and configuraton. The "time" and "timeZone" properties give the current server time and time zone. "automaticTimeAvailable" indicates whether this system supports automatically setting the clock (e.g. using NTP). "automaticTime" will be true if the system is configured to automatically update the clock.

Returns

  • automaticTime
  • automaticTimeAvailable
  • time
  • timeZone

Example Request

{
  "id": 1,
  "method": "System.GetTime",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.GetTimeZones

Returns the list of IANA specified time zone IDs which can be used to select a time zone. It is not required to use this method if the client toolkit already provides means to obtain a list of IANA time zone ids.

Returns

  • timeZones

Example Request

{
  "id": 1,
  "method": "System.GetTimeZones",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.GetUpdateStatus

Get the current status of the update system. "busy" indicates that the system is current busy with an operation regarding updates. This does not necessarily mean an actual update is running. When this is true, update related functions on the client should be marked as busy and no interaction with update components shall be allowed. An example for such a state is when the system queries the server if there are updates available, typically after a call to CheckForUpdates. "updateRunning" on the other hand indicates an actual update process is ongoing. The user should be informed about it, the system also might restart at any point while an update is running.

Returns

  • busy
  • updateRunning

Example Request

{
  "id": 1,
  "method": "System.GetUpdateStatus",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.Reboot

Initiate a reboot of the system. The return value will indicate whether the procedure has been initiated successfully.

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.Reboot",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.RemovePackages

Starts removing a package. Returns true if the removal has been started successfully. Before calling this method, clients should check whether the package can be removed (canRemove set to true).

Parameters

  • packageIds

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.RemovePackages",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.Restart

Initiate a restart of the nymea service. The return value will indicate whether the procedure has been initiated successfully.

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.Restart",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.RollbackPackages

Starts a rollback. Returns true if the rollback has been started successfully. Before calling this method, clients should check whether the package can be rolled back (canRollback set to true).

Parameters

  • packageIds

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.RollbackPackages",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.SetTime

Set the system time configuraton. The system can be configured to update the time automatically by setting "automaticTime" to true. This will only work if the "timeManagement" capability is available on this system and "GetTime" indicates the availability of automatic time settings. If any of those requirements are not met, this method will return "false" in the "success" property. In order to manually configure the time, "automaticTime" should be set to false and "time" should be set. Note that if "automaticTime" is set to true and a manual "time" is still passed, the system will attempt to configure automatic time updates and only set the manual time if automatic mode fails. A time zone can always be passed optionally to change the system time zone and should be a IANA time zone id.

Parameters

  • o:automaticTime
  • o:time
  • o:timeZone

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.SetTime",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.Shutdown

Initiate a shutdown of the system. The return value will indicate whether the procedure has been initiated successfully.

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.Shutdown",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

System.UpdatePackages

Starts updating/installing packages with the given ids. Returns true if the upgrade has been started successfully. Note that it might still fail later. Before calling this method, clients should check the packages whether they are in a state where they can either be installed (no installedVersion set) or upgraded (updateAvailable set to true).

Parameters

  • o:packageIds

Returns

  • success

Example Request

{
  "id": 1,
  "method": "System.UpdatePackages",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Tags.AddTag

Add a Tag. A Tag must have a thingId OR a ruleId (call this method twice if you want to attach the same tag to a thing and a rule), an appId (Use the appId of your app), a tagId (e.g. "favorites") and a value. Upon success, a TagAdded notification will be emitted. Calling this method twice for the same ids (thing/rule, appId and tagId) but with a different value will update the tag's value and the TagValueChanged notification will be emitted.

Parameters

  • tag

Returns

  • tagError

Example Request

{
  "id": 1,
  "method": "Tags.AddTag",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Tags.GetTags

Get the Tags matching the given filter. Tags can be filtered by a thingID, a ruleId, an appId, a tagId or a combination of any (however, combining thingId and ruleId will return an empty result set).

Parameters

  • o:appId
  • o:ruleId
  • o:tagId
  • o:thingId

Returns

  • o:tags
  • tagError

Example Request

{
  "id": 1,
  "method": "Tags.GetTags",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Tags.RemoveTag

Remove a Tag. Tag value is optional and will be disregarded. If the ids match, the tag will be deleted and a TagRemoved notification will be emitted.

Parameters

  • tag

Returns

  • tagError

Example Request

{
  "id": 1,
  "method": "Tags.RemoveTag",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.ChangePassword

Change the password for the currently logged in user.

Parameters

  • newPassword

Returns

  • error

Example Request

{
  "id": 1,
  "method": "Users.ChangePassword",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.ChangeUserPassword

Change the password for the given user. All tokens for this user will be removed in order to force all clients to log in again.

Parameters

  • newPassword
  • username

Returns

  • error

Example Request

{
  "id": 1,
  "method": "Users.ChangeUserPassword",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.CreateUser

Create a new user in the API with the given username and password. Use scopes to define the permissions for the new user. If the user has not the permission "PermissionScopeAccessAllThings", the list of things this user has access to can be defined in the "allowedThingIds" property. If no scopes are given, this user will be an admin user. Call Authenticate after this to obtain a device token for this user.

Parameters

  • o:allowedThingIds
  • o:displayName
  • o:email
  • o:scopes
  • password
  • username

Returns

  • error

Example Request

{
  "id": 1,
  "method": "Users.CreateUser",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.GetTokens

Get all the tokens for the current user.

Returns

  • error
  • o:tokenInfoList

Example Request

{
  "id": 1,
  "method": "Users.GetTokens",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.GetUserInfo

Get info about the current token (the currently logged in user).

Returns

  • error
  • o:userInfo

Example Request

{
  "id": 1,
  "method": "Users.GetUserInfo",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.GetUserTokens

Get all the tokens for the given username.

Parameters

  • username

Returns

  • error
  • o:tokenInfoList

Example Request

{
  "id": 1,
  "method": "Users.GetUserTokens",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.GetUsers

Return a list of all users in the system.

Returns

  • users

Example Request

{
  "id": 1,
  "method": "Users.GetUsers",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.RemoveToken

Revoke access for a given token. Depending on the logged in user only the own tokens can be removed. If you are logged in as admin, any token can be removed.

Parameters

  • tokenId

Returns

  • error

Example Request

{
  "id": 1,
  "method": "Users.RemoveToken",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.RemoveUser

Remove a user from the system.

Parameters

  • username

Returns

  • error

Example Request

{
  "id": 1,
  "method": "Users.RemoveUser",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.SetUserInfo

Change user info. If username is given, info for the respective user is changed, otherwise the current user info is edited. Requires admin permissions to edit user info other than the own.

Parameters

  • o:displayName
  • o:email
  • o:username

Returns

  • error

Example Request

{
  "id": 1,
  "method": "Users.SetUserInfo",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Users.SetUserScopes

Set the permissions (scopes) for a given user. If the user has not the permission "PermissionScopeAccessAllThings" the list of thing IDs this user has access to can be defined in the "allowedThingIds" property.

Parameters

  • o:allowedThingIds
  • scopes
  • username

Returns

  • error

Example Request

{
  "id": 1,
  "method": "Users.SetUserScopes",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.AddNetwork

Add a new Z-Wave network with the given serial port.

Parameters

  • serialPort

Returns

  • o:networkUuid
  • zwaveError

Example Request

{
  "id": 1,
  "method": "ZWave.AddNetwork",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.AddNode

Start the node inclusion procedure for the given Z-Wave network.

Parameters

  • networkUuid

Returns

  • zwaveError

Example Request

{
  "id": 1,
  "method": "ZWave.AddNode",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.CancelPendingOperation

Cancel any running node inclusion or removal procedure for the given Z-Wave network.

Parameters

  • networkUuid

Returns

  • zwaveError

Example Request

{
  "id": 1,
  "method": "ZWave.CancelPendingOperation",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.FactoryResetNetwork

Factory reset the controller for the given Z-Wave network.

Parameters

  • networkUuid

Returns

  • zwaveError

Example Request

{
  "id": 1,
  "method": "ZWave.FactoryResetNetwork",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.GetNetworks

Get all the Z-Wave networks in the system.

Returns

  • networks

Example Request

{
  "id": 1,
  "method": "ZWave.GetNetworks",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.GetNodes

Get the list of nodes in a network

Parameters

  • networkUuid

Returns

  • o:nodes
  • zwaveError

Example Request

{
  "id": 1,
  "method": "ZWave.GetNodes",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.GetSerialPorts

Get the list of available serial ports from the host system.

Returns

  • serialPorts

Example Request

{
  "id": 1,
  "method": "ZWave.GetSerialPorts",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.IsZWaveAvailable

Query if the Z-Wave subsystem is available at all.

Returns

  • available

Example Request

{
  "id": 1,
  "method": "ZWave.IsZWaveAvailable",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.RemoveFailedNode

Remove the given failed node from the given Z-Wave network. This will not work if node is not marked as failed.

Parameters

  • networkUuid
  • nodeId

Returns

  • zwaveError

Example Request

{
  "id": 1,
  "method": "ZWave.RemoveFailedNode",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.RemoveNetwork

Remove the given Z-Wave network from the system.

Parameters

  • networkUuid

Returns

  • zwaveError

Example Request

{
  "id": 1,
  "method": "ZWave.RemoveNetwork",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

ZWave.RemoveNode

Start the node removal procedure for the given Z-Wave network.

Parameters

  • networkUuid

Returns

  • zwaveError

Example Request

{
  "id": 1,
  "method": "ZWave.RemoveNode",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.AddNetwork

Create a new ZigBee network for the given 'serialPort', 'baudRate' and 'backend'. The serial ports can be fetched from the available adapters. See 'GetAdapters' for more information. The available backends can be fetched using the 'GetAvailableBackends' method.

Parameters

  • backend
  • baudRate
  • o:channelMask
  • serialPort

Returns

  • o:networkUuid
  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.AddNetwork",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.CreateBinding

Create a binding. Use destinationAddress and destinationEndpointId to create a node to node binding, or use destinationGroupAddress to create a group binding.

Parameters

  • clusterId
  • networkUuid
  • o:destinationAddress
  • o:destinationEndpointId
  • o:destinationGroupAddress
  • sourceAddress
  • sourceEndpointId

Returns

  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.CreateBinding",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.FactoryResetNetwork

Factory reset the network with the given 'networkUuid'. The network does not have to be online for this procedure, and all associated nodes and things will be removed permanently.

Parameters

  • networkUuid

Returns

  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.FactoryResetNetwork",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.GetAdapters

Get the list of available ZigBee adapters and serial ports in order to set up the ZigBee network on the desired interface. The 'serialPort' property can be used as unique identifier for an adapter. If an adapter hardware has been recognized as a well known ZigBee adapter, the 'hardwareRecognized' property will be true and the 'baudRate' and 'backend' configurations can be used as they where given, otherwise the user might set the backend and baud rate manually. The available backends can be fetched using the GetAvailableBackends method.

Returns

  • adapters

Example Request

{
  "id": 1,
  "method": "Zigbee.GetAdapters",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.GetAvailableBackends

Get the list of available ZigBee backends.

Returns

  • backends

Example Request

{
  "id": 1,
  "method": "Zigbee.GetAvailableBackends",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.GetNetworks

Returns the list of configured ZigBee networks in the system.

Returns

  • zigbeeNetworks

Example Request

{
  "id": 1,
  "method": "Zigbee.GetNetworks",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.GetNodes

Returns the list of ZigBee nodes from the network the given 'networkUuid' in the system.

Parameters

  • networkUuid

Returns

  • o:zigbeeNodes
  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.GetNodes",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.RefreshBindings

Refresh the binding table for the given node.

Parameters

  • ieeeAddress
  • networkUuid

Returns

  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.RefreshBindings",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.RefreshNeighborTables

Refresh the neighbor table for all nodes. Note that calling this may cause a lot of traffic in the ZigBee network.

Parameters

  • networkUuid

Returns

  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.RefreshNeighborTables",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.RemoveBinding

Remove a binding.

Parameters

  • clusterId
  • networkUuid
  • o:destinationAddress
  • o:destinationEndpointId
  • o:destinationGroupAddress
  • sourceAddress
  • sourceEndpointId

Returns

  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.RemoveBinding",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.RemoveNetwork

Remove the ZigBee network with the given network uuid.

Parameters

  • networkUuid

Returns

  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.RemoveNetwork",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.RemoveNode

Remove a ZigBee node with the given 'ieeeAddress' from the network with the given 'networkUuid'. If there is a thing configured for this node, also the thing will be removed from the system. The coordinator node cannot be removed.

Parameters

  • ieeeAddress
  • networkUuid

Returns

  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.RemoveNode",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}

Zigbee.SetPermitJoin

Allow or deny nodes to join the network with the given 'networkUuid' for a specific 'duration' in seconds. The duration value has to be between 0 and 255 seconds. The 'permitJoinDuration' property of ZigBee network object indicates how long permit has been enabled and the 'permitJoiningRemaining' indicates the rest of the time. Those values can be used to show a countdown or progressbar. This method can be recalled for resetting the timeout. If the duration is set to 0 seconds, joining will be disabled immediatly for the entire network. The 'shortAddress' is optional and defaults to the broadcast address 0xfffc for all routers in the network. If the short address matches the address of a router node in the network, only that specific router will be able to allow new nodes to join the network. A new node will join to the router with the best link quality index (LQI).

Parameters

  • duration
  • networkUuid
  • o:shortAddress

Returns

  • zigbeeError

Example Request

{
  "id": 1,
  "method": "Zigbee.SetPermitJoin",
  "params": {}
}

Example Response

{
  "id": 1,
  "status": "success",
  "params": {}
}