Das 'protocol': 'simple'
geht für die Single Devices eben nicht, weil die sind einfach zu kompliziert dafür. Es muss also erstmal dort 'protocol': 'json'
heissen.
Was ich aber zuerst fragen möchte: wozu soll das Single Device denn dienen?
Diese Art von Gerät wurde von dS im Zusammenhang mit Integration von Backöfen, Waschmaschinen und dergleichen definiert, also um komplexe Einzelgeräte mit vielfältigen actions, states, events und properties modellieren zu können. Nur hat der dSS leider nie eine auch nur ansatzweise generische Implementation dafür bekommen, sondern nur einige eher glücklose Spezial-Apps für ganz bestimmte Geräte(serien) bestimmter Hersteller, für die dann auch auf Basis des P44 vdcd auch quasi "Gerätetreiber" entwickelt wurden. Die external device API hat v.a. deshalb Support für diese "Single Devices" bekommen, weil das ein guter Weg war, solche Geräte zu simulieren für die Entwicklung und das Testing.
Aber da es eben keinen generischen Support im dSS gibt, kann man nicht wirklich etwas Nützliches anfangen damit, oder ich kann mir zumindest nix vorstellen 😉
Dennoch, hier eine komplette Definition für einen virtuellen Wasserkocher (den hat's in ähnlicher Form real dann auch eine Zeitlang gegeben):
{
'message': 'init',
'iconname': 'kettle',
'modelname': 'kettle',
'protocol': 'json',
'uniqueid': '11111111-222222-333333-4444444444444444',
'name': 'virtual kettle',
'output': 'action',
'noconfirmaction': true,
'actions': {
'stop': {
'description': 'stop heating'
},
'heat': {
'description': 'heat water',
'params': {
'temperature': {
'type': 'numeric',
'siunit': 'celsius',
'min': 20,
'max': 100,
'resolution': 1,
'default': 100
}
}
}
},
'states': {
'operation': {
'type': 'enumeration',
'values': ['!ready', 'heating', 'detached']
}
},
'events': {
'started': null,
'stopped': null,
'aborted': null,
'removed': null
},
'properties': {
'currentTemperature': {
'readonly': true,
'type': 'numeric',
'siunit': 'celsius',
'min': 0,
'max': 120,
'resolution': 1
},
'mode': {
'type': 'enumeration',
'values': ['!normal', 'boost']
}
},
'autoAddStandardActions': true,
'standardActions': {
'std.warmup': {
'action': 'heat',
'params': {
'temperature': 60
}
}
}
}
```