NEWS
Array in eigenen Datenpunkten erstellen
-
Hallo Leute,
ich habe zwar schon nach "Array" im Forum gesucht, aber keines der Themen trifft mein Problem.
Ich möchten gern unter Objekte - JavaSrcipt - eigene Datenpunkte ein Array erstellen.Ich komme einfach nicht drauf welchen Datentyp ich da nutzen muss bzw. wie ich dann die Felder eines Arrays beschreiben und lese.
In meiner Programmierwelt werden Array Felder mit [int] angesprochen, wie es im iobroker funktioniert ist mir noch ein Rätsel.
Vielen Dank für eure Hilfe
-
@ichwersonst sagte:
unter Objekte - JavaSrcipt - eigene Datenpunkte ein Array erstellen.
createState(id, [], {type: 'array'});
@ichwersonst sagte in Array in eigenen Datenpunkten erstellen:
wie ich dann die Felder eines Arrays beschreiben und lese.
let arr = getState(id).val; arr[idx] = wert; setState(id, arr, true);
-
Danke für die Antwort.
Nur wo gebe ich die Kommandos ein? Bzw. geht das auch über den "einfachen" graphischen Weg?Grüße ...
-
@ichwersonst sagte:
Nur wo gebe ich die Kommandos ein?
Im Javascript-Editor.
@ichwersonst sagte in Array in eigenen Datenpunkten erstellen:
geht das auch über den "einfachen" graphischen Weg?
Was meinst Du damit ?
-
Ich meinte das so, ob ich die Variable auch in der Iobroker Oberfläche unter Objekte - JavaScript - EigeneDatenpunkte die Variable erstellen kann und wie ich sie in Blockly schreiben und lesen kann.
Danke
-
@ichwersonst sagte:
in der Iobroker Oberfläche unter Objekte - JavaScript - EigeneDatenpunkte die Variable erstellen kann
@ichwersonst sagte in Array in eigenen Datenpunkten erstellen:
wie ich sie in Blockly schreiben und lesen kann.
Zum Schreiben und Lesen unter "System": "aktualisiere" bzw. "Wert von".
Zum Bearbeiten: Blöcke unter "Listen". -
@paul53
okay also ich habe es jetzt geschafft, mehrere Werte (in meinem Fall Uhrzeiten) in einer Variable vom Typ Feld zuschreiben.
Der Inhalt der Variable sieht es ca so aus:16:11:25,16:11:30,16:11:54
Das sind die 3 Uhrzeiten.
Wie bekomme ich es jetzt in vis hin, dass ich die 3 Uhrzeiten einzeln an verschiedenen Stellen (Textfelder) angezeigt bekomme?
Grüße...
-
@ichwersonst sagte:
Wie bekomme ich es jetzt in vis hin, dass ich die 3 Uhrzeiten einzeln an verschiedenen Stellen (Textfelder) angezeigt bekomme?
Das ist ein anderes Thema, mit dem ich mich nicht auskenne. Eröffne dazu besser einen neuen Thread.
-
Hi,
ich habe die gleiche Frage.Und zwar schreibe ich mir ein Array mit Benzinpreisen.
In der letzten Zeile dieser Funktion beschreibe ich den Datenpunkt (Typ: Array) mit einem Text.
Im Log erhalte ich dann folgende Meldung:warn: javascript.0 (2068) You are assigning a string to the state "javascript.0.Spritpreis.PreisBenzin_Array" which expects a array. Please fix your code to use a array or change the state type to string. This warning might become an error in future versions.
Der Datenpunkt erwartet also den "typ array".
Ich finde im Blockly aber keine Möglichkeit einen Datentyp array zu schreiben.Das Array funktioniert zwar, und ich kann es auch wie gewünscht auslesen und daraus minimal- oder maximalwerte auslesen.
Aber die Meldung im Log stört dann doch. -
@aleks-83 damit ist das Objekt welches unter “javascript.0.Spritpreis.PreisBenzin_Array” liegt. Unter Objekte das suchen unter auf dem Stiftsymbol auf bearbeiten klicken, da im ersten Tab unter common den Datentyp auf String bzw. Zeichenkette ändern.
-
@ciddi89
Achso, ja. In die Richtung gehts natürlich auch...
Hatte gedacht dass der Datentyp array hier der richtige ist, weil ich es ja kommasepariert befülle. -
@aleks-83 Es gibt ja kein Zustandstyp "array" unter den Objekten, soweit ich weiss. Da bleibt ja nur Zeichenkette.
Steht ja auch in deinem Log was man machen kann um den Fehler zu korrigieren.
Please fix your code to use a array or change the state type to string.
-
@ciddi89 sagte: Es gibt ja kein Zustandstyp "array"
Doch, es gibt den Datenpunkt-Typ "array".