NEWS
[gelöst] Array visualisieren
-
@besc0029 in blockly gibt es den Baustein "nimm das ... Element der Liste"
das dann mit aktualisiere in den DP schreiben. -
@homoran bekomm das irgendwie nicht hin. Wenn ich versuche, das Array zu zerlegen, kommt immer der Fehler:
TypeError: Cannot read properties of undefined (reading 'split')
-
bedeutet das:
alles davor weglassen ?
2624.3, vor 13 monaten
2620.6, vor 12 monaten
3094.1, vor 11 monaten
2092.3, vor 10 monaten
1858.3,vor 9monaten
1073.2, vor 8 monaten
179, vor 7monaten
0, vor 6 monaten
0, vor 5 monaten
0, vor 4 monaten
573.2, vor 3 monaten
633.2, vor 2 monaten
1341.3, letztes monat
0 - dieses monatwas machst du dann mit den datenpunkten ? wie willst du das in der vis anzeigen, oder nicht in der vis ? problem - wenn ein neues monat kommt, muss ein neuer dp erstellt werden und alle inhalte verschoben werden - da wäre es besser mit monatsnamen zu arbeiten
-
@besc0029 sagte: Wenn ich versuche, das Array zu zerlegen
Ein Array kann nicht nochmal zerlegt werden. Ist der Datenpunkt mit der Liste vom Typ "array" oder vom Typ "string" (JSON)?
-
@paul53 Ist vom Typ Array
-
@besc0029 sagte in Array visualisieren:
das Array zu zerlegen,
warum konvertierst du es nach String?
Dann ist es kein Array mehr.was kommt denn als debug?
welchen Typ hat der Datenpunkt? -
Das Blockly sieht richtigerweise wohl so aus:
Aber wie gesagt, hab dann immer noch den Konvertierungsfehler
@liv-in-sky : Das Array ist immer gleich lang. Neue Monate werden durch überschreiben der alten angelegt, d.h. die Anzahl der Werte im Array ist stets konstant.
-
@besc0029 sagte: Ist vom Typ Array
Dann teste es mal so:
EDIT: Mit Trigger:
Wert
findet man unter "Trigger". -
-
@liv-in-sky sagte in Array visualisieren:
wenn der dp vom typ array ist:
Deswegen warten wir suf die Ausgaben vom debug Block
-
Hallo,
habs hinbekommen das Array zu zerlegen:
Jetzt weiss ich nur nicht, wie ich das am Besten in eine Visualisierung packe, so dass bspw. jeder Datenpunkt einen Balken im Diagramm darstellt. Wenn ich alle Verbrauchswerte so wie im Debug in unterschiedliche Datenpunkte schreibe, bekomme ich diese ja nicht sinnvoll in eine visuelle Darstellung überführt.
Wenn ich "in Excel" denke, würde ich ne Pivot-Tabelle machen und daraus ne Visualisierung. Im iOBroker fällt mir aber gar nichts ein - nicht zuletzt, weil die historischen Datenpunkte, wie bspw Verbrauch vor 15 Monaten (mein beispiel wertet das Stunden Array aus, es gibt aber auch Monats und Jahres-Arrays) ja nicht sinnvoll erfasst werden wenn ich die über History-Adapter oder InfluxDB schreibe - dort wäre ja das Änderungsdatum stetas der aktuelle Zeitstempel.
BIn für jede Idee dankbar.
VG
Bernhard -
@besc0029 sagte in Array visualisieren:
dort wäre ja das Änderungsdatum stetas der aktuelle Zeitstempel.
BIn für jede Idee dankbar.da die Antwort hierzu ebenfalls noch aussteht, gab es bisher auch keine Hinweise
@homoran sagte in Array visualisieren:@besc0029 sagte in Array visualisieren:
Diese Werte wollte ich jetzt visualisieren,
in welcher Form?
-
eine tabelle bekommst du entweder:
- durch das erstellen eines html codes (z.b. <table>.... )und dem standard html widget
- durch das erstellen eines json's und dann das json widget nutzen
ein balkendiagramm ginge über material-design chart json widget - etwas kompliziert zu erstellen https://github.com/Scrounger/ioBroker.vis-materialdesign#bar-chart
-
habe mir das bar widget nochmal angesehen - sollte durch eine kleine zusatz function in deinem script machbar sein
zb:
habe keine formatierungen vorgenommen
-
@liv-in-sky Danke soweit für die Ausführungen. Deine Visualisierung entspricht dem wo ich hin will.
Leider verstehe ich in der Blockly-Erweiterung bei Dir nur "Bahnhof und Abfahrt". Könntest Du das ggf. etwas ausführen, insbesondere Hinsichtlich des Bausteins "Javaskript-Funktion" - ich weiss leider gar nicht wie ich den Baustein zu verwenden hab.
Auch verstehe ich nicht ganz,. wie die Daten nacher ins BarWidget gewandert sind ...
Sorry, aber ist ja die Rubrik "Einsteigerfragen"
Danke für Deine Bemühungen....
VG
-
- du brauchst die material design widgets
- du machst dir einen datenpunkt vom typ zeichenkette irgendwo unter 0_userdata.0. .....
- die tabelle braucht die inventwo widgets
- beide widgets brauchen den von dir erstellten datenpunkt als object id, denn da steht drin, was der graph und die tabelle benötigen
- die funktion erzeugt ein json-object und schreibt dies in eine liste und dann in einen datenpunkt - das brauchen die widgets - es ist einfacher das direkt in javascript zu machen - blockly ist nicht wirklich dazu geeignet - das script mit der function kannst du ja importieren und dann sieht man eigentlich, was es macht. eine function übernimmt immer die selbe aufgabe und wird aufgerufen mit verschiedenen inhalten der variablen.
hier wären die beiden widgets zum importieren:
die widget werden darüber installiert:
hoffe, die erklärung reicht - ansonsten nochmal spezieller nachfragen
-
@liv-in-sky Super ! Vielen Dank für die Erklärungen. Hat so funktioniert.
Viele Grüße
Bernhard