NEWS
Adapter Status Mit ChoiceList
-
Hallo zusammen,
ich erweitere gerade meinen Adapter (sainlogic), und eine neue Aufgabe ist es eine Status zu haben, welcher eine Choice-List hat. Der Sensor den ich auslese schickt mir eine number (0...37), und jede Zahl hat quasi einen bestimmten Text den ich gerne darstellen würde.Ich habe ein Beispiel in Homematic Adapter gefunden wo mit einer ENUM gearbeitet wird. Ich verstehe nur nicht, wie ich den Status richtig anlege damit es die Choice-list im Broker gibt. Auch möchte ich, dass ein Anwender den Status ändern kann und damit eine Aktion auslöst. Soweit ich sehe muss ich dafür ein onStateChange event registrieren. Hat auch noch nicht geklappt, könnte aber daran liegen, dass mein State bisher als number 'read only' ist.
Ich habe den Status nun auch mal als 'Sate' definiert, aber das hilft mir auch noch nicht weiter.
Danke für Eure Hilfe! -
@fogg sagte: jede Zahl hat quasi einen bestimmten Text den ich gerne darstellen würde.
Das ist eine Werteliste, bei der man die Zustandstexte unter common.states den Zahlenwerten zuordnet. Beispiel:
"type": "state", "common": { "name": "Lüfter Modus", "role": "level.mode", "type": "number", "desc": "Manuell erzeugt", "states": { "0": "Aus", "1": "Stufe 1", "2": "Stufe 2" }, "min": 0, "max": 2, "def": 0, "read": true, "write": true },
Der Admin zeigt dann im Tab "Objekte" z.B. den Wert "Stufe 1(1)" und bietet die Auswahl aus den 3 Werten.
-
@paul53 Perfekt, danke! So hat es funktioniert!
-
Wenn der state einen numerischen Wert enthält, dann ist typ number völlig OK. Die Textuale Anzeige ist nur ein "Mapping" in admin. Du schreibst auch weiterhin den numerischen Wert in den State.
Read Only ist natürlich bei States di vom User beschreiben werden sollen auf Write:true zu ändern. Technisch würde es zwar auch mit write:false gehen aber Warnings auslösen.
Generell empfehle ich für Fragen zur Adapterentwicklung unseren Chat auf telegram / discord. Invites unter https://www.iobrokjer.dev. Da sind mereh devs unterwegs