{
    "name": "GenericThings",
    "displayName": "Generic Things",
    "id": "b3188696-2585-4806-bf98-30ab576ce5c8",
    "vendors": [
        {
            "name": "nymea",
            "displayName": "nymea",
            "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6",
            "thingClasses": [
                {
                    "id": "f5c02d35-b06e-4950-8238-847d50cabfdf",
                    "name": "generic",
                    "displayName": "Generic thing",
                    "createMethods": ["user"],
                    "stateTypes": [
                        {
                            "id": "f477e227-0d2d-4d88-a545-7dedf36266d5",
                            "name": "stringState",
                            "displayName": "String state",
                            "displayNameEvent": "String state changed",
                            "displayNameAction": "Set string state",
                            "type": "QString",
                            "defaultValue": "",
                            "writable": true
                        },
                        {
                            "id": "3cf5eb01-dae8-49cd-8c5f-b0224be0044f",
                            "name": "digitalInput",
                            "displayName": "Digital input",
                            "displayNameEvent": "Digital input changed",
                            "displayNameAction": "Set digital input",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        },
                        {
                            "id": "605b4d8e-71a7-441e-900a-e07c305acd93",
                            "name": "digitalOutput",
                            "displayName": "Digital output",
                            "displayNameEvent": "Digital output changed",
                            "displayNameAction": "Set digital output",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalOutput"
                        },
                        {
                            "id": "810fcd3c-7854-4bb1-82f6-1403ba54875e",
                            "name": "analogInput",
                            "displayName": "Analog input",
                            "displayNameEvent": "Analog input changed",
                            "displayNameAction": "Set analog input",
                            "type": "double",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 1,
                            "ioType": "analogInput",
                            "writable": true
                        },
                        {
                            "id": "de8ec1b1-8026-4fd8-aefb-dedc07616aa4",
                            "name": "analogOutput",
                            "displayName": "Analog output",
                            "displayNameEvent": "Analog output changed",
                            "displayNameAction": "Set analog output",
                            "type": "double",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 1,
                            "ioType": "analogOutput",
                            "writable": true
                        }
                    ]
                },
                {
                    "id": "9e69585f-90ba-44e4-ad90-5b4bffbe345a",
                    "name": "awning",
                    "displayName": "Generic awning",
                    "createMethods": ["user"],
                    "interfaces": ["awning"],
                    "stateTypes": [
                        {
                            "id": "4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4",
                            "name": "openingOutput",
                            "displayName": "Opening output",
                            "displayNameEvent": "Opening output changed",
                            "displayNameAction": "Set opening output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "59bfd575-709f-4e43-9726-de26e6d4ca8b",
                            "name": "closingOutput",
                            "displayName": "Closing output",
                            "displayNameEvent": "Closing output changed",
                            "displayNameAction": "Set closing output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "ff6f2565-2a2e-4d34-b10f-d3f73b676399",
                            "name": "status",
                            "displayName": "Status",
                            "displayNameEvent": "Status changed",
                            "type": "QString",
                            "possibleValues": [
                                "Opening",
                                "Stopped",
                                "Closing"
                            ],
                            "defaultValue": "Stopped"
                        }
                    ],
                    "actionTypes": [
                        {
                            "id": "979e9c51-5a93-4635-85e3-01874306b229",
                            "name": "open",
                            "displayName": "Open"
                        },
                        {
                            "id": "555cafe4-bd12-42c6-bab1-8cd59af6468e",
                            "name": "stop",
                            "displayName": "Stop"
                        },
                        {
                            "id": "53b5ba77-9a34-4cd6-ad24-fb01fc465f98",
                            "name": "close",
                            "displayName": "Close"
                        }
                    ]
                },
                {
                    "id": "17ee3657-6ad8-4ae2-8959-3cf66cec8d13",
                    "name": "blind",
                    "displayName": "Generic blind",
                    "createMethods": ["user"],
                    "interfaces": ["blind"],
                    "stateTypes": [
                        {
                            "id": "b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b",
                            "name": "openingOutput",
                            "displayName": "Opening output",
                            "displayNameEvent": "Opening output changed",
                            "displayNameAction": "Set opening output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "9b673430-572d-4a9c-85d3-dafadbe541cd",
                            "name": "closingOutput",
                            "displayName": "Closing output",
                            "displayNameEvent": "Closing output changed",
                            "displayNameAction": "Set closing output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "5fdec1e0-51f6-48b9-b743-ba572504b2c1",
                            "name": "status",
                            "displayName": "Status",
                            "displayNameEvent": "Status changed",
                            "type": "QString",
                            "possibleValues": [
                                "Opening",
                                "Stopped",
                                "Closing"
                            ],
                            "defaultValue": "Stopped"
                        }
                    ],
                    "actionTypes": [
                        {
                            "id": "120dc265-dbbb-4f19-9d31-c372c23479c0",
                            "name": "open",
                            "displayName": "Open"
                        },
                        {
                            "id": "1a924c9a-5dcb-4b1c-8fd6-ab101098e007",
                            "name": "stop",
                            "displayName": "Stop"
                        },
                        {
                            "id": "86e9cf21-7487-47c4-b4be-4a940d7235fb",
                            "name": "close",
                            "displayName": "Close"
                        }
                    ]
                },
                {
                    "id": "40aa9f3c-a23c-4f7f-8786-fcf3554f3e19",
                    "name": "extendedBlind",
                    "displayName": "Generic blind with position control",
                    "createMethods": ["user"],
                    "interfaces": ["extendedblind"],
                    "settingsTypes": [
                        {
                            "id": "27a95b8d-7f97-441b-a3be-0646c517cb06",
                            "name": "closingDuration",
                            "displayName": "Closing duration [ms]",
                            "type": "uint",
                            "minValue": 1000,
                            "defaultValue": 5000
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "e559f077-e904-4bbc-8ec3-344b814d2eab",
                            "name": "openingOutput",
                            "displayName": "Opening output",
                            "displayNameEvent": "Opening output changed",
                            "displayNameAction": "Set opening output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "1a4a5839-a30d-4239-a124-63bfdc74a8f6",
                            "name": "closingOutput",
                            "displayName": "Closing output",
                            "displayNameEvent": "Closing output changed",
                            "displayNameAction": "Set closing output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "c2354d7e-198a-43ae-aa5f-c6710010c7e1",
                            "name": "status",
                            "displayName": "Status",
                            "displayNameEvent": "Status changed",
                            "type": "QString",
                            "possibleValues": [
                                "Opening",
                                "Stopped",
                                "Closing"
                            ],
                           "defaultValue": "Stopped"
                        },
                        {
                            "id": "941d1e1f-8dd7-4493-812f-6cefefd88c2e",
                            "name": "moving",
                            "type": "bool",
                            "displayName": "Moving",
                            "displayNameEvent": "Moving changed",
                            "defaultValue": false
                        },
                        {
                            "id": "181df603-d45f-4d3d-a358-97aa3e4ac0bd",
                            "name": "percentage",
                            "displayName": "Percentage",
                            "displayNameEvent": "Percentage changed",
                            "displayNameAction": "Set percentage",
                            "type": "int",
                            "minValue": 0,
                            "maxValue": 100,
                            "defaultValue": 0,
                            "unit": "Percentage",
                            "writable": true
                        }
                    ],
                    "actionTypes": [
                       {
                           "id": "5a7599fa-8351-4ed6-9b98-fa2f3be54304",
                           "name": "open",
                           "displayName": "Open"
                       },
                       {
                           "id": "ab67e4bf-c7b6-489b-9b49-3e0a1c7d33ca",
                           "name": "stop",
                           "displayName": "Stop"
                       },
                       {
                           "id": "97d6351d-7440-47f3-bdba-a31bb15368ac",
                           "name": "close",
                           "displayName": "Close"
                        }
                    ]
                },
                {
                    "id": "e6b96ced-8d50-45da-91c8-792d364d2795",
                    "name": "venetianBlind",
                    "displayName": "Venetian blind",
                    "createMethods": ["user"],
                    "interfaces": ["venetianblind"],
                    "settingsTypes": [
                        {
                            "id": "4c0bf07d-aaab-4f67-af65-00ceaefbaa84",
                            "name": "closingDuration",
                            "displayName": "Closing duration [ms]",
                            "minValue": 1000,
                            "type": "uint",
                            "defaultValue": 5000
                        },
                        {
                            "id": "6c8340bf-7fd3-43e3-a75b-dfa2f6426e11",
                            "name": "angleTime",
                            "displayName": "Angle end to end time [ms]",
                            "minValue": 1,
                            "type": "uint",
                            "defaultValue": 1000
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "6041dacf-5303-4dc0-ba3c-7ecaa438f2dd",
                            "name": "openingOutput",
                            "displayName": "Opening output",
                            "displayNameEvent": "Opening output changed",
                            "displayNameAction": "Set opening output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "84dd2fa1-85fe-47f3-9e32-e6083432d39c",
                            "name": "closingOutput",
                            "displayName": "Closing output",
                            "displayNameEvent": "Closing output changed",
                            "displayNameAction": "Set closing output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "6fb7826e-b6d8-42f8-b712-719496046436",
                            "name": "status",
                            "displayName": "Status",
                            "displayNameEvent": "Status changed",
                            "type": "QString",
                            "possibleValues": [
                                "Opening",
                                "Stopped",
                                "Closing"
                            ],
                           "defaultValue": "Stopped"
                        },
                        {
                            "id": "6234c07e-4200-4f2c-8cbd-bff24c38c243",
                            "name": "moving",
                            "type": "bool",
                            "displayName": "Moving",
                            "displayNameEvent": "Moving changed",
                            "defaultValue": false
                        },
                        {
                            "id": "33dc8019-336d-4d50-8d60-dff8508338ca",
                            "name": "percentage",
                            "displayName": "Percentage",
                            "displayNameEvent": "Percentage changed",
                            "displayNameAction": "Set percentage",
                            "type": "int",
                            "minValue": 0,
                            "maxValue": 100,
                            "defaultValue": 0,
                            "unit": "Percentage",
                            "writable": true
                        },
                        {
                            "id": "fcb700c4-5da8-4385-85b0-6616e807974e",
                            "name": "angle",
                            "displayName": "Angle",
                            "displayNameEvent": "Angle changed",
                            "displayNameAction": "Set angle",
                            "type": "int",
                            "unit": "Degree",
                            "minValue": -90,
                            "maxValue": 90,
                            "defaultValue": 0,
                            "writable": true
                        }
                     ],
                     "actionTypes": [
                        {
                            "id": "3e728e50-3d45-4035-b215-1e604cf3159b",
                            "name": "open",
                            "displayName": "Open"
                        },
                        {
                            "id": "6e3eeb5d-d7ed-4175-9795-e76451e0a00b",
                            "name": "stop",
                            "displayName": "Stop"
                        },
                        {
                            "id": "1c71f050-f6cb-4929-9c9d-7c262f77c143",
                            "name": "close",
                            "displayName": "Close"
                        }
                    ]
                },
                {
                    "id": "7917c2e7-d7d2-4c47-a38d-41f7dd7693d9",
                    "name": "shutter",
                    "displayName": "Generic shutter",
                    "createMethods": ["user"],
                    "interfaces": ["shutter"],
                    "stateTypes": [
                        {
                            "id": "cc547728-b309-4695-b355-49748ef2521c",
                            "name": "openingOutput",
                            "displayName": "Opening output",
                            "displayNameEvent": "Opening output changed",
                            "displayNameAction": "Set opening output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "1c35df0e-4c41-455f-893a-0145377952a0",
                            "name": "closingOutput",
                            "displayName": "Closing output",
                            "displayNameEvent": "Closing output changed",
                            "displayNameAction": "Set closing output",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "6d6e72dc-4d2b-4ec1-82c2-54405a682711",
                            "name": "status",
                            "displayName": "Status",
                            "displayNameEvent": "Status changed",
                            "type": "QString",
                            "possibleValues": [
                                "Opening",
                                "Stopped",
                                "Closing"
                            ],
                            "defaultValue": "Stopped"
                        }
                    ],
                    "actionTypes": [
                        {
                            "id": "9deb662d-2378-4345-a898-8742d41e43c1",
                            "name": "open",
                            "displayName": "Open"
                        },
                        {
                            "id": "db5f3332-1f4e-4f9e-84d2-93c5d7de315c",
                            "name": "stop",
                            "displayName": "Stop"
                        },
                        {
                            "id": "cf5303f1-67c7-4cef-b11c-eb9de6fc8a87",
                            "name": "close",
                            "displayName": "Close"
                        }
                    ]
                },
                {
                    "id": "d6699a12-f4a6-4c50-951c-f4f1cd0501dc",
                    "name": "impulseGaragedooor",
                    "displayName": "Impulse based garage door",
                    "createMethods": ["user"],
                    "interfaces": ["impulsegaragedoor"],
                    "settingsTypes": [
                        {
                            "id": "962b356c-e975-4d33-b114-10f655eaf74c",
                            "name": "impulseDuration",
                            "displayName": "Impulse duration",
                            "type": "uint",
                            "defaultValue": "200"
                        }
                    ],
                    "actionTypes": [
                        {
                            "id": "ff5461c6-70fc-435e-8424-96fa59ed321e",
                            "name": "triggerImpulse",
                            "displayName": "Operate"
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "5ccaf0aa-01a4-441f-b6ca-18940da096a5",
                            "name": "impulse",
                            "displayName": "Impulse",
                            "displayNameEvent": "Impulse changed",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "572403b1-bc22-4620-8170-53147a546033",
                    "name": "simpleGaragedoor",
                    "displayName": "Simple garage door",
                    "createMethods": ["user"],
                    "interfaces": ["simplegaragedoor"],
                    "actionTypes": [
                        {
                            "id": "3edb25af-ad51-495b-9ac9-ab97669339b7",
                            "name": "open",
                            "displayName": "Open"
                        },
                        {
                            "id": "1111c0ed-69b6-480c-9fd5-15292600d4f4",
                            "name": "close",
                            "displayName": "Close"
                        },
                        {
                            "id": "f346766f-44ee-452b-bb9c-e89ec0f56016",
                            "name": "stop",
                            "displayName": "Stop"
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "fcd421eb-54f2-4195-bdef-ffa69e9dcc57",
                            "name": "openingOutput",
                            "displayName": "Opening output",
                            "displayNameEvent": "Opening output changed",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput"
                        },
                        {
                            "id": "44ef060a-e6fc-4f33-84d2-b24ac7d31ff1",
                            "name": "closingOutput",
                            "displayName": "Closing output",
                            "displayNameEvent": "Closing output changed",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "7341e689-4495-4422-851a-3e7c790394b8",
                    "name": "extendedStatefulGaragedoor",
                    "displayName": "Garage door with position control",
                    "createMethods": ["user"],
                    "interfaces": ["extendedstatefulgaragedoor"],
                    "settingsTypes": [
                        {
                            "id": "04fb7724-a870-4df9-a79e-fab693931238",
                            "name": "openingDuration",
                            "displayName": "Opening duration [ms]",
                            "type": "uint",
                            "minValue": 1000,
                            "defaultValue": 5000
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "0cc74edb-7116-47cf-953a-409933f26557",
                            "name": "state",
                            "displayName": "State",
                            "displayNameEvent": "State changed",
                            "type": "QString",
                            "possibleValues": ["open", "closed", "opening", "closing", "intermediate"],
                            "defaultValue": "closed"
                        },
                        {
                            "id": "963bed3d-2ccb-4dd0-b609-c7e9f25d32d6",
                            "name": "moving",
                            "displayName": "Moving",
                            "displayNameEvent": "Moving changed",
                            "type": "bool",
                            "defaultValue": false
                        },
                        {
                            "id": "f9244c14-0bc9-49ce-90a5-437e66245594",
                            "name": "percentage",
                            "displayName": "Open position",
                            "displayNameEvent": "Open position changed",
                            "displayNameAction": "Set open position",
                            "type": "int",
                            "minValue": 0,
                            "maxValue": 100,
                            "defaultValue": 100,
                            "writable": true
                        },
                        {
                            "id": "ecc799c7-4d74-4d1f-94e5-2d74e77493ae",
                            "name": "openingOutput",
                            "displayName": "Opening output",
                            "displayNameEvent": "Opening output changed",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput"
                        },
                        {
                            "id": "e1c14bcd-6131-494b-8dd1-46738e9c8f5e",
                            "name": "closingOutput",
                            "displayName": "Closing output",
                            "displayNameEvent": "Closing output changed",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput"
                        }
                    ],
                    "actionTypes": [
                        {
                            "id": "4a3a3b88-47e9-436f-86be-b5955f3fc2f7",
                            "name": "open",
                            "displayName": "Open"
                        },
                        {
                            "id": "2420fcdb-03d3-4edb-aa89-e3b93c7d6d18",
                            "name": "close",
                            "displayName": "Close"
                        },
                        {
                            "id": "109c3eaf-26a0-4121-8be2-1363253178fd",
                            "name": "stop",
                            "displayName": "Stop"
                        }
                    ]
                },
                {
                    "id": "4e7261af-a27b-4446-8346-914ea59f7547",
                    "name": "socket",
                    "displayName": "Generic power socket",
                    "createMethods": ["user"],
                    "interfaces": ["powersocket"],
                    "stateTypes": [
                        {
                            "id": "018038d7-1d02-4b17-8fe3-babca044b087",
                            "name": "power",
                            "displayName": "Power",
                            "displayNameEvent": "Power changed",
                            "displayNameAction": "Set power",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "c50d3216-f307-4f9f-8190-4391510c385c",
                    "name": "light",
                    "displayName": "Generic light",
                    "createMethods": ["user"],
                    "interfaces": ["light"],
                    "stateTypes": [
                        {
                            "id": "8b6e4a67-6522-408b-b676-8d2f09ed2d54",
                            "name": "power",
                            "displayName": "Power",
                            "displayNameEvent": "Power changed",
                            "displayNameAction": "Set power",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "392854c4-3d14-4cf8-96cd-d933526bd197",
                    "name": "heating",
                    "displayName": "Generic heating",
                    "createMethods": ["user"],
                    "interfaces": ["heating"],
                    "stateTypes": [
                        {
                            "id": "409b635e-a754-4b5c-b3f0-d1c5a0fb3f03",
                            "name": "power",
                            "displayName": "Power",
                            "displayNameEvent": "Power changed",
                            "displayNameAction": "Set power",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "57daa147-dd6f-4673-a757-d8f01a2054c7",
                    "name": "powerSwitch",
                    "displayName": "Generic power switch",
                    "createMethods": ["user"],
                    "interfaces": ["power"],
                    "stateTypes": [
                        {
                            "id": "08087af6-6a3b-4e4a-ac6d-56f23ce63edf",
                            "name": "power",
                            "displayName": "Power",
                            "displayNameEvent": "Powered on/off",
                            "displayNameAction": "Power on/off",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "d013b980-20d5-4791-9c4f-b411c39241d7",
                    "name": "irrigation",
                    "displayName": "Generic irrigation",
                    "createMethods": ["user"],
                    "interfaces": ["irrigation"],
                    "stateTypes": [
                        {
                            "id": "0212a287-c5ae-4644-8803-adfdd8caeb9a",
                            "name": "power",
                            "displayName": "Power",
                            "displayNameEvent": "Turned on or off",
                            "displayNameAction": "Turn on or off",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "24af8dd3-ddf0-47f0-bf09-70fdfd8dceab",
                    "name": "ventilation",
                    "displayName": "Generic ventilation",
                    "createMethods": ["user"],
                    "interfaces": ["ventilation"],
                    "stateTypes": [
                        {
                            "id": "846711b7-ea5a-4c66-a267-001c60406509",
                            "name": "power",
                            "displayName": "Power",
                            "displayNameEvent": "Turned on or off",
                            "displayNameAction": "Turn on or off",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "a7eec5f7-3cc3-4edb-baa7-1f6b6f935bf8",
                    "name": "ventilationFlow",
                    "displayName": "Generic ventilation with flow control",
                    "createMethods": ["user"],
                    "interfaces": ["ventilation"],
                    "stateTypes": [
                        {
                            "id": "adf9a8dd-da13-4070-a3bd-9d4be26ebcd1",
                            "name": "power",
                            "displayName": "Power",
                            "displayNameEvent": "Turned on or off",
                            "displayNameAction": "Turn on or off",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        },
                        {
                            "id": "5a273bba-0bef-49fb-870a-7f2df8fc14b6",
                            "name": "flowRate",
                            "displayName": "Air flow rate",
                            "displayNameEvent": "Air flow rate changed",
                            "displayNameAction": "Set air flow rate",
                            "type": "int",
                            "minValue": 0,
                            "maxValue": 100,
                            "unit": "Percentage",
                            "writable": true,
                            "defaultValue": 0,
                            "ioType": "analogOutput"
                        }
                    ]
                },
                {
                    "id": "cf3d65db-6f68-457b-968c-cfb66cbd5311",
                    "name": "temperatureSensor",
                    "displayName": "Generic temperature sensor",
                    "createMethods": ["user"],
                    "interfaces": ["temperaturesensor"],
                    "settingsTypes": [
                        {
                            "id": "c86ae5d3-9335-4b6e-8231-bf3ed6670dff",
                            "name": "minTemp",
                            "displayName": "Minimum temperature",
                            "type": "double",
                            "defaultValue": -20,
                            "unit": "DegreeCelsius"
                        },
                        {
                            "id": "8b5947ab-127f-4995-853b-eeeb628811e3",
                            "name": "maxTemp",
                            "displayName": "Maximum temperature",
                            "type": "double",
                            "defaultValue": 50,
                            "unit": "DegreeCelsius"
                        },
                        {
                            "id": "3b543c3a-1fc0-45b5-8c07-600a6045f82e",
                            "name": "accuracy",
                            "displayName": "Accuracy (decimal places)",
                            "type": "uint",
                            "minValue": 0,
                            "maxValue": 5,
                            "defaultValue": 1
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "d0b6c4be-339e-4b0f-a234-0611b7565395",
                            "name": "temperature",
                            "displayName": "Temperature",
                            "displayNameEvent": "Temperature changed",
                            "type": "double",
                            "unit": "DegreeCelsius",
                            "defaultValue": 0
                        },
                        {
                            "id": "fed37466-1264-4ac1-84fd-aff3a1f7ff04",
                            "name": "input",
                            "displayName": "Input value",
                            "displayNameEvent": "Input value changed",
                            "displayNameAction": "Set input value",
                            "type": "double",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 1,
                            "writable": true,
                            "ioType": "analogOutput"
                        }
                    ]
                },
                {
                    "id": "d295bc64-773c-42a9-83e2-80db5fa0d1ce",
                    "name": "humiditySensor",
                    "displayName": "Generic humidity sensor",
                    "createMethods": ["user"],
                    "interfaces": ["humiditysensor"],
                    "settingsTypes": [
                        {
                            "id": "0218ffa9-3d49-4b25-a59f-c8831f190432",
                            "name": "minHumidity",
                            "displayName": "Minimum humidity",
                            "type": "double",
                            "defaultValue": 0,
                            "unit": "Percentage"
                        },
                        {
                            "id": "10afc387-68d1-47ea-a816-0d1acad47b3c",
                            "name": "maxHumidity",
                            "displayName": "Maximum humidity",
                            "type": "double",
                            "defaultValue": 100,
                            "unit": "Percentage"
                        },
                        {
                            "id": "38064841-6121-4862-a639-08fb0b778511",
                            "name": "accuracy",
                            "displayName": "Accuracy (decimal places)",
                            "type": "uint",
                            "minValue": 0,
                            "maxValue": 5,
                            "defaultValue": 1
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "925225d9-2965-444a-9c42-63c2873700fb",
                            "name": "humidity",
                            "displayName": "Humidity",
                            "displayNameEvent": "Humidity changed",
                            "type": "double",
                            "unit": "Percentage",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 100
                        },
                        {
                            "id": "a8223e65-e704-4f84-9bbe-d8fc42597047",
                            "name": "input",
                            "displayName": "Input value",
                            "displayNameEvent": "Input value changed",
                            "displayNameAction": "Set input value",
                            "type": "double",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 100,
                            "writable": true,
                            "ioType": "analogOutput"
                        }
                    ]
                },
                {
                    "id": "33e610cf-ff30-481b-9f0b-d6857bcd41a5",
                    "name": "moistureSensor",
                    "displayName": "Generic soil moisture sensor",
                    "createMethods": ["user"],
                    "interfaces": ["moisturesensor"],
                    "settingsTypes": [
                        {
                            "id": "32153786-f1ae-4aa4-a84c-b9054102eb92",
                            "name": "minMoisture",
                            "displayName": "Minimum moisture",
                            "type": "double",
                            "defaultValue": 0,
                            "unit": "Percentage"
                        },
                        {
                            "id": "3426817d-065e-4cfc-aa21-bb434de684d6",
                            "name": "maxMoisture",
                            "displayName": "Maximum moisture",
                            "type": "double",
                            "defaultValue": 100,
                            "unit": "Percentage"
                        },
                        {
                            "id": "3c967a68-9951-4c9a-b019-79b913e762b6",
                            "name": "accuracy",
                            "displayName": "Accuracy (decimal places)",
                            "type": "uint",
                            "minValue": 0,
                            "maxValue": 5,
                            "defaultValue": 1
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "7a62e1d2-92f2-424c-876c-870478a4b2bd",
                            "name": "moisture",
                            "displayName": "Soil moisture",
                            "displayNameEvent": "Soil moisture changed",
                            "type": "double",
                            "unit": "Percentage",
                            "minValue": 0,
                            "maxValue": 100,
                            "defaultValue": 0
                        },
                        {
                            "id": "ce64a425-d990-4fc1-966b-be6de445792b",
                            "name": "input",
                            "displayName": "Input value",
                            "displayNameEvent": "Input value changed",
                            "displayNameAction": "Set input value",
                            "type": "double",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 100,
                            "writable": true,
                            "ioType": "analogOutput"
                        }
                    ]
                },
                {
                    "id": "9a8d804b-d1dc-450a-8c41-be491e5cdda0",
                    "name": "pressureSensor",
                    "displayName": "Generic pressure sensor",
                    "createMethods": ["user"],
                    "interfaces": ["pressuresensor"],
                    "settingsTypes": [
                        {
                            "id": "035e2619-f9c2-4e8f-95dd-f124ad9402d0",
                            "name": "minPressure",
                            "displayName": "Minimum pressure",
                            "type": "double",
                            "defaultValue": 0,
                            "unit": "MilliBar"
                        },
                        {
                            "id": "06e21251-8b4f-44a1-8504-6b51f8526bd0",
                            "name": "maxPressure",
                            "displayName": "Maximum pressure",
                            "type": "double",
                            "defaultValue": 2000,
                            "unit": "MilliBar"
                        },
                        {
                            "id": "021a17d8-9e5e-4dd6-835d-1a3e1ffd6b23",
                            "name": "accuracy",
                            "displayName": "Accuracy (decimal places)",
                            "type": "uint",
                            "minValue": 0,
                            "maxValue": 5,
                            "defaultValue": 1
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "e645a979-1465-4592-b8b0-f4c123db0800",
                            "name": "pressure",
                            "displayName": "Pressure",
                            "displayNameEvent": "Pressure changed",
                            "type": "double",
                            "unit": "MilliBar",
                            "defaultValue": 0
                        },
                        {
                            "id": "c320577c-371a-442b-ac80-b692ff2064c9",
                            "name": "input",
                            "displayName": "Input value",
                            "displayNameEvent": "Input value changed",
                            "displayNameAction": "Set input value",
                            "type": "double",
                            "defaultValue": 0,
                            "unit": "Percentage",
                            "minValue": 0,
                            "maxValue": 100,
                            "writable": true,
                            "ioType": "analogOutput"
                        }
                    ]
                },
                {
                    "id": "a58a2dae-4148-4a4d-ab34-2a11124454a0",
                    "name": "co2Sensor",
                    "displayName": "Generic CO2 sensor",
                    "createMethods": ["user"],
                    "interfaces": ["co2sensor"],
                    "settingsTypes": [
                        {
                            "id": "a0d8a6ec-599a-4ded-ae03-2950561f0b72",
                            "name": "minCO2",
                            "displayName": "Minimum CO2",
                            "type": "double",
                            "defaultValue": 0,
                            "unit": "PartsPerMillion"
                        },
                        {
                            "id": "a3029bee-8b13-4aed-8ebd-eaceb603f8ef",
                            "name": "maxCO2",
                            "displayName": "Maximum CO2",
                            "type": "double",
                            "defaultValue": 2000,
                            "unit": "PartsPerMillion"
                        },
                        {
                            "id": "236831a8-a455-4e38-a9cd-eabbebaa3f67",
                            "name": "accuracy",
                            "displayName": "Accuracy (decimal places)",
                            "type": "uint",
                            "minValue": 0,
                            "maxValue": 5,
                            "defaultValue": 1
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "755c4c7f-093e-41dd-a38d-9ee18c9890d6",
                            "name": "co2",
                            "displayName": "CO2",
                            "displayNameEvent": "CO2 changed",
                            "type": "double",
                            "unit": "PartsPerMillion",
                            "defaultValue": 0
                        },
                        {
                            "id": "7dc765f8-fa9b-4199-8f21-49ed452f226d",
                            "name": "input",
                            "displayName": "Input value",
                            "displayNameEvent": "Input value changed",
                            "displayNameAction": "Set input value",
                            "type": "double",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 100,
                            "writable": true,
                            "ioType": "analogOutput"
                        }
                    ]
                },
                {
                    "id": "d4d873fd-f0fc-433f-b615-91c1506a1890",
                    "name": "lightSensor",
                    "displayName": "Generic light sensor",
                    "createMethods": ["user"],
                    "interfaces": ["lightsensor"],
                    "settingsTypes": [
                        {
                            "id": "6dea7384-b079-443b-8cc2-1479138fa212",
                            "name": "minLux",
                            "displayName": "Minimum Lux",
                            "type": "double",
                            "defaultValue": 0,
                            "unit": "Lux"
                        },
                        {
                            "id": "7fe74404-d7f0-41af-a8d4-dd1bda27f752",
                            "name": "maxLux",
                            "displayName": "Maximum Lux",
                            "type": "double",
                            "defaultValue": 120000,
                            "unit": "Lux"
                        },
                        {
                            "id": "f800988f-1ad5-4ffb-9aa8-70ef17614966",
                            "name": "accuracy",
                            "displayName": "Accuracy (decimal places)",
                            "type": "uint",
                            "minValue": 0,
                            "maxValue": 5,
                            "defaultValue": 1
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "fe12ef32-9f2f-41cd-acb7-6b8e4acffa3b",
                            "name": "lightIntensity",
                            "displayName": "Light intensity",
                            "displayNameEvent": "Light intensity changed",
                            "type": "double",
                            "unit": "Lux",
                            "defaultValue": 0
                        },
                        {
                            "id": "520e5d27-7d15-4d79-94cf-5d01f5a09ea8",
                            "name": "input",
                            "displayName": "Input value",
                            "displayNameEvent": "Input value changed",
                            "displayNameAction": "Set input value",
                            "type": "double",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 100,
                            "unit": "Percentage",
                            "writable": true,
                            "ioType": "analogOutput"
                        }
                    ]
                },
                {
                    "id": "c3123967-f741-4fe1-a0d4-9a3e405d7e52",
                    "name": "extendedSmartMeterConsumer",
                    "displayName": "Impulse based energy meter",
                    "createMethods": ["user"],
                    "interfaces": ["extendedsmartmeterconsumer"],
                    "settingsTypes": [
                        {
                            "id": "c361732b-68eb-447e-a434-e84031231871",
                            "name": "impulsePerKwh",
                            "displayName": "Impulse/kWh",
                            "type": "int",
                            "minValue": 1,
                            "maxValue": 1000000,
                            "defaultValue": 1000
                        },
                        {
                            "id": "73c9acc3-8f76-40d7-a79b-a1f08bb308d4",
                            "name": "impulseTimeframe",
                            "displayName": "Timeframe for power calculation",
                            "type": "int",
                            "unit": "Seconds",
                            "minValue": 1,
                            "maxValue": 600,
                            "defaultValue": 10
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "5983d714-5f80-42d8-bee2-9228b6382b3b",
                            "name": "currentPower",
                            "displayName": "Power",
                            "displayNameEvent": "Power changed",
                            "type": "double",
                            "defaultValue": 0.00,
                            "unit": "Watt"
                        },
                        {
                            "id": "5821edb7-e6cb-4e5a-9d0b-3375126d3367",
                            "name": "totalEnergyConsumed",
                            "displayName": "Energy",
                            "displayNameEvent": "Energy changed",
                            "type": "double",
                            "defaultValue": 0.00,
                            "unit": "KiloWattHour"
                        },
                        {
                            "id": "9cd7e5ca-f8f8-48d5-9785-911ae75158c3",
                            "name": "impulseInput",
                            "displayName": "Impulse input",
                            "displayNameEvent": "Impulse input changed",
                            "displayNameAction": "Set impulse input",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalOutput"
                        }
                    ]
                },
                {
                    "id": "6a34ba99-e5ec-4fc9-a61f-695ed8573fa1",
                    "name": "thermostat",
                    "displayName": "Generic thermostat",
                    "createMethods": ["user"],
                    "interfaces": ["thermostat"],
                    "settingsTypes": [
                        {
                            "id": "64bf308f-a543-4e02-b787-1a1714c1f978",
                            "name": "temperatureDifference",
                            "displayName": "Temperature difference",
                            "type": "double",
                            "unit": "DegreeCelsius",
                            "minValue": 0.00,
                            "defaultValue": 2.00
                        },
                        {
                            "id": "67451c97-50e1-4ea6-ac43-4386fbd26698",
                            "name": "minTargetTemperature",
                            "displayName": "Minimum temperature",
                            "type": "double",
                            "unit": "DegreeCelsius",
                            "minValue": -20,
                            "maxValue": 49,
                            "defaultValue": -20
                        },
                        {
                            "id": "85608dd5-7e67-4c98-9e62-b97411681048",
                            "name": "maxTargetTemperature",
                            "displayName": "Maximum temperature",
                            "type": "double",
                            "unit": "DegreeCelsius",
                            "minValue": -19,
                            "maxValue": 50,
                            "defaultValue": 50
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "0f808803-0e63-47df-b024-9685998ba663",
                            "name": "temperature",
                            "displayName": "Temperature sensor input",
                            "displayNameEvent": "Temperature sensor input changed",
                            "displayNameAction": "Set temperature sensor input",
                            "type": "double",
                            "defaultValue": 0,
                            "minValue": -20,
                            "maxValue": 50,
                            "unit": "DegreeCelsius",
                            "writable": true,
                            "ioType": "analogOutput"
                        },
                        {
                            "id": "60169ebf-c1e3-41ed-a1bb-4b858e93ec50",
                            "name": "targetTemperature",
                            "displayName": "Target temperature",
                            "displayNameEvent": "Target temperature changed",
                            "displayNameAction": "Set target temperature",
                            "type": "double",
                            "defaultValue": 21,
                            "minValue": -20,
                            "maxValue": 50,
                            "unit": "DegreeCelsius",
                            "writable": true,
                            "ioType": "analogInput"
                        },
                        {
                            "id": "1f6a0c39-4417-4e31-86db-9926cf81c345",
                            "name": "heatingOn",
                            "displayName": "Heating On/off",
                            "displayNameEvent": "Heating turned on/off",
                            "displayNameAction": "Turn heating on/off",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        },
                        {
                            "id": "cab7d4bd-f612-4d12-b3a4-0649e189810f",
                            "name": "coolingOn",
                            "displayName": "Cooling On/off",
                            "displayNameEvent": "Cooling turned on/off",
                            "displayNameAction": "Turn cooling on/off",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "09edbc07-d382-48a4-9b16-99992014aff9",
                    "name": "cooling",
                    "displayName": "Generic cooler",
                    "createMethods": ["user"],
                    "interfaces": ["cooling"],
                    "stateTypes": [
                        {
                            "id": "918cfd2c-6692-4faa-acc6-18ebf93611ec",
                            "name": "power",
                            "displayName": "Cooler on/off",
                            "displayNameEvent": "Cooler turned on/off",
                            "displayNameAction": "Turn cooler on/off",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalInput"
                        }
                    ]
                },
                {
                    "id": "83cf138d-02dc-4015-9b03-6360c2f3cfb1",
                    "name": "sgReady",
                    "displayName": "SG-Ready",
                    "createMethods": ["user"],
                    "interfaces": [],
                    "settingsTypes": [
                    ],
                    "stateTypes": [
                        {
                            "id": "d080466e-7271-441f-9916-1199a6668545",
                            "name": "relay1",
                            "displayName": "Relay 1",
                            "displayNameEvent": "Relay 1 changed",
                            "displayNameAction": "Set relay 1",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "caf22937-fdf7-41e1-a87b-d11e66c4f4c6",
                            "name": "relay2",
                            "displayName": "Relay 2",
                            "displayNameEvent": "Relay 2 changed",
                            "displayNameAction": "Set relay 2",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalInput",
                            "writable": true
                        },
                        {
                            "id": "85667640-d719-4be4-a5fa-e41193eea162",
                            "name": "operatingMode",
                            "displayName": "Operating mode",
                            "displayNameAction": "Set operating mode",
                            "displayNameEvent": "Operating mode changed",
                            "type": "int",
                            "minValue": 1,
                            "maxValue": 4,
                            "writable": true,
                            "defaultValue": 2
                        },
                        {
                            "id": "b421d098-f6e9-40e2-b536-58acdb3a49fe",
                            "name": "operatingModeDescription",
                            "displayName": "Operating mode description",
                            "displayNameEvent": "Operating mode description changed",
                            "type": "QString",
                            "defaultValue": ""
                        }
                    ]
                },
                {
                    "id": "2d936f56-48ee-4be1-9b3e-28a335ad8085",
                    "name": "doorSensor",
                    "displayName": "Gerneric door or window sensor",
                    "createMethods": ["user"],
                    "interfaces": ["closablesensor"],
                    "stateTypes": [
                        {
                            "id": "7f5fdc2b-7916-4e90-9c24-558162304f71",
                            "name": "closed",
                            "displayName": "Closed",
                            "displayNameEvent": "Opened or closed",
                            "displayNameAction": "Set open or closed",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalOutput"
                        }
                    ]
                },
                {
                    "id": "339a0c54-4086-404f-8d36-bcf20621b785",
                    "name": "presenceSensor",
                    "displayName": "Generic presence sensor",
                    "createMethods": ["user"],
                    "interfaces": ["presencesensor"],
                    "stateTypes": [
                        {
                            "id": "22c1eac6-9bb5-4cc1-ac0d-e3e1499edd3c",
                            "name": "isPresent",
                            "displayName": "Presence detected",
                            "displayNameEvent": "Presense changed",
                            "displayNameAction": "Set presence",
                            "type": "bool",
                            "defaultValue": false,
                            "ioType": "digitalOutput",
                            "writable": true
                        },
                        {
                            "id": "be4842cb-140c-425f-9630-8bb19fdb943e",
                            "name": "lastSeenTime",
                            "displayName": "Last seen time",
                            "displayNameEvent": "Last seen time changed",
                            "type": "int",
                            "unit": "UnixTime",
                            "defaultValue": 0
                        }
                    ]
                },
                {
                    "id": "81418556-cae3-4803-aa0c-9c4b3304a3eb",
                    "name": "battery",
                    "displayName": "Generic battery",
                    "createMethods": ["user"],
                    "interfaces": ["battery"],
                    "settingsTypes": [
                        {
                            "id": "8d875cb7-3a14-42d1-bf1b-759e5fd95a8f",
                            "name": "criticalLevel",
                            "displayName": "Critical battery level",
                            "type": "int",
                            "minValue": 0,
                            "maxValue": 100,
                            "defaultValue": 10
                        }
                    ],
                    "stateTypes": [
                        {
                            "id": "d37eed4a-befc-40d4-b435-40a761f99314",
                            "name": "batteryLevel",
                            "displayName": "Battery level",
                            "displayNameEvent": "Battery level changed",
                            "type": "int",
                            "unit": "Percentage",
                            "defaultValue": 0,
                            "minValue": 0,
                            "maxValue": 100
                        },
                        {
                            "id": "3336f0c2-158b-4353-b74f-f1bb9c4e8447",
                            "name": "batteryLevelControl",
                            "displayName": "Battery level control",
                            "displayNameEvent": "Battery level control changed",
                            "displayNameAction": "Set battery level",
                            "type": "double",
                            "minValue": 0,
                            "maxValue": 100,
                            "defaultValue": 0,
                            "unit": "Percentage",
                            "writable": true,
                            "ioType": "analogOutput"
                        },
                        {
                            "id": "a61c0328-b982-46a5-9cc0-b4fa4d0ab84d",
                            "name": "charging",
                            "displayName": "Charging",
                            "displayNameEvent": "Charging started or stopped",
                            "displayNameAction": "Set charging",
                            "type": "bool",
                            "defaultValue": false,
                            "writable": true,
                            "ioType": "digitalOutput"
                        },
                        {
                            "id": "e95dc037-002d-40a2-8c15-cd5489bd354a",
                            "name": "batteryCritical",
                            "displayName": "Battery critical",
                            "displayNameEvent": "Battery entered or left critical state",
                            "type": "bool",
                            "defaultValue": false
                        }
                    ]
                }
            ]
        }
    ]
}
