NEWS
Datenpunkte in JSON aufbereiten [gelöst]
-
Danke für die ausführliche Antworten
Bevor ich darauf eingehe, ist unser Start das beste Beispiel dafür das der Empfänger einer Kommunikation darüber entscheidet was er versteht und nicht der Sender mit dem was er hofft zu schreiben. Ich hätte wohl besser formuliert.....
... habe seit 30 Jahren NICHT mehr programmiert...
In der Zeit hat sich die IT rasend entwickelt und viele Begriffe wie Web Services, Objekt Orientierte Programmierung, HTML, XML, CSS, JSON usw. kann ich trotz meiner Zeit von damals nur halbwegs sicher einordnen. Ich bin also ganz im Gegenteil wie von dir verstanden kein Profi mit viel Erfahrung.
Beziehe auch @OliverIO mit ein da er ja auch kommentiert hat.
- History / SQL adapter
Ich habe beide laufen und schreibe die Verbauchsdaten dort auch weg. Bei der ViSu habe ich am Anfang einzelne FLOT Diagramme erstellt die auf die DB zugreifen und die dann aufgerufen. Später bin ich aber auf die weit dynamischeren Widgets von @Scrounger umgestiegen der da für mich klasse Arbeit gemacht hat.
In der DB liegen also die Verbäuche welche bei Veränderung kontinuierlich weitergeschrieben werden. Bei Gas ist das der Verbrauch in m³ vom Zähler, wobei mein Gasversorger aber in ct / kWh zzgl. Monatspauschale abrechnet. In einem Blockly berechne ich die monatlichen Verbäuche (in m³ und kWh) und die daraus resultierenden Kosten welche ich dann (noch) in eigene Datenpunkte wegschreibe.
Nur diese berechneten Datenpunkte will ich nicht für jedes Jahr/Monat neu anlegen sondern hatte gedacht diese gesammelt in einem JSON String abzuspeichern. JSON deshalb weil SCROUNGER auch das "JSON Chart" widget gebaut hat, mit dem ich Grafiken noch individueller zusammenbauen könnte. Ich muss mich allerdings erst noch eingehender mit diesem Widget beschäftigen wie es die Daten aufbereitet benötigt.
Mir ist klar das ich diese Berechnung prinzipell auch mit SQL machen könnte, habe da aber auch keine Erfahrung mit. Daher ist es sehr warscheinlich das ihr das viel schneller und besser über SQL hinbekommt als ich mit meinen heutigen Möglichkeiten. Sicherlich ein weiteres Thema das ich mir bei Gelegenheit erarbeiten sollte.
- JSON Array
Beim Aufbau des JSON Array fehlte mir einfach die Erfahrung die Frage richtig zu formulieren und die Syntax fachgerecht zu verwenden.
Ich werde eurem Rat folgen richtige JSON Objekte aufzubauen. Ich werde dann mal ein wenig rumspielen ob ich einzelne JSON Strings pro Jahr als DP ablege oder mehrere Jahre in einem String konsolidiere.
@liv-in-sky hat mir ja ein Blockly mit JS Funktion geschickt die das steuert. Da kann ich mal gut dran üben
- CSV / EXCEL
CSV wäre eine Alternative für die reine Datenablage und im Austausch mit EXCEL sicherlich sehr gut. Mein Hand-EXCEL Liste will ich aber wenn möglich los werden.
Danke für eure ausführliche Hilfe
-
Das funktioniert bei mir auch, habe aber folgende Fragen zum Verständis wann und warum du Konvertierungen einsetzt.
Am Anfang weist du der Variable "existingData" einen Wert zu und setzt dabei einen String (JSON ??) über eine Konvertierung JSON zu Objekt ein.
- Warum setzt du hier eine Konvertierung ein ?
Im weiteren Verlauf wenn du ein neues Jahr anlegst übergibst du "exsistingArr" den Inhalt von "existingData" wobei du KEINE Konvertierung verwendest.
Beim Schreiben der einzelnen Monate jedoch übergibst du "exsistingArr" den Inhalt von "existingData" MIT Konvertierung.
Warum ist das so ?
-
- ich habe einfach mal ein json-string (text) zum anfang als grunddaten gewählt
- die function braucht ein json-objet und gibt ein json-string aus
- zum bearbeiten brauche ich aber ein json-object (konvertierung) - aber aus gewohnheit kommt wieder ein json-string aus der funktion (ohne die wandlung beim return in der function, könnte ich mit dem object direkt weiterarbeiten
- am ende schreibe ich dann einen json-string in einen string-datenpunkt - so ist das ganze lesbar im dp
- wenn man das ganze nicht mit der grunddaten-variable macht, sondern immer wieder vom dp ausliest, braucht es beim getstate auch eine konvertierung in ein json-object
normalerweise, so dachte ich, machst du das einmal im monat und im januar zusätzlich einmal
du rufst also die function einmal im monat auf, holst aus dem dp ein json-string, konvertierst zu json object, übergibst das der function und sicherst das ergebnis der funktion direkt, ohne konvertierung, in den dp (das macht ja dir funktion) -
@moppedman sagte: Warum setzt du hier eine Konvertierung ein ?
Man kann in Blockly keine Objekte durch direkte Eingabe erstellen, aber einen String im JSON-Format, der in ein Objekt gewandelt werden kann.
-
@liv-in-sky sagte: ein json-object
Was ist ein json-object?
-
du weißt was ich meine - erkläre es einfach so wie es gehört
-
@liv-in-sky sagte: erkläre es einfach so wie es gehört
Das habe ich bereits. Man sollte Neulinge nicht durch falsche Begriffe verwirren.
-
man sollte leute, die versuchen zu helfen, nicht demutivieren
-
@liv-in-sky sagte: man sollte leute, die versuchen zu helfen, nicht demotivieren
Ich hoffe, dass das nicht passiert ist!
-
Deine Erklärung das du in der JS Funktion ein Objekt benötigst zusammen mit dem Hinweis von @paul53 das ich aus Blockly ein solches Objekt nicht direkt erzeugen kann hat "den Groschen Fallen lassen".
Du hast auch richtig verstanden, dass ich die Werte monatlich schreiben möchte und daher ist dein Vorschlag direkt umsetztbar. Ich möchte nur einmalig die vorhandenen Datenpunkte der letzten 1,5 Jahre auslesen und diese ebenfalls in JSON übertragen.
Danke für die Hilfe an alle. Mache mich jetzt and die Umsetzung.