/*! In the following section you can find a detaild description of the current API version 1.10. \list \li \l{Types} \li \l{Methods} \li \l{Notifications} \endlist \section1 Types \section2 Action \code { "actionTypeId": "Uuid", "deviceId": "Uuid", "o:params": [ "$ref:Param" ] } \endcode See also: \l{Param} \section2 ActionType \code { "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "paramTypes": [ "$ref:ParamType" ] } \endcode See also: \l{ParamType} \section2 BasicType \code [ "Uuid", "String", "Int", "Uint", "Double", "Bool", "Variant", "Color", "Time", "Object" ] \endcode \section2 CalendarItem \code { "duration": "Uint", "o:datetime": "Uint", "o:repeating": "$ref:RepeatingOption", "o:startTime": "Time" } \endcode See also: \l{RepeatingOption} \section2 CloudConnectionState \code [ "CloudConnectionStateDisabled", "CloudConnectionStateUnconfigured", "CloudConnectionStateConnecting", "CloudConnectionStateConnected" ] \endcode \section2 ConfigurationError \code [ "ConfigurationErrorNoError", "ConfigurationErrorInvalidTimeZone", "ConfigurationErrorInvalidStationName", "ConfigurationErrorInvalidId", "ConfigurationErrorInvalidPort", "ConfigurationErrorInvalidHostAddress", "ConfigurationErrorBluetoothHardwareNotAvailable", "ConfigurationErrorInvalidCertificate" ] \endcode \section2 CreateMethod \code [ "CreateMethodUser", "CreateMethodAuto", "CreateMethodDiscovery" ] \endcode \section2 Device \code { "deviceClassId": "Uuid", "id": "Uuid", "name": "String", "o:parentId": "Uuid", "params": [ "$ref:Param" ], "setupComplete": "Bool", "states": [ { "stateTypeId": "Uuid", "value": "Variant" } ] } \endcode See also: \l{Param} \section2 DeviceClass \code { "actionTypes": [ "$ref:ActionType" ], "createMethods": [ "$ref:CreateMethod" ], "discoveryParamTypes": [ "$ref:ParamType" ], "displayName": "String", "eventTypes": [ "$ref:EventType" ], "id": "Uuid", "interfaces": [ "String" ], "name": "String", "paramTypes": [ "$ref:ParamType" ], "pluginId": "Uuid", "setupMethod": "$ref:SetupMethod", "stateTypes": [ "$ref:StateType" ], "vendorId": "Uuid" } \endcode See also: \l{ActionType}, \l{CreateMethod}, \l{ParamType}, \l{SetupMethod}, \l{StateType}, \l{EventType}, \l{ParamType} \section2 DeviceDescriptor \code { "description": "String", "id": "Uuid", "title": "String" } \endcode \section2 DeviceError \code [ "DeviceErrorNoError", "DeviceErrorPluginNotFound", "DeviceErrorVendorNotFound", "DeviceErrorDeviceNotFound", "DeviceErrorDeviceClassNotFound", "DeviceErrorActionTypeNotFound", "DeviceErrorStateTypeNotFound", "DeviceErrorEventTypeNotFound", "DeviceErrorDeviceDescriptorNotFound", "DeviceErrorMissingParameter", "DeviceErrorInvalidParameter", "DeviceErrorSetupFailed", "DeviceErrorDuplicateUuid", "DeviceErrorCreationMethodNotSupported", "DeviceErrorSetupMethodNotSupported", "DeviceErrorHardwareNotAvailable", "DeviceErrorHardwareFailure", "DeviceErrorAuthentificationFailure", "DeviceErrorAsync", "DeviceErrorDeviceInUse", "DeviceErrorDeviceInRule", "DeviceErrorDeviceIsChild", "DeviceErrorPairingTransactionIdNotFound", "DeviceErrorParameterNotWritable" ] \endcode \section2 Event \code { "deviceId": "Uuid", "eventTypeId": "Uuid", "o:params": [ "$ref:Param" ] } \endcode See also: \l{Param} \section2 EventDescriptor \code { "o:deviceId": "Uuid", "o:eventTypeId": "Uuid", "o:interface": "String", "o:interfaceEvent": "String", "o:paramDescriptors": [ "$ref:ParamDescriptor" ] } \endcode See also: \l{ParamDescriptor} \section2 EventType \code { "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "paramTypes": [ "$ref:ParamType" ] } \endcode See also: \l{ParamType} \section2 InputType \code [ "InputTypeNone", "InputTypeTextLine", "InputTypeTextArea", "InputTypePassword", "InputTypeSearch", "InputTypeMail", "InputTypeIPv4Address", "InputTypeIPv6Address", "InputTypeUrl", "InputTypeMacAddress" ] \endcode \section2 LogEntry \code { "loggingLevel": "$ref:LoggingLevel", "o:active": "Bool", "o:deviceId": "Uuid", "o:errorCode": "String", "o:eventType": "$ref:LoggingEventType", "o:typeId": "Uuid", "o:value": "String", "source": "$ref:LoggingSource", "timestamp": "Int" } \endcode See also: \l{LoggingSource}, \l{LoggingEventType}, \l{LoggingLevel} \section2 LoggingError \code [ "LoggingErrorNoError", "LoggingErrorLogEntryNotFound", "LoggingErrorInvalidFilterParameter" ] \endcode \section2 LoggingEventType \code [ "LoggingEventTypeTrigger", "LoggingEventTypeActiveChange", "LoggingEventTypeEnabledChange", "LoggingEventTypeActionsExecuted", "LoggingEventTypeExitActionsExecuted" ] \endcode \section2 LoggingLevel \code [ "LoggingLevelInfo", "LoggingLevelAlert" ] \endcode \section2 LoggingSource \code [ "LoggingSourceSystem", "LoggingSourceEvents", "LoggingSourceActions", "LoggingSourceStates", "LoggingSourceRules" ] \endcode \section2 NetworkDeviceState \code [ "NetworkDeviceStateUnknown", "NetworkDeviceStateUnmanaged", "NetworkDeviceStateUnavailable", "NetworkDeviceStateDisconnected", "NetworkDeviceStatePrepare", "NetworkDeviceStateConfig", "NetworkDeviceStateNeedAuth", "NetworkDeviceStateIpConfig", "NetworkDeviceStateIpCheck", "NetworkDeviceStateSecondaries", "NetworkDeviceStateActivated", "NetworkDeviceStateDeactivating", "NetworkDeviceStateFailed" ] \endcode \section2 NetworkManagerError \code [ "NetworkManagerErrorNoError", "NetworkManagerErrorUnknownError", "NetworkManagerErrorWirelessNotAvailable", "NetworkManagerErrorAccessPointNotFound", "NetworkManagerErrorNetworkInterfaceNotFound", "NetworkManagerErrorInvalidNetworkDeviceType", "NetworkManagerErrorWirelessNetworkingDisabled", "NetworkManagerErrorWirelessConnectionFailed", "NetworkManagerErrorNetworkingDisabled", "NetworkManagerErrorNetworkManagerNotAvailable" ] \endcode \section2 NetworkManagerState \code [ "NetworkManagerStateUnknown", "NetworkManagerStateAsleep", "NetworkManagerStateDisconnected", "NetworkManagerStateDisconnecting", "NetworkManagerStateConnecting", "NetworkManagerStateConnectedLocal", "NetworkManagerStateConnectedSite", "NetworkManagerStateConnectedGlobal" ] \endcode \section2 Param \code { "paramTypeId": "Uuid", "value": "$ref:BasicType" } \endcode See also: \l{BasicType} \section2 ParamDescriptor \code { "o:paramName": "Uuid", "o:paramTypeId": "Uuid", "operator": "$ref:ValueOperator", "value": "$ref:BasicType" } \endcode See also: \l{BasicType}, \l{ValueOperator} \section2 ParamType \code { "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "o:allowedValues": [ "Variant" ], "o:defaultValue": "Variant", "o:inputType": "$ref:InputType", "o:maxValue": "Variant", "o:minValue": "Variant", "o:readOnly": "Bool", "o:unit": "$ref:Unit", "type": "$ref:BasicType" } \endcode See also: \l{Unit}, \l{InputType}, \l{BasicType} \section2 Plugin \code { "displayName": "String", "id": "Uuid", "name": "String", "paramTypes": [ "$ref:ParamType" ] } \endcode See also: \l{ParamType} \section2 RemovePolicy \code [ "RemovePolicyCascade", "RemovePolicyUpdate" ] \endcode \section2 RepeatingMode \code [ "RepeatingModeNone", "RepeatingModeHourly", "RepeatingModeDaily", "RepeatingModeWeekly", "RepeatingModeMonthly", "RepeatingModeYearly" ] \endcode \section2 RepeatingOption \code { "mode": "$ref:RepeatingMode", "o:monthDays": [ "Int" ], "o:weekDays": [ "Int" ] } \endcode See also: \l{RepeatingMode} \section2 Rule \code { "actions": [ "$ref:RuleAction" ], "active": "Bool", "enabled": "Bool", "eventDescriptors": [ "$ref:EventDescriptor" ], "executable": "Bool", "exitActions": [ "$ref:RuleAction" ], "id": "Uuid", "name": "String", "stateEvaluator": "$ref:StateEvaluator", "timeDescriptor": "$ref:TimeDescriptor" } \endcode See also: \l{TimeDescriptor}, \l{RuleAction}, \l{StateEvaluator}, \l{RuleAction}, \l{EventDescriptor} \section2 RuleAction \code { "o:actionTypeId": "Uuid", "o:deviceId": "Uuid", "o:interface": "String", "o:interfaceAction": "String", "o:ruleActionParams": [ "$ref:RuleActionParam" ] } \endcode See also: \l{RuleActionParam} \section2 RuleActionParam \code { "o:eventParamTypeId": "Uuid", "o:eventTypeId": "Uuid", "o:paramName": "String", "o:paramTypeId": "Uuid", "o:value": "$ref:BasicType" } \endcode See also: \l{BasicType} \section2 RuleDescription \code { "active": "Bool", "enabled": "Bool", "executable": "Bool", "id": "Uuid", "name": "String" } \endcode \section2 RuleError \code [ "RuleErrorNoError", "RuleErrorInvalidRuleId", "RuleErrorRuleNotFound", "RuleErrorDeviceNotFound", "RuleErrorEventTypeNotFound", "RuleErrorStateTypeNotFound", "RuleErrorActionTypeNotFound", "RuleErrorInvalidParameter", "RuleErrorInvalidRuleFormat", "RuleErrorMissingParameter", "RuleErrorInvalidRuleActionParameter", "RuleErrorInvalidStateEvaluatorValue", "RuleErrorTypesNotMatching", "RuleErrorNotExecutable", "RuleErrorInvalidTimeDescriptor", "RuleErrorInvalidRepeatingOption", "RuleErrorInvalidCalendarItem", "RuleErrorInvalidTimeEventItem", "RuleErrorContainsEventBasesAction", "RuleErrorNoExitActions", "RuleErrorInterfaceNotFound" ] \endcode \section2 ServerConfiguration \code { "address": "String", "authenticationEnabled": "Bool", "id": "String", "port": "Uint", "sslEnabled": "Bool" } \endcode \section2 SetupMethod \code [ "SetupMethodJustAdd", "SetupMethodDisplayPin", "SetupMethodEnterPin", "SetupMethodPushButton" ] \endcode \section2 State \code { "deviceId": "Uuid", "stateTypeId": "Uuid", "value": "Variant" } \endcode \section2 StateDescriptor \code { "o:deviceId": "Uuid", "o:interface": "String", "o:interfaceState": "String", "o:stateTypeId": "Uuid", "operator": "$ref:ValueOperator", "value": "Variant" } \endcode See also: \l{ValueOperator} \section2 StateEvaluator \code { "o:childEvaluators": [ "$ref:StateEvaluator" ], "o:operator": "$ref:StateOperator", "o:stateDescriptor": "$ref:StateDescriptor" } \endcode See also: \l{StateEvaluator}, \l{StateDescriptor}, \l{StateOperator} \section2 StateOperator \code [ "StateOperatorAnd", "StateOperatorOr" ] \endcode \section2 StateType \code { "defaultValue": "Variant", "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "o:maxValue": "Variant", "o:minValue": "Variant", "o:possibleValues": [ "Variant" ], "o:unit": "$ref:Unit", "type": "$ref:BasicType" } \endcode See also: \l{Unit}, \l{BasicType} \section2 Tag \code { "appId": "String", "o:deviceId": "Uuid", "o:ruleId": "Uuid", "o:value": "String", "tagId": "String" } \endcode \section2 TagError \code [ "TagErrorNoError", "TagErrorDeviceNotFound", "TagErrorRuleNotFound", "TagErrorTagNotFound" ] \endcode \section2 TimeDescriptor \code { "o:calendarItems": [ "$ref:CalendarItem" ], "o:timeEventItems": [ "$ref:TimeEventItem" ] } \endcode See also: \l{TimeEventItem}, \l{CalendarItem} \section2 TimeEventItem \code { "o:datetime": "Uint", "o:repeating": "$ref:RepeatingOption", "o:time": "Time" } \endcode See also: \l{RepeatingOption} \section2 TokenInfo \code { "creationTime": "Uint", "deviceName": "String", "id": "Uuid", "userName": "String" } \endcode \section2 Unit \code [ "UnitNone", "UnitSeconds", "UnitMinutes", "UnitHours", "UnitUnixTime", "UnitMeterPerSecond", "UnitKiloMeterPerHour", "UnitDegree", "UnitRadiant", "UnitDegreeCelsius", "UnitDegreeKelvin", "UnitMired", "UnitMilliBar", "UnitBar", "UnitPascal", "UnitHectoPascal", "UnitAtmosphere", "UnitLumen", "UnitLux", "UnitCandela", "UnitMilliMeter", "UnitCentiMeter", "UnitMeter", "UnitKiloMeter", "UnitGram", "UnitKiloGram", "UnitDezibel", "UnitBpm", "UnitKiloByte", "UnitMegaByte", "UnitGigaByte", "UnitTeraByte", "UnitMilliWatt", "UnitWatt", "UnitKiloWatt", "UnitKiloWattHour", "UnitEuroPerMegaWattHour", "UnitEuroCentPerKiloWattHour", "UnitPercentage", "UnitPartsPerMillion", "UnitEuro", "UnitDollar", "UnitHerz", "UnitAmpere", "UnitMilliAmpere", "UnitVolt", "UnitMilliVolt", "UnitVoltAmpere", "UnitVoltAmpereReactive", "UnitAmpereHour", "UnitMicroSiemensPerCentimeter", "UnitDuration" ] \endcode \section2 UserError \code [ "UserErrorNoError", "UserErrorBackendError", "UserErrorInvalidUserId", "UserErrorDuplicateUserId", "UserErrorBadPassword", "UserErrorTokenNotFound", "UserErrorPermissionDenied" ] \endcode \section2 ValueOperator \code [ "ValueOperatorEquals", "ValueOperatorNotEquals", "ValueOperatorLess", "ValueOperatorGreater", "ValueOperatorLessOrEqual", "ValueOperatorGreaterOrEqual" ] \endcode \section2 Vendor \code { "displayName": "String", "id": "Uuid", "name": "String" } \endcode \section2 WebServerConfiguration \code { "address": "String", "authenticationEnabled": "Bool", "id": "String", "port": "Uint", "sslEnabled": "Bool" } \endcode \section2 WiredNetworkDevice \code { "bitRate": "String", "interface": "String", "macAddress": "String", "pluggedIn": "Bool", "state": "$ref:NetworkDeviceState" } \endcode See also: \l{NetworkDeviceState} \section2 WirelessAccessPoint \code { "frequency": "Double", "macAddress": "String", "protected": "Bool", "signalStrength": "Int", "ssid": "String" } \endcode \section2 WirelessNetworkDevice \code { "bitRate": "String", "interface": "String", "macAddress": "String", "o:currentAccessPoint": "$ref:WirelessAccessPoint", "state": "$ref:NetworkDeviceState" } \endcode See also: \l{WirelessAccessPoint}, \l{NetworkDeviceState} \section1 Methods \section2 Actions.ExecuteAction Execute a single action. Params \code { "actionTypeId": "Uuid", "deviceId": "Uuid", "o:params": [ "$ref:Param" ] } \endcode Returns \code { "deviceError": "$ref:DeviceError" } \endcode See also: \l{DeviceError}, \l{Param} \section2 Actions.GetActionType Get the ActionType for the given ActionTypeId Params \code { "actionTypeId": "Uuid" } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:actionType": { "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "paramTypes": [ "$ref:ParamType" ] } } \endcode See also: \l{ParamType}, \l{DeviceError} \section2 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. Params \code { "id": "String" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError} \section2 Configuration.DeleteWebServerConfiguration Delete a WebServer interface of the server. Params \code { "id": "String" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError} \section2 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. Params \code { "id": "String" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError} \section2 Configuration.GetAvailableLanguages Returns a list of locale codes available for the server. i.e. en_US, de_AT Params \code {} \endcode Returns \code { "languages": [ "String" ] } \endcode \section2 Configuration.GetConfigurations Get all configuration parameters of the server. Params \code {} \endcode Returns \code { "basicConfiguration": { "debugServerEnabled": "Bool", "language": "String", "serverName": "String", "serverTime": "Uint", "serverUuid": "Uuid", "timeZone": "String" }, "cloud": { "enabled": "Bool" }, "tcpServerConfigurations": [ "$ref:ServerConfiguration" ], "webServerConfigurations": [ "$ref:WebServerConfiguration" ], "webSocketServerConfigurations": [ "$ref:ServerConfiguration" ] } \endcode See also: \l{ServerConfiguration}, \l{WebServerConfiguration}, \l{ServerConfiguration} \section2 Configuration.GetTimeZones Get the list of available timezones. Params \code {} \endcode Returns \code { "timeZones": [ "String" ] } \endcode \section2 Configuration.SetCloudEnabled Sets whether the cloud connection is enabled or disabled in the settings. Params \code { "enabled": "Bool" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError} \section2 Configuration.SetDebugServerEnabled Enable or disable the debug server. Params \code { "enabled": "String" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError} \section2 Configuration.SetLanguage Sets the server language to the given language. See also: "GetAvailableLanguages" Params \code { "language": "String" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError} \section2 Configuration.SetServerName Set the name of the server. Default is nymea. Params \code { "serverName": "String" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError} \section2 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. Params \code { "configuration": "$ref:ServerConfiguration" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError}, \l{ServerConfiguration} \section2 Configuration.SetTimeZone Set the time zone of the server. See also: "GetTimeZones" Params \code { "timeZone": "String" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError} \section2 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. Params \code { "configuration": "$ref:WebServerConfiguration" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError}, \l{WebServerConfiguration} \section2 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. Params \code { "configuration": "$ref:ServerConfiguration" } \endcode Returns \code { "configurationError": "$ref:ConfigurationError" } \endcode See also: \l{ConfigurationError}, \l{ServerConfiguration} \section2 Devices.AddConfiguredDevice Add a configured device with a setupMethod of SetupMethodJustAdd. For devices with a setupMethod different than SetupMethodJustAdd, use PairDevice. Use deviceDescriptorId or deviceParams, depending on the createMethod of the device class. CreateMethodJustAdd takes the parameters you want to have with that device. CreateMethodDiscovery requires the use of a deviceDescriptorId. Params \code { "deviceClassId": "Uuid", "name": "String", "o:deviceDescriptorId": "Uuid", "o:deviceParams": [ "$ref:Param" ] } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:deviceId": "Uuid" } \endcode See also: \l{DeviceError}, \l{Param} \section2 Devices.ConfirmPairing Confirm an ongoing pairing. In case of SetupMethodEnterPin also provide the pin in the params. Params \code { "o:secret": "String", "pairingTransactionId": "Uuid" } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:deviceId": "Uuid" } \endcode See also: \l{DeviceError} \section2 Devices.EditDevice Edit the name of a device. This method does not change the configuration of the device. Params \code { "deviceId": "Uuid", "name": "String" } \endcode Returns \code { "deviceError": "$ref:DeviceError" } \endcode See also: \l{DeviceError} \section2 Devices.GetActionTypes Get action types for a specified deviceClassId. Params \code { "deviceClassId": "Uuid" } \endcode Returns \code { "actionTypes": [ "$ref:ActionType" ] } \endcode See also: \l{ActionType} \section2 Devices.GetConfiguredDevices Returns a list of configured devices, optionally filtered by deviceId. Params \code { "o:deviceId": "Uuid" } \endcode Returns \code { "devices": [ "$ref:Device" ] } \endcode See also: \l{Device} \section2 Devices.GetDiscoveredDevices Performs a device discovery and returns the results. This function may take a while to return. Params \code { "deviceClassId": "Uuid", "o:discoveryParams": [ "$ref:Param" ] } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:deviceDescriptors": [ "$ref:DeviceDescriptor" ] } \endcode See also: \l{DeviceDescriptor}, \l{DeviceError}, \l{Param} \section2 Devices.GetEventTypes Get event types for a specified deviceClassId. Params \code { "deviceClassId": "Uuid" } \endcode Returns \code { "eventTypes": [ "$ref:EventType" ] } \endcode See also: \l{EventType} \section2 Devices.GetPluginConfiguration Get a plugin's params. Params \code { "pluginId": "Uuid" } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:configuration": [ "$ref:Param" ] } \endcode See also: \l{Param}, \l{DeviceError} \section2 Devices.GetPlugins Returns a list of loaded plugins. Params \code {} \endcode Returns \code { "plugins": [ "$ref:Plugin" ] } \endcode See also: \l{Plugin} \section2 Devices.GetStateTypes Get state types for a specified deviceClassId. Params \code { "deviceClassId": "Uuid" } \endcode Returns \code { "stateTypes": [ "$ref:StateType" ] } \endcode See also: \l{StateType} \section2 Devices.GetStateValue Get the value of the given device and the given stateType Params \code { "deviceId": "Uuid", "stateTypeId": "Uuid" } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:value": "Variant" } \endcode See also: \l{DeviceError} \section2 Devices.GetStateValues Get all the state values of the given device. Params \code { "deviceId": "Uuid" } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:values": [ { "stateTypeId": "Uuid", "value": "Variant" } ] } \endcode See also: \l{DeviceError} \section2 Devices.GetSupportedDevices Returns a list of supported Device classes, optionally filtered by vendorId. Params \code { "o:vendorId": "Uuid" } \endcode Returns \code { "deviceClasses": [ "$ref:DeviceClass" ] } \endcode See also: \l{DeviceClass} \section2 Devices.GetSupportedVendors Returns a list of supported Vendors. Params \code {} \endcode Returns \code { "vendors": [ "$ref:Vendor" ] } \endcode See also: \l{Vendor} \section2 Devices.PairDevice Pair a device. Use this for DeviceClasses with a setupMethod different than SetupMethodJustAdd. Use deviceDescriptorId or deviceParams, depending on the createMethod of the device class. CreateMethodJustAdd takes the parameters you want to have with that device. CreateMethodDiscovery requires the use of a deviceDescriptorId. If success is true, the return values will contain a pairingTransactionId, a displayMessage and the setupMethod. Depending on the setupMethod you should either proceed with AddConfiguredDevice or PairDevice. Params \code { "deviceClassId": "Uuid", "name": "String", "o:deviceDescriptorId": "Uuid", "o:deviceParams": [ "$ref:Param" ] } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:displayMessage": "String", "o:pairingTransactionId": "Uuid", "o:setupMethod": "$ref:SetupMethod" } \endcode See also: \l{SetupMethod}, \l{DeviceError}, \l{Param} \section2 Devices.ReconfigureDevice Edit the parameter configuration of the device. The device params will be set to the passed parameters and the setup device will be called. If the device is discoverable, you can perform a GetDiscoveredDevices before calling this method and pass the new DeviceDescriptor (rediscover). Only writable parameters can be changed. By default, every Param is writable. Params \code { "deviceId": "Uuid", "o:deviceDescriptorId": "Uuid", "o:deviceParams": [ "$ref:Param" ] } \endcode Returns \code { "deviceError": "$ref:DeviceError" } \endcode See also: \l{DeviceError}, \l{Param} \section2 Devices.RemoveConfiguredDevice Remove a device from the system. Params \code { "deviceId": "Uuid", "o:removePolicy": "$ref:RemovePolicy", "o:removePolicyList": [ { "policy": "$ref:RemovePolicy", "ruleId": "Uuid" } ] } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:ruleIds": [ "Uuid" ] } \endcode See also: \l{DeviceError}, \l{RemovePolicy}, \l{RemovePolicy} \section2 Devices.SetPluginConfiguration Set a plugin's params. Params \code { "configuration": [ "$ref:Param" ], "pluginId": "Uuid" } \endcode Returns \code { "deviceError": "$ref:DeviceError" } \endcode See also: \l{DeviceError}, \l{Param} \section2 Events.GetEventType Get the EventType for the given eventTypeId. Params \code { "eventTypeId": "Uuid" } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:eventType": "$ref:EventType" } \endcode See also: \l{EventType}, \l{DeviceError} \section2 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. Params \code { "deviceName": "String", "password": "String", "username": "String" } \endcode Returns \code { "o:token": "String", "success": "Bool" } \endcode \section2 JSONRPC.CreateUser Create a new user in the API. Currently this is only allowed to be called once when a new nymea instance is set up. Call Authenticate after this to obtain a device token for this user. Params \code { "password": "String", "username": "String" } \endcode Returns \code { "error": "$ref:UserError" } \endcode See also: \l{UserError} \section2 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 DeviceClass 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 value indicates 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. Note: The return value contains a locale and and a language parameter. They will always be set to the same value and the language parameter is deprecated as of JSONRPC version 2.0. Clients should use the "locale" parameter instead. Params \code { "o:locale": "String" } \endcode Returns \code { "authenticationRequired": "Bool", "initialSetupRequired": "Bool", "language": "String", "locale": String, "name": "String", "protocol version": "String", "pushButtonAuthAvailable": "Bool", "server": "String", "uuid": "Uuid", "version": "String" } \endcode \section2 JSONRPC.Introspect Introspect this API. Params \code {} \endcode Returns \code { "methods": "Object", "notifications": "Object", "types": "Object" } \endcode \section2 JSONRPC.IsCloudConnected Check whether the cloud is currently connected. "connected" will be true whenever connectionState equals CloudConnectionStateConnected and is deprecated. Please use the connectionState value instead. Params \code {} \endcode Returns \code { "connected": "Bool", "connectionState": "$ref:CloudConnectionState" } \endcode See also: \l{CloudConnectionState} \section2 JSONRPC.KeepAlive Keep alive a remote connection. The sessionId is the MQTT topic which has been used to establish the session. It will return false if no ongoing session with the given ID can be found. Params \code { "sessionId": "String" } \endcode Returns \code { "success": "Bool" } \endcode \section2 JSONRPC.RemoveToken Revoke access for a given token. Params \code { "tokenId": "Uuid" } \endcode Returns \code { "error": "$ref:UserError" } \endcode See also: \l{UserError} \section2 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. Params \code { "deviceName": "String" } \endcode Returns \code { "success": "Bool", "transactionId": "Int" } \endcode \section2 JSONRPC.SetNotificationStatus Enable/Disable notifications for this connections. Params \code { "enabled": "Bool" } \endcode Returns \code { "enabled": "Bool" } \endcode \section2 JSONRPC.SetupCloudConnection Sets up the cloud connection by deploying a certificate and its configuration. Params \code { "certificatePEM": "String", "endpoint": "String", "privateKey": "String", "publicKey": "String", "rootCA": "String" } \endcode Returns \code { "success": "Bool" } \endcode \section2 JSONRPC.SetupRemoteAccess Setup the remote connection by providing AWS token information. This requires the cloud to be connected. Params \code { "idToken": "String", "userId": "String" } \endcode Returns \code { "message": "String", "status": "Int" } \endcode \section2 JSONRPC.Tokens Return a list of TokenInfo objects of all the tokens for the current user. Params \code {} \endcode Returns \code { "tokenInfoList": [ "$ref:TokenInfo" ] } \endcode See also: \l{TokenInfo} \section2 JSONRPC.Version Version of this nymea/JSONRPC interface. Params \code {} \endcode Returns \code { "protocol version": "String", "version": "String" } \endcode \section2 Logging.GetLogEntries Get the LogEntries matching the given filter. The result set will contain entries matching all filter rules combined. If multiple options are given for a single filter type, the result set will contain entries matching any of those. The offset starts at the newest entry in the result set. By default all items are returned. Example: If the specified filter returns a total amount of 100 entries: - a offset value of 10 would include the oldest 90 entries - a offset value of 0 would return all 100 entries The offset is particularly useful in combination with the maxCount property and can be used for pagination. E.g. A result set of 10000 entries can be fetched in batches of 1000 entries by fetching 1) offset 0, maxCount 1000: Entries 0 to 9999 2) offset 10000, maxCount 1000: Entries 10000 - 19999 3) offset 20000, maxCount 1000: Entries 20000 - 29999 ... Params \code { "o:deviceIds": [ "Uuid" ], "o:eventTypes": [ "$ref:LoggingEventType" ], "o:limit": "Int", "o:loggingLevels": [ "$ref:LoggingLevel" ], "o:loggingSources": [ "$ref:LoggingSource" ], "o:offset": "Int", "o:timeFilters": [ { "o:endDate": "Int", "o:startDate": "Int" } ], "o:typeIds": [ "Uuid" ], "o:values": [ "Variant" ] } \endcode Returns \code { "count": "Int", "loggingError": "$ref:LoggingError", "o:logEntries": [ "$ref:LogEntry" ], "offset": "Int" } \endcode See also: \l{LogEntry}, \l{LoggingError}, \l{LoggingLevel}, \l{LoggingEventType}, \l{LoggingSource} \section2 NetworkManager.ConnectWifiNetwork Connect to the wifi network with the given ssid and password. Params \code { "interface": "String", "o:password": "String", "ssid": "String" } \endcode Returns \code { "networkManagerError": "$ref:NetworkManagerError" } \endcode See also: \l{NetworkManagerError} \section2 NetworkManager.DisconnectInterface Disconnect the given network interface. The interface will remain disconnected until the user connect it again. Params \code { "interface": "String" } \endcode Returns \code { "networkManagerError": "$ref:NetworkManagerError" } \endcode See also: \l{NetworkManagerError} \section2 NetworkManager.EnableNetworking Enable or disable networking in the NetworkManager. Params \code { "enable": "Bool" } \endcode Returns \code { "networkManagerError": "$ref:NetworkManagerError" } \endcode See also: \l{NetworkManagerError} \section2 NetworkManager.EnableWirelessNetworking Enable or disable wireless networking in the NetworkManager. Params \code { "enable": "Bool" } \endcode Returns \code { "networkManagerError": "$ref:NetworkManagerError" } \endcode See also: \l{NetworkManagerError} \section2 NetworkManager.GetNetworkDevices Get the list of current network devices. Params \code {} \endcode Returns \code { "networkManagerError": "$ref:NetworkManagerError", "wiredNetworkDevices": [ "$ref:WiredNetworkDevice" ], "wirelessNetworkDevices": [ "$ref:WirelessNetworkDevice" ] } \endcode See also: \l{NetworkManagerError}, \l{WiredNetworkDevice}, \l{WirelessNetworkDevice} \section2 NetworkManager.GetNetworkStatus Get the current network manager status. Params \code {} \endcode Returns \code { "networkManagerError": "$ref:NetworkManagerError", "o:status": { "networkingEnabled": "Bool", "state": "$ref:NetworkManagerState", "wirelessNetworkingEnabled": "Bool" } } \endcode See also: \l{NetworkManagerError}, \l{NetworkManagerState} \section2 NetworkManager.GetWirelessAccessPoints Get the current list of wireless network access points for the given interface. The interface has to be a WirelessNetworkDevice. Params \code { "interface": "String" } \endcode Returns \code { "networkManagerError": "$ref:NetworkManagerError", "o:wirelessAccessPoints": [ "$ref:WirelessAccessPoint" ] } \endcode See also: \l{NetworkManagerError}, \l{WirelessAccessPoint} \section2 NetworkManager.ScanWifiNetworks Start a wifi scan for searching new networks. Params \code { "interface": "String" } \endcode Returns \code { "networkManagerError": "$ref:NetworkManagerError" } \endcode See also: \l{NetworkManagerError} \section2 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 the eventDescriptor and stateEvaluators. Params \code { "actions": [ "$ref:RuleAction" ], "name": "String", "o:enabled": "Bool", "o:eventDescriptors": [ "$ref:EventDescriptor" ], "o:executable": "Bool", "o:exitActions": [ "$ref:RuleAction" ], "o:stateEvaluator": "$ref:StateEvaluator", "o:timeDescriptor": "$ref:TimeDescriptor" } \endcode Returns \code { "o:ruleId": "Uuid", "ruleError": "$ref:RuleError" } \endcode See also: \l{RuleError}, \l{RuleAction}, \l{TimeDescriptor}, \l{RuleAction}, \l{EventDescriptor}, \l{StateEvaluator} \section2 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. Params \code { "ruleId": "Uuid" } \endcode Returns \code { "ruleError": "$ref:RuleError" } \endcode See also: \l{RuleError} \section2 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. Params \code { "actions": [ "$ref:RuleAction" ], "name": "String", "o:enabled": "Bool", "o:eventDescriptors": [ "$ref:EventDescriptor" ], "o:executable": "Bool", "o:exitActions": [ "$ref:RuleAction" ], "o:stateEvaluator": "$ref:StateEvaluator", "o:timeDescriptor": "$ref:TimeDescriptor", "ruleId": "Uuid" } \endcode Returns \code { "o:rule": "$ref:Rule", "ruleError": "$ref:RuleError" } \endcode See also: \l{RuleError}, \l{Rule}, \l{RuleAction}, \l{TimeDescriptor}, \l{RuleAction}, \l{EventDescriptor}, \l{StateEvaluator} \section2 Rules.EnableRule Enabled a rule that has previously been disabled.If successful, the notification "Rule.RuleConfigurationChanged" will be emitted. Params \code { "ruleId": "Uuid" } \endcode Returns \code { "ruleError": "$ref:RuleError" } \endcode See also: \l{RuleError} \section2 Rules.ExecuteActions Execute the action list of the rule with the given ruleId. Params \code { "ruleId": "Uuid" } \endcode Returns \code { "ruleError": "$ref:RuleError" } \endcode See also: \l{RuleError} \section2 Rules.ExecuteExitActions Execute the exit action list of the rule with the given ruleId. Params \code { "ruleId": "Uuid" } \endcode Returns \code { "ruleError": "$ref:RuleError" } \endcode See also: \l{RuleError} \section2 Rules.FindRules Find a list of rules containing any of the given parameters. Params \code { "deviceId": "Uuid" } \endcode Returns \code { "ruleIds": [ "Uuid" ] } \endcode \section2 Rules.GetRuleDetails Get details for the rule identified by ruleId Params \code { "ruleId": "Uuid" } \endcode Returns \code { "o:rule": "$ref:Rule", "ruleError": "$ref:RuleError" } \endcode See also: \l{RuleError}, \l{Rule} \section2 Rules.GetRules Get the descriptions of all configured rules. If you need more information about a specific rule use the method Rules.GetRuleDetails. Params \code {} \endcode Returns \code { "ruleDescriptions": [ "$ref:RuleDescription" ] } \endcode See also: \l{RuleDescription} \section2 Rules.RemoveRule Remove a rule Params \code { "ruleId": "Uuid" } \endcode Returns \code { "ruleError": "$ref:RuleError" } \endcode See also: \l{RuleError} \section2 States.GetStateType Get the StateType for the given stateTypeId. Params \code { "stateTypeId": "Uuid" } \endcode Returns \code { "deviceError": "$ref:DeviceError", "o:stateType": "$ref:StateType" } \endcode See also: \l{StateType}, \l{DeviceError} \section2 Tags.AddTag Add a Tag. A Tag must have a deviceId OR a ruleId (call this method twice if you want to attach the same tag to a device 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 (device/rule, appId and tagId) but with a different value will update the tag's value and the TagValueChanged notification will be emitted. Params \code { "tag": "$ref:Tag" } \endcode Returns \code { "tagError": "$ref:TagError" } \endcode See also: \l{TagError}, \l{Tag} \section2 Tags.GetTags Get the Tags matching the given filter. Tags can be filtered by a deviceID, a ruleId, an appId, a tagId or a combination of any (however, combining deviceId and ruleId will return an empty result set). Params \code { "o:appId": "String", "o:deviceId": "Uuid", "o:ruleId": "Uuid", "o:tagId": "String" } \endcode Returns \code { "o:tags": [ "$ref:Tag" ], "tagError": "$ref:TagError" } \endcode See also: \l{TagError}, \l{Tag} \section2 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. Params \code { "tag": "$ref:Tag" } \endcode Returns \code { "tagError": "$ref:TagError" } \endcode See also: \l{TagError}, \l{Tag} \section1 Notifications \section2 Configuration.BasicConfigurationChanged Emitted whenever the basic configuration of this server changes. Params \code { "debugServerEnabled": "Bool", "serverName": "String", "serverTime": "Uint", "serverUuid": "Uuid", "timeZone": "String" } \endcode \section2 Configuration.CloudConfigurationChanged Emitted whenever the cloud configuration is changed. Params \code { "enabled": "Bool" } \endcode \section2 Configuration.LanguageChanged Emitted whenever the language of the server changed. The Plugins, Vendors and DeviceClasses have to be reloaded to get the translated data. Params \code { "language": "String" } \endcode \section2 Configuration.TcpServerConfigurationChanged Emitted whenever the TCP server configuration changes. Params \code { "host": "String", "port": "Uint" } \endcode \section2 Configuration.WebServerConfigurationChanged Emitted whenever the web server configuration changes. Params \code { "host": "String", "port": "Uint" } \endcode \section2 Configuration.WebSocketServerConfigurationChanged Emitted whenever the web socket server configuration changes. Params \code { "host": "String", "port": "Uint" } \endcode \section2 Devices.DeviceAdded Emitted whenever a Device was added. Params \code { "device": "$ref:Device" } \endcode See also: \l{Device} \section2 Devices.DeviceChanged Emitted whenever the params or name of a Device changed (by EditDevice or ReconfigureDevice). Params \code { "device": "$ref:Device" } \endcode See also: \l{Device} \section2 Devices.DeviceRemoved Emitted whenever a Device was removed. Params \code { "deviceId": "Uuid" } \endcode \section2 Devices.StateChanged Emitted whenever a State of a device changes. Params \code { "deviceId": "Uuid", "stateTypeId": "Uuid", "value": "Variant" } \endcode \section2 Events.EventTriggered Emitted whenever an Event is triggered. Params \code { "event": "$ref:Event" } \endcode See also: \l{Event} \section2 JSONRPC.CloudConnectedChanged Emitted whenever the cloud connection status changes. Params \code { "connected": "Bool" } \endcode \section2 JSONRPC.PushButtonAuthFinished Emitted when a push button authentication reaches final state. NOTE: This notification is special. It will only be emitted to connections that did actively request a push button authentication, but also it will be emitted regardless of the notification settings. Params \code { "o:token": "String", "status": "$ref:UserError", "transactionId": "Int" } \endcode See also: \l{UserError} \section2 Logging.LogDatabaseUpdated Emitted whenever the database was updated. The database will be updated when a log entry was deleted. A log entry will be deleted when the corresponding device or a rule will be removed, or when the oldest entry of the database was deleted to keep to database in the size limits. Params \code {} \endcode \section2 Logging.LogEntryAdded Emitted whenever an entry is appended to the logging system. Params \code { "logEntry": "$ref:LogEntry" } \endcode See also: \l{LogEntry} \section2 NetworkManager.NetworkStatusChanged Emitted whenever a status of a NetworkManager changes. Params \code { "status": { "networkingEnabled": "Bool", "state": "$ref:NetworkManagerState", "wirelessNetworkingEnabled": "Bool" } } \endcode See also: \l{NetworkManagerState} \section2 NetworkManager.WiredNetworkDeviceAdded Emitted whenever a new WiredNetworkDevice was added. Params \code { "wiredNetworkDevice": "$ref:WiredNetworkDevice" } \endcode See also: \l{WiredNetworkDevice} \section2 NetworkManager.WiredNetworkDeviceChanged Emitted whenever the given WiredNetworkDevice has changed. Params \code { "wiredNetworkDevice": "$ref:WiredNetworkDevice" } \endcode See also: \l{WiredNetworkDevice} \section2 NetworkManager.WiredNetworkDeviceRemoved Emitted whenever a WiredNetworkDevice was removed. Params \code { "interface": "String" } \endcode \section2 NetworkManager.WirelessNetworkDeviceAdded Emitted whenever a new WirelessNetworkDevice was added. Params \code { "wirelessNetworkDevice": "$ref:WirelessNetworkDevice" } \endcode See also: \l{WirelessNetworkDevice} \section2 NetworkManager.WirelessNetworkDeviceChanged Emitted whenever the given WirelessNetworkDevice has changed. Params \code { "wirelessNetworkDevice": "$ref:WirelessNetworkDevice" } \endcode See also: \l{WirelessNetworkDevice} \section2 NetworkManager.WirelessNetworkDeviceRemoved Emitted whenever a WirelessNetworkDevice was removed. Params \code { "interface": "String" } \endcode \section2 Rules.RuleActiveChanged Emitted whenever the active state of a Rule changed. Params \code { "active": "Bool", "ruleId": "Uuid" } \endcode \section2 Rules.RuleAdded Emitted whenever a Rule was added. Params \code { "rule": "$ref:Rule" } \endcode See also: \l{Rule} \section2 Rules.RuleConfigurationChanged Emitted whenever the configuration of a Rule changed. Params \code { "rule": "$ref:Rule" } \endcode See also: \l{Rule} \section2 Rules.RuleRemoved Emitted whenever a Rule was removed. Params \code { "ruleId": "Uuid" } \endcode \section2 Tags.TagAdded Emitted whenever a tag is added to the system. Params \code { "tag": "$ref:Tag" } \endcode See also: \l{Tag} \section2 Tags.TagRemoved Emitted whenever a tag is removed from the system. Params \code { "tag": "$ref:Tag" } \endcode See also: \l{Tag} \section2 Tags.TagValueChanged Emitted whenever a tag's value is changed in the system. Params \code { "tag": "$ref:Tag" } \endcode See also: \l{Tag} \section1 Full introspect \code { "methods": { "Actions.ExecuteAction": { "description": "Execute a single action.", "params": { "actionTypeId": "Uuid", "deviceId": "Uuid", "o:params": [ "$ref:Param" ] }, "returns": { "deviceError": "$ref:DeviceError" } }, "Actions.GetActionType": { "description": "Get the ActionType for the given ActionTypeId", "params": { "actionTypeId": "Uuid" }, "returns": { "deviceError": "$ref:DeviceError", "o:actionType": { "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "paramTypes": [ "$ref:ParamType" ] } } }, "Configuration.DeleteTcpServerConfiguration": { "description": "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.", "params": { "id": "String" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.DeleteWebServerConfiguration": { "description": "Delete a WebServer interface of the server.", "params": { "id": "String" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.DeleteWebSocketServerConfiguration": { "description": "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.", "params": { "id": "String" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.GetAvailableLanguages": { "description": "Returns a list of locale codes available for the server. i.e. en_US, de_AT", "params": {}, "returns": { "languages": [ "String" ] } }, "Configuration.GetConfigurations": { "description": "Get all configuration parameters of the server.", "params": {}, "returns": { "basicConfiguration": { "debugServerEnabled": "Bool", "language": "String", "serverName": "String", "serverTime": "Uint", "serverUuid": "Uuid", "timeZone": "String" }, "cloud": { "enabled": "Bool" }, "tcpServerConfigurations": [ "$ref:ServerConfiguration" ], "webServerConfigurations": [ "$ref:WebServerConfiguration" ], "webSocketServerConfigurations": [ "$ref:ServerConfiguration" ] } }, "Configuration.GetTimeZones": { "description": "Get the list of available timezones.", "params": {}, "returns": { "timeZones": [ "String" ] } }, "Configuration.SetCloudEnabled": { "description": "Sets whether the cloud connection is enabled or disabled in the settings.", "params": { "enabled": "Bool" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.SetDebugServerEnabled": { "description": "Enable or disable the debug server.", "params": { "enabled": "String" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.SetLanguage": { "description": "Sets the server language to the given language. See also: \"GetAvailableLanguages\"", "params": { "language": "String" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.SetServerName": { "description": "Set the name of the server. Default is nymea.", "params": { "serverName": "String" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.SetTcpServerConfiguration": { "description": "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.", "params": { "configuration": "$ref:ServerConfiguration" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.SetTimeZone": { "description": "Set the time zone of the server. See also: \"GetTimeZones\"", "params": { "timeZone": "String" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.SetWebServerConfiguration": { "description": "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.", "params": { "configuration": "$ref:WebServerConfiguration" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Configuration.SetWebSocketServerConfiguration": { "description": "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.", "params": { "configuration": "$ref:ServerConfiguration" }, "returns": { "configurationError": "$ref:ConfigurationError" } }, "Devices.AddConfiguredDevice": { "description": "Add a configured device with a setupMethod of SetupMethodJustAdd. For devices with a setupMethod different than SetupMethodJustAdd, use PairDevice. Use deviceDescriptorId or deviceParams, depending on the createMethod of the device class. CreateMethodJustAdd takes the parameters you want to have with that device. CreateMethodDiscovery requires the use of a deviceDescriptorId.", "params": { "deviceClassId": "Uuid", "name": "String", "o:deviceDescriptorId": "Uuid", "o:deviceParams": [ "$ref:Param" ] }, "returns": { "deviceError": "$ref:DeviceError", "o:deviceId": "Uuid" } }, "Devices.ConfirmPairing": { "description": "Confirm an ongoing pairing. In case of SetupMethodEnterPin also provide the pin in the params.", "params": { "o:secret": "String", "pairingTransactionId": "Uuid" }, "returns": { "deviceError": "$ref:DeviceError", "o:deviceId": "Uuid" } }, "Devices.EditDevice": { "description": "Edit the name of a device. This method does not change the configuration of the device.", "params": { "deviceId": "Uuid", "name": "String" }, "returns": { "deviceError": "$ref:DeviceError" } }, "Devices.GetActionTypes": { "description": "Get action types for a specified deviceClassId.", "params": { "deviceClassId": "Uuid" }, "returns": { "actionTypes": [ "$ref:ActionType" ] } }, "Devices.GetConfiguredDevices": { "description": "Returns a list of configured devices, optionally filtered by deviceId.", "params": { "o:deviceId": "Uuid" }, "returns": { "devices": [ "$ref:Device" ] } }, "Devices.GetDiscoveredDevices": { "description": "Performs a device discovery and returns the results. This function may take a while to return.", "params": { "deviceClassId": "Uuid", "o:discoveryParams": [ "$ref:Param" ] }, "returns": { "deviceError": "$ref:DeviceError", "o:deviceDescriptors": [ "$ref:DeviceDescriptor" ] } }, "Devices.GetEventTypes": { "description": "Get event types for a specified deviceClassId.", "params": { "deviceClassId": "Uuid" }, "returns": { "eventTypes": [ "$ref:EventType" ] } }, "Devices.GetPluginConfiguration": { "description": "Get a plugin's params.", "params": { "pluginId": "Uuid" }, "returns": { "deviceError": "$ref:DeviceError", "o:configuration": [ "$ref:Param" ] } }, "Devices.GetPlugins": { "description": "Returns a list of loaded plugins.", "params": {}, "returns": { "plugins": [ "$ref:Plugin" ] } }, "Devices.GetStateTypes": { "description": "Get state types for a specified deviceClassId.", "params": { "deviceClassId": "Uuid" }, "returns": { "stateTypes": [ "$ref:StateType" ] } }, "Devices.GetStateValue": { "description": "Get the value of the given device and the given stateType", "params": { "deviceId": "Uuid", "stateTypeId": "Uuid" }, "returns": { "deviceError": "$ref:DeviceError", "o:value": "Variant" } }, "Devices.GetStateValues": { "description": "Get all the state values of the given device.", "params": { "deviceId": "Uuid" }, "returns": { "deviceError": "$ref:DeviceError", "o:values": [ { "stateTypeId": "Uuid", "value": "Variant" } ] } }, "Devices.GetSupportedDevices": { "description": "Returns a list of supported Device classes, optionally filtered by vendorId.", "params": { "o:vendorId": "Uuid" }, "returns": { "deviceClasses": [ "$ref:DeviceClass" ] } }, "Devices.GetSupportedVendors": { "description": "Returns a list of supported Vendors.", "params": {}, "returns": { "vendors": [ "$ref:Vendor" ] } }, "Devices.PairDevice": { "description": "Pair a device. Use this for DeviceClasses with a setupMethod different than SetupMethodJustAdd. Use deviceDescriptorId or deviceParams, depending on the createMethod of the device class. CreateMethodJustAdd takes the parameters you want to have with that device. CreateMethodDiscovery requires the use of a deviceDescriptorId. If success is true, the return values will contain a pairingTransactionId, a displayMessage and the setupMethod. Depending on the setupMethod you should either proceed with AddConfiguredDevice or PairDevice.", "params": { "deviceClassId": "Uuid", "name": "String", "o:deviceDescriptorId": "Uuid", "o:deviceParams": [ "$ref:Param" ] }, "returns": { "deviceError": "$ref:DeviceError", "o:displayMessage": "String", "o:pairingTransactionId": "Uuid", "o:setupMethod": "$ref:SetupMethod" } }, "Devices.ReconfigureDevice": { "description": "Edit the parameter configuration of the device. The device params will be set to the passed parameters and the setup device will be called. If the device is discoverable, you can perform a GetDiscoveredDevices before calling this method and pass the new DeviceDescriptor (rediscover). Only writable parameters can be changed. By default, every Param is writable.", "params": { "deviceId": "Uuid", "o:deviceDescriptorId": "Uuid", "o:deviceParams": [ "$ref:Param" ] }, "returns": { "deviceError": "$ref:DeviceError" } }, "Devices.RemoveConfiguredDevice": { "description": "Remove a device from the system.", "params": { "deviceId": "Uuid", "o:removePolicy": "$ref:RemovePolicy", "o:removePolicyList": [ { "policy": "$ref:RemovePolicy", "ruleId": "Uuid" } ] }, "returns": { "deviceError": "$ref:DeviceError", "o:ruleIds": [ "Uuid" ] } }, "Devices.SetPluginConfiguration": { "description": "Set a plugin's params.", "params": { "configuration": [ "$ref:Param" ], "pluginId": "Uuid" }, "returns": { "deviceError": "$ref:DeviceError" } }, "Events.GetEventType": { "description": "Get the EventType for the given eventTypeId.", "params": { "eventTypeId": "Uuid" }, "returns": { "deviceError": "$ref:DeviceError", "o:eventType": "$ref:EventType" } }, "JSONRPC.Authenticate": { "description": "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.", "params": { "deviceName": "String", "password": "String", "username": "String" }, "returns": { "o:token": "String", "success": "Bool" } }, "JSONRPC.CreateUser": { "description": "Create a new user in the API. Currently this is only allowed to be called once when a new nymea instance is set up. Call Authenticate after this to obtain a device token for this user.", "params": { "password": "String", "username": "String" }, "returns": { "error": "$ref:UserError" } }, "JSONRPC.Hello": { "description": "Upon first connection, nymea will automatically send a welcome message containing information about the setup. If this message is lost for whatever reason (connections with multiple hops might drop this if nymea sends it too early), the exact same message can be retrieved multiple times by calling this Hello method. Note that the contents might change if the system changed its state in the meantime, e.g. initialSetupRequired might turn false if the initial setup has been performed in the meantime.", "params": {}, "returns": { "authenticationRequired": "Bool", "id": "Int", "initialSetupRequired": "Bool", "language": "String", "name": "String", "protocol version": "String", "pushButtonAuthAvailable": "Bool", "server": "String", "uuid": "Uuid", "version": "String" } }, "JSONRPC.Introspect": { "description": "Introspect this API.", "params": {}, "returns": { "methods": "Object", "notifications": "Object", "types": "Object" } }, "JSONRPC.IsCloudConnected": { "description": "Check whether the cloud is currently connected. \"connected\" will be true whenever connectionState equals CloudConnectionStateConnected and is deprecated. Please use the connectionState value instead.", "params": {}, "returns": { "connected": "Bool", "connectionState": "$ref:CloudConnectionState" } }, "JSONRPC.KeepAlive": { "description": "Keep alive a remote connection. The sessionId is the MQTT topic which has been used to establish the session. It will return false if no ongoing session with the given ID can be found.", "params": { "sessionId": "String" }, "returns": { "success": "Bool" } }, "JSONRPC.RemoveToken": { "description": "Revoke access for a given token.", "params": { "tokenId": "Uuid" }, "returns": { "error": "$ref:UserError" } }, "JSONRPC.RequestPushButtonAuth": { "description": "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.", "params": { "deviceName": "String" }, "returns": { "success": "Bool", "transactionId": "Int" } }, "JSONRPC.SetNotificationStatus": { "description": "Enable/Disable notifications for this connections.", "params": { "enabled": "Bool" }, "returns": { "enabled": "Bool" } }, "JSONRPC.SetupCloudConnection": { "description": "Sets up the cloud connection by deploying a certificate and its configuration.", "params": { "certificatePEM": "String", "endpoint": "String", "privateKey": "String", "publicKey": "String", "rootCA": "String" }, "returns": { "success": "Bool" } }, "JSONRPC.SetupRemoteAccess": { "description": "Setup the remote connection by providing AWS token information. This requires the cloud to be connected.", "params": { "idToken": "String", "userId": "String" }, "returns": { "message": "String", "status": "Int" } }, "JSONRPC.Tokens": { "description": "Return a list of TokenInfo objects of all the tokens for the current user.", "params": {}, "returns": { "tokenInfoList": [ "$ref:TokenInfo" ] } }, "JSONRPC.Version": { "description": "Version of this nymea/JSONRPC interface.", "params": {}, "returns": { "protocol version": "String", "version": "String" } }, "Logging.GetLogEntries": { "description": "Get the LogEntries matching the given filter. The result set will contain entries matching all filter rules combined. If multiple options are given for a single filter type, the result set will contain entries matching any of those. The offset starts at the newest entry in the result set. By default all items are returned. Example: If the specified filter returns a total amount of 100 entries:\n- a offset value of 10 would include the oldest 90 entries\n- a offset value of 0 would return all 100 entries\n\nThe offset is particularly useful in combination with the maxCount property and can be used for pagination. E.g. A result set of 10000 entries can be fetched in batches of 1000 entries by fetching\n1) offset 0, maxCount 1000: Entries 0 to 9999\n2) offset 10000, maxCount 1000: Entries 10000 - 19999\n3) offset 20000, maxCount 1000: Entries 20000 - 29999\n...", "params": { "o:deviceIds": [ "Uuid" ], "o:eventTypes": [ "$ref:LoggingEventType" ], "o:limit": "Int", "o:loggingLevels": [ "$ref:LoggingLevel" ], "o:loggingSources": [ "$ref:LoggingSource" ], "o:offset": "Int", "o:timeFilters": [ { "o:endDate": "Int", "o:startDate": "Int" } ], "o:typeIds": [ "Uuid" ], "o:values": [ "Variant" ] }, "returns": { "count": "Int", "loggingError": "$ref:LoggingError", "o:logEntries": [ "$ref:LogEntry" ], "offset": "Int" } }, "NetworkManager.ConnectWifiNetwork": { "description": "Connect to the wifi network with the given ssid and password.", "params": { "interface": "String", "o:password": "String", "ssid": "String" }, "returns": { "networkManagerError": "$ref:NetworkManagerError" } }, "NetworkManager.DisconnectInterface": { "description": "Disconnect the given network interface. The interface will remain disconnected until the user connect it again.", "params": { "interface": "String" }, "returns": { "networkManagerError": "$ref:NetworkManagerError" } }, "NetworkManager.EnableNetworking": { "description": "Enable or disable networking in the NetworkManager.", "params": { "enable": "Bool" }, "returns": { "networkManagerError": "$ref:NetworkManagerError" } }, "NetworkManager.EnableWirelessNetworking": { "description": "Enable or disable wireless networking in the NetworkManager.", "params": { "enable": "Bool" }, "returns": { "networkManagerError": "$ref:NetworkManagerError" } }, "NetworkManager.GetNetworkDevices": { "description": "Get the list of current network devices.", "params": {}, "returns": { "networkManagerError": "$ref:NetworkManagerError", "wiredNetworkDevices": [ "$ref:WiredNetworkDevice" ], "wirelessNetworkDevices": [ "$ref:WirelessNetworkDevice" ] } }, "NetworkManager.GetNetworkStatus": { "description": "Get the current network manager status.", "params": {}, "returns": { "networkManagerError": "$ref:NetworkManagerError", "o:status": { "networkingEnabled": "Bool", "state": "$ref:NetworkManagerState", "wirelessNetworkingEnabled": "Bool" } } }, "NetworkManager.GetWirelessAccessPoints": { "description": "Get the current list of wireless network access points for the given interface. The interface has to be a WirelessNetworkDevice.", "params": { "interface": "String" }, "returns": { "networkManagerError": "$ref:NetworkManagerError", "o:wirelessAccessPoints": [ "$ref:WirelessAccessPoint" ] } }, "NetworkManager.ScanWifiNetworks": { "description": "Start a wifi scan for searching new networks.", "params": { "interface": "String" }, "returns": { "networkManagerError": "$ref:NetworkManagerError" } }, "Rules.AddRule": { "description": "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 the eventDescriptor and stateEvaluators.", "params": { "actions": [ "$ref:RuleAction" ], "name": "String", "o:enabled": "Bool", "o:eventDescriptors": [ "$ref:EventDescriptor" ], "o:executable": "Bool", "o:exitActions": [ "$ref:RuleAction" ], "o:stateEvaluator": "$ref:StateEvaluator", "o:timeDescriptor": "$ref:TimeDescriptor" }, "returns": { "o:ruleId": "Uuid", "ruleError": "$ref:RuleError" } }, "Rules.DisableRule": { "description": "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.", "params": { "ruleId": "Uuid" }, "returns": { "ruleError": "$ref:RuleError" } }, "Rules.EditRule": { "description": "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.", "params": { "actions": [ "$ref:RuleAction" ], "name": "String", "o:enabled": "Bool", "o:eventDescriptors": [ "$ref:EventDescriptor" ], "o:executable": "Bool", "o:exitActions": [ "$ref:RuleAction" ], "o:stateEvaluator": "$ref:StateEvaluator", "o:timeDescriptor": "$ref:TimeDescriptor", "ruleId": "Uuid" }, "returns": { "o:rule": "$ref:Rule", "ruleError": "$ref:RuleError" } }, "Rules.EnableRule": { "description": "Enabled a rule that has previously been disabled.If successful, the notification \"Rule.RuleConfigurationChanged\" will be emitted.", "params": { "ruleId": "Uuid" }, "returns": { "ruleError": "$ref:RuleError" } }, "Rules.ExecuteActions": { "description": "Execute the action list of the rule with the given ruleId.", "params": { "ruleId": "Uuid" }, "returns": { "ruleError": "$ref:RuleError" } }, "Rules.ExecuteExitActions": { "description": "Execute the exit action list of the rule with the given ruleId.", "params": { "ruleId": "Uuid" }, "returns": { "ruleError": "$ref:RuleError" } }, "Rules.FindRules": { "description": "Find a list of rules containing any of the given parameters.", "params": { "deviceId": "Uuid" }, "returns": { "ruleIds": [ "Uuid" ] } }, "Rules.GetRuleDetails": { "description": "Get details for the rule identified by ruleId", "params": { "ruleId": "Uuid" }, "returns": { "o:rule": "$ref:Rule", "ruleError": "$ref:RuleError" } }, "Rules.GetRules": { "description": "Get the descriptions of all configured rules. If you need more information about a specific rule use the method Rules.GetRuleDetails.", "params": {}, "returns": { "ruleDescriptions": [ "$ref:RuleDescription" ] } }, "Rules.RemoveRule": { "description": "Remove a rule", "params": { "ruleId": "Uuid" }, "returns": { "ruleError": "$ref:RuleError" } }, "States.GetStateType": { "description": "Get the StateType for the given stateTypeId.", "params": { "stateTypeId": "Uuid" }, "returns": { "deviceError": "$ref:DeviceError", "o:stateType": "$ref:StateType" } }, "Tags.AddTag": { "description": "Add a Tag. A Tag must have a deviceId OR a ruleId (call this method twice if you want to attach the same tag to a device 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 (device/rule, appId and tagId) but with a different value will update the tag's value and the TagValueChanged notification will be emitted.", "params": { "tag": "$ref:Tag" }, "returns": { "tagError": "$ref:TagError" } }, "Tags.GetTags": { "description": "Get the Tags matching the given filter. Tags can be filtered by a deviceID, a ruleId, an appId, a tagId or a combination of any (however, combining deviceId and ruleId will return an empty result set).", "params": { "o:appId": "String", "o:deviceId": "Uuid", "o:ruleId": "Uuid", "o:tagId": "String" }, "returns": { "o:tags": [ "$ref:Tag" ], "tagError": "$ref:TagError" } }, "Tags.RemoveTag": { "description": "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.", "params": { "tag": "$ref:Tag" }, "returns": { "tagError": "$ref:TagError" } } }, "notifications": { "Configuration.BasicConfigurationChanged": { "description": "Emitted whenever the basic configuration of this server changes.", "params": { "debugServerEnabled": "Bool", "serverName": "String", "serverTime": "Uint", "serverUuid": "Uuid", "timeZone": "String" } }, "Configuration.CloudConfigurationChanged": { "description": "Emitted whenever the cloud configuration is changed.", "params": { "enabled": "Bool" } }, "Configuration.LanguageChanged": { "description": "Emitted whenever the language of the server changed. The Plugins, Vendors and DeviceClasses have to be reloaded to get the translated data.", "params": { "language": "String" } }, "Configuration.TcpServerConfigurationChanged": { "description": "Emitted whenever the TCP server configuration changes.", "params": { "host": "String", "port": "Uint" } }, "Configuration.WebServerConfigurationChanged": { "description": "Emitted whenever the web server configuration changes.", "params": { "host": "String", "port": "Uint" } }, "Configuration.WebSocketServerConfigurationChanged": { "description": "Emitted whenever the web socket server configuration changes.", "params": { "host": "String", "port": "Uint" } }, "Devices.DeviceAdded": { "description": "Emitted whenever a Device was added.", "params": { "device": "$ref:Device" } }, "Devices.DeviceChanged": { "description": "Emitted whenever the params or name of a Device changed (by EditDevice or ReconfigureDevice).", "params": { "device": "$ref:Device" } }, "Devices.DeviceRemoved": { "description": "Emitted whenever a Device was removed.", "params": { "deviceId": "Uuid" } }, "Devices.StateChanged": { "description": "Emitted whenever a State of a device changes.", "params": { "deviceId": "Uuid", "stateTypeId": "Uuid", "value": "Variant" } }, "Events.EventTriggered": { "description": "Emitted whenever an Event is triggered.", "params": { "event": "$ref:Event" } }, "JSONRPC.CloudConnectedChanged": { "description": "Emitted whenever the cloud connection status changes.", "params": { "connected": "Bool" } }, "JSONRPC.PushButtonAuthFinished": { "description": "Emitted when a push button authentication reaches final state. NOTE: This notification is special. It will only be emitted to connections that did actively request a push button authentication, but also it will be emitted regardless of the notification settings. ", "params": { "o:token": "String", "status": "$ref:UserError", "transactionId": "Int" } }, "Logging.LogDatabaseUpdated": { "description": "Emitted whenever the database was updated. The database will be updated when a log entry was deleted. A log entry will be deleted when the corresponding device or a rule will be removed, or when the oldest entry of the database was deleted to keep to database in the size limits.", "params": {} }, "Logging.LogEntryAdded": { "description": "Emitted whenever an entry is appended to the logging system. ", "params": { "logEntry": "$ref:LogEntry" } }, "NetworkManager.NetworkStatusChanged": { "description": "Emitted whenever a status of a NetworkManager changes.", "params": { "status": { "networkingEnabled": "Bool", "state": "$ref:NetworkManagerState", "wirelessNetworkingEnabled": "Bool" } } }, "NetworkManager.WiredNetworkDeviceAdded": { "description": "Emitted whenever a new WiredNetworkDevice was added.", "params": { "wiredNetworkDevice": "$ref:WiredNetworkDevice" } }, "NetworkManager.WiredNetworkDeviceChanged": { "description": "Emitted whenever the given WiredNetworkDevice has changed.", "params": { "wiredNetworkDevice": "$ref:WiredNetworkDevice" } }, "NetworkManager.WiredNetworkDeviceRemoved": { "description": "Emitted whenever a WiredNetworkDevice was removed.", "params": { "interface": "String" } }, "NetworkManager.WirelessNetworkDeviceAdded": { "description": "Emitted whenever a new WirelessNetworkDevice was added.", "params": { "wirelessNetworkDevice": "$ref:WirelessNetworkDevice" } }, "NetworkManager.WirelessNetworkDeviceChanged": { "description": "Emitted whenever the given WirelessNetworkDevice has changed.", "params": { "wirelessNetworkDevice": "$ref:WirelessNetworkDevice" } }, "NetworkManager.WirelessNetworkDeviceRemoved": { "description": "Emitted whenever a WirelessNetworkDevice was removed.", "params": { "interface": "String" } }, "Rules.RuleActiveChanged": { "description": "Emitted whenever the active state of a Rule changed.", "params": { "active": "Bool", "ruleId": "Uuid" } }, "Rules.RuleAdded": { "description": "Emitted whenever a Rule was added.", "params": { "rule": "$ref:Rule" } }, "Rules.RuleConfigurationChanged": { "description": "Emitted whenever the configuration of a Rule changed.", "params": { "rule": "$ref:Rule" } }, "Rules.RuleRemoved": { "description": "Emitted whenever a Rule was removed.", "params": { "ruleId": "Uuid" } }, "Tags.TagAdded": { "description": "Emitted whenever a tag is added to the system. ", "params": { "tag": "$ref:Tag" } }, "Tags.TagRemoved": { "description": "Emitted whenever a tag is removed from the system. ", "params": { "tag": "$ref:Tag" } }, "Tags.TagValueChanged": { "description": "Emitted whenever a tag's value is changed in the system. ", "params": { "tag": "$ref:Tag" } } }, "types": { "Action": { "actionTypeId": "Uuid", "deviceId": "Uuid", "o:params": [ "$ref:Param" ] }, "ActionType": { "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "paramTypes": [ "$ref:ParamType" ] }, "BasicType": [ "Uuid", "String", "Int", "Uint", "Double", "Bool", "Variant", "Color", "Time", "Object" ], "CalendarItem": { "duration": "Uint", "o:datetime": "Uint", "o:repeating": "$ref:RepeatingOption", "o:startTime": "Time" }, "CloudConnectionState": [ "CloudConnectionStateDisabled", "CloudConnectionStateUnconfigured", "CloudConnectionStateConnecting", "CloudConnectionStateConnected" ], "ConfigurationError": [ "ConfigurationErrorNoError", "ConfigurationErrorInvalidTimeZone", "ConfigurationErrorInvalidStationName", "ConfigurationErrorInvalidId", "ConfigurationErrorInvalidPort", "ConfigurationErrorInvalidHostAddress", "ConfigurationErrorBluetoothHardwareNotAvailable", "ConfigurationErrorInvalidCertificate" ], "CreateMethod": [ "CreateMethodUser", "CreateMethodAuto", "CreateMethodDiscovery" ], "Device": { "deviceClassId": "Uuid", "id": "Uuid", "name": "String", "o:parentId": "Uuid", "params": [ "$ref:Param" ], "setupComplete": "Bool", "states": [ { "stateTypeId": "Uuid", "value": "Variant" } ] }, "DeviceClass": { "actionTypes": [ "$ref:ActionType" ], "createMethods": [ "$ref:CreateMethod" ], "discoveryParamTypes": [ "$ref:ParamType" ], "displayName": "String", "eventTypes": [ "$ref:EventType" ], "id": "Uuid", "interfaces": [ "String" ], "name": "String", "paramTypes": [ "$ref:ParamType" ], "pluginId": "Uuid", "setupMethod": "$ref:SetupMethod", "stateTypes": [ "$ref:StateType" ], "vendorId": "Uuid" }, "DeviceDescriptor": { "description": "String", "id": "Uuid", "title": "String" }, "DeviceError": [ "DeviceErrorNoError", "DeviceErrorPluginNotFound", "DeviceErrorVendorNotFound", "DeviceErrorDeviceNotFound", "DeviceErrorDeviceClassNotFound", "DeviceErrorActionTypeNotFound", "DeviceErrorStateTypeNotFound", "DeviceErrorEventTypeNotFound", "DeviceErrorDeviceDescriptorNotFound", "DeviceErrorMissingParameter", "DeviceErrorInvalidParameter", "DeviceErrorSetupFailed", "DeviceErrorDuplicateUuid", "DeviceErrorCreationMethodNotSupported", "DeviceErrorSetupMethodNotSupported", "DeviceErrorHardwareNotAvailable", "DeviceErrorHardwareFailure", "DeviceErrorAuthentificationFailure", "DeviceErrorAsync", "DeviceErrorDeviceInUse", "DeviceErrorDeviceInRule", "DeviceErrorDeviceIsChild", "DeviceErrorPairingTransactionIdNotFound", "DeviceErrorParameterNotWritable" ], "Event": { "deviceId": "Uuid", "eventTypeId": "Uuid", "o:params": [ "$ref:Param" ] }, "EventDescriptor": { "o:deviceId": "Uuid", "o:eventTypeId": "Uuid", "o:interface": "String", "o:interfaceEvent": "String", "o:paramDescriptors": [ "$ref:ParamDescriptor" ] }, "EventType": { "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "paramTypes": [ "$ref:ParamType" ] }, "InputType": [ "InputTypeNone", "InputTypeTextLine", "InputTypeTextArea", "InputTypePassword", "InputTypeSearch", "InputTypeMail", "InputTypeIPv4Address", "InputTypeIPv6Address", "InputTypeUrl", "InputTypeMacAddress" ], "LogEntry": { "loggingLevel": "$ref:LoggingLevel", "o:active": "Bool", "o:deviceId": "Uuid", "o:errorCode": "String", "o:eventType": "$ref:LoggingEventType", "o:typeId": "Uuid", "o:value": "String", "source": "$ref:LoggingSource", "timestamp": "Int" }, "LoggingError": [ "LoggingErrorNoError", "LoggingErrorLogEntryNotFound", "LoggingErrorInvalidFilterParameter" ], "LoggingEventType": [ "LoggingEventTypeTrigger", "LoggingEventTypeActiveChange", "LoggingEventTypeEnabledChange", "LoggingEventTypeActionsExecuted", "LoggingEventTypeExitActionsExecuted" ], "LoggingLevel": [ "LoggingLevelInfo", "LoggingLevelAlert" ], "LoggingSource": [ "LoggingSourceSystem", "LoggingSourceEvents", "LoggingSourceActions", "LoggingSourceStates", "LoggingSourceRules" ], "NetworkDeviceState": [ "NetworkDeviceStateUnknown", "NetworkDeviceStateUnmanaged", "NetworkDeviceStateUnavailable", "NetworkDeviceStateDisconnected", "NetworkDeviceStatePrepare", "NetworkDeviceStateConfig", "NetworkDeviceStateNeedAuth", "NetworkDeviceStateIpConfig", "NetworkDeviceStateIpCheck", "NetworkDeviceStateSecondaries", "NetworkDeviceStateActivated", "NetworkDeviceStateDeactivating", "NetworkDeviceStateFailed" ], "NetworkManagerError": [ "NetworkManagerErrorNoError", "NetworkManagerErrorUnknownError", "NetworkManagerErrorWirelessNotAvailable", "NetworkManagerErrorAccessPointNotFound", "NetworkManagerErrorNetworkInterfaceNotFound", "NetworkManagerErrorInvalidNetworkDeviceType", "NetworkManagerErrorWirelessNetworkingDisabled", "NetworkManagerErrorWirelessConnectionFailed", "NetworkManagerErrorNetworkingDisabled", "NetworkManagerErrorNetworkManagerNotAvailable" ], "NetworkManagerState": [ "NetworkManagerStateUnknown", "NetworkManagerStateAsleep", "NetworkManagerStateDisconnected", "NetworkManagerStateDisconnecting", "NetworkManagerStateConnecting", "NetworkManagerStateConnectedLocal", "NetworkManagerStateConnectedSite", "NetworkManagerStateConnectedGlobal" ], "Param": { "paramTypeId": "Uuid", "value": "$ref:BasicType" }, "ParamDescriptor": { "o:paramName": "Uuid", "o:paramTypeId": "Uuid", "operator": "$ref:ValueOperator", "value": "$ref:BasicType" }, "ParamType": { "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "o:allowedValues": [ "Variant" ], "o:defaultValue": "Variant", "o:inputType": "$ref:InputType", "o:maxValue": "Variant", "o:minValue": "Variant", "o:readOnly": "Bool", "o:unit": "$ref:Unit", "type": "$ref:BasicType" }, "Plugin": { "displayName": "String", "id": "Uuid", "name": "String", "paramTypes": [ "$ref:ParamType" ] }, "RemovePolicy": [ "RemovePolicyCascade", "RemovePolicyUpdate" ], "RepeatingMode": [ "RepeatingModeNone", "RepeatingModeHourly", "RepeatingModeDaily", "RepeatingModeWeekly", "RepeatingModeMonthly", "RepeatingModeYearly" ], "RepeatingOption": { "mode": "$ref:RepeatingMode", "o:monthDays": [ "Int" ], "o:weekDays": [ "Int" ] }, "Rule": { "actions": [ "$ref:RuleAction" ], "active": "Bool", "enabled": "Bool", "eventDescriptors": [ "$ref:EventDescriptor" ], "executable": "Bool", "exitActions": [ "$ref:RuleAction" ], "id": "Uuid", "name": "String", "stateEvaluator": "$ref:StateEvaluator", "timeDescriptor": "$ref:TimeDescriptor" }, "RuleAction": { "o:actionTypeId": "Uuid", "o:deviceId": "Uuid", "o:interface": "String", "o:interfaceAction": "String", "o:ruleActionParams": [ "$ref:RuleActionParam" ] }, "RuleActionParam": { "o:eventParamTypeId": "Uuid", "o:eventTypeId": "Uuid", "o:paramName": "String", "o:paramTypeId": "Uuid", "o:value": "$ref:BasicType" }, "RuleDescription": { "active": "Bool", "enabled": "Bool", "executable": "Bool", "id": "Uuid", "name": "String" }, "RuleError": [ "RuleErrorNoError", "RuleErrorInvalidRuleId", "RuleErrorRuleNotFound", "RuleErrorDeviceNotFound", "RuleErrorEventTypeNotFound", "RuleErrorStateTypeNotFound", "RuleErrorActionTypeNotFound", "RuleErrorInvalidParameter", "RuleErrorInvalidRuleFormat", "RuleErrorMissingParameter", "RuleErrorInvalidRuleActionParameter", "RuleErrorInvalidStateEvaluatorValue", "RuleErrorTypesNotMatching", "RuleErrorNotExecutable", "RuleErrorInvalidTimeDescriptor", "RuleErrorInvalidRepeatingOption", "RuleErrorInvalidCalendarItem", "RuleErrorInvalidTimeEventItem", "RuleErrorContainsEventBasesAction", "RuleErrorNoExitActions", "RuleErrorInterfaceNotFound" ], "ServerConfiguration": { "address": "String", "authenticationEnabled": "Bool", "id": "String", "port": "Uint", "sslEnabled": "Bool" }, "SetupMethod": [ "SetupMethodJustAdd", "SetupMethodDisplayPin", "SetupMethodEnterPin", "SetupMethodPushButton" ], "State": { "deviceId": "Uuid", "stateTypeId": "Uuid", "value": "Variant" }, "StateDescriptor": { "o:deviceId": "Uuid", "o:interface": "String", "o:interfaceState": "String", "o:stateTypeId": "Uuid", "operator": "$ref:ValueOperator", "value": "Variant" }, "StateEvaluator": { "o:childEvaluators": [ "$ref:StateEvaluator" ], "o:operator": "$ref:StateOperator", "o:stateDescriptor": "$ref:StateDescriptor" }, "StateOperator": [ "StateOperatorAnd", "StateOperatorOr" ], "StateType": { "defaultValue": "Variant", "displayName": "String", "id": "Uuid", "index": "Int", "name": "String", "o:maxValue": "Variant", "o:minValue": "Variant", "o:possibleValues": [ "Variant" ], "o:unit": "$ref:Unit", "type": "$ref:BasicType" }, "Tag": { "appId": "String", "o:deviceId": "Uuid", "o:ruleId": "Uuid", "o:value": "String", "tagId": "String" }, "TagError": [ "TagErrorNoError", "TagErrorDeviceNotFound", "TagErrorRuleNotFound", "TagErrorTagNotFound" ], "TimeDescriptor": { "o:calendarItems": [ "$ref:CalendarItem" ], "o:timeEventItems": [ "$ref:TimeEventItem" ] }, "TimeEventItem": { "o:datetime": "Uint", "o:repeating": "$ref:RepeatingOption", "o:time": "Time" }, "TokenInfo": { "creationTime": "Uint", "deviceName": "String", "id": "Uuid", "userName": "String" }, "Unit": [ "UnitNone", "UnitSeconds", "UnitMinutes", "UnitHours", "UnitUnixTime", "UnitMeterPerSecond", "UnitKiloMeterPerHour", "UnitDegree", "UnitRadiant", "UnitDegreeCelsius", "UnitDegreeKelvin", "UnitMired", "UnitMilliBar", "UnitBar", "UnitPascal", "UnitHectoPascal", "UnitAtmosphere", "UnitLumen", "UnitLux", "UnitCandela", "UnitMilliMeter", "UnitCentiMeter", "UnitMeter", "UnitKiloMeter", "UnitGram", "UnitKiloGram", "UnitDezibel", "UnitBpm", "UnitKiloByte", "UnitMegaByte", "UnitGigaByte", "UnitTeraByte", "UnitMilliWatt", "UnitWatt", "UnitKiloWatt", "UnitKiloWattHour", "UnitEuroPerMegaWattHour", "UnitEuroCentPerKiloWattHour", "UnitPercentage", "UnitPartsPerMillion", "UnitEuro", "UnitDollar", "UnitHerz", "UnitAmpere", "UnitMilliAmpere", "UnitVolt", "UnitMilliVolt", "UnitVoltAmpere", "UnitVoltAmpereReactive", "UnitAmpereHour", "UnitMicroSiemensPerCentimeter", "UnitDuration" ], "UserError": [ "UserErrorNoError", "UserErrorBackendError", "UserErrorInvalidUserId", "UserErrorDuplicateUserId", "UserErrorBadPassword", "UserErrorTokenNotFound", "UserErrorPermissionDenied" ], "ValueOperator": [ "ValueOperatorEquals", "ValueOperatorNotEquals", "ValueOperatorLess", "ValueOperatorGreater", "ValueOperatorLessOrEqual", "ValueOperatorGreaterOrEqual" ], "Vendor": { "displayName": "String", "id": "Uuid", "name": "String" }, "WebServerConfiguration": { "address": "String", "authenticationEnabled": "Bool", "id": "String", "port": "Uint", "sslEnabled": "Bool" }, "WiredNetworkDevice": { "bitRate": "String", "interface": "String", "macAddress": "String", "pluggedIn": "Bool", "state": "$ref:NetworkDeviceState" }, "WirelessAccessPoint": { "frequency": "Double", "macAddress": "String", "protected": "Bool", "signalStrength": "Int", "ssid": "String" }, "WirelessNetworkDevice": { "bitRate": "String", "interface": "String", "macAddress": "String", "o:currentAccessPoint": "$ref:WirelessAccessPoint", "state": "$ref:NetworkDeviceState" } } } \endcode */