NEWS
[Noch eine Frage] Neue enum.functions automatisch erstellen möglich?
-
Hi an die Profis,
ich würde gerne in einem Script in dem viele Datenpunkte "via on beobachtet bzw. subscribed werden sollen" diese in einer neuen enum.functions - Aufzählung zusammen fassen um eben dann nur ein Subcribe für alles zu machen. Da ich aber eigentlich keine Lust habe diese enum.function händisch anzulegen wollte ich erfragen ob es eine Möglichkeit bzw. einen Befehl gibt diese Aufzählung und die zugehörigen Unterpunkte via Script anzulegen?
In dem Stil createState…. oder ähnliches.
-
Ich schiebs noch einmal hoch vielleicht hat ja jemand eine idee
-
Sollte funktionieren, enums sind auch nur objekte mit Type 'enum'!
Sie schauen in etwa so aus:
{ "type": "enum", "common": { "name": "Keller", "desc": "", "members": [ "hm-rpc.0.MEQ1851794.3", "hm-rpc.0.MEQ1435726.1", "hm-rpc.0.MEQ1851794.2", "hm-rpc.0.MEQ1851794.1" ] }, "native": { "Name": "Keller", "TypeName": "ENUM", "EnumInfo": "" }, "_id": "enum.rooms.Keller", ... }
mit createForeignObject oder extendForeignObject sollte man das hinkriegen…, foreign deshalb da der Wert nicht im Adadapter sonder im ioBroker bei den Systemvariablen gespeichert werden muss.
-
Versuche es mal so:
var ids = [idA, idB, idC]; var obj = {}; obj.type = 'enum'; obj.common = {}; obj.common.name = 'mein Gewerk'; obj.common.members = ids; setObject('enum.functions.meinGewerk', obj);
setObject() muss in der JS-Konfiguration freigegeben sein.
-
Versuche es mal so: `
Funktioniert perfekt! Danke
Kann man diese enum.function dann auch auf Existenz prüfen? Habe gesehen dass wenn ich mehrmals den gleichen Namen verwende die auch immer wieder erstellt werden. Dies würde ich gerne durch etwas wie "if(nicht existent)dann erstellen" prüfen
-
Kann man diese enum.function dann auch auf Existenz prüfen? Dies würde ich gerne durch etwas wie "if(nicht existent)dann erstellen" prüfen `
if(!getObject('enum.functions.meinGewerk')) { erstelle... }
-
Versuche es mal so: `
Ist es auch Möglich die Inhalte des Objekts auf existenz zu prüfen?bspw.
enum.function.meinGewerk
und ich will abfragen ob:" javascript.0.test.testdurchlauf" vorhanden ist. Möchte das gerne verwenden um beim ersten Scriptdurchlauf die Warnings zu unterdrücken.
Habe da was mit:````
(object.toSource());