NEWS
Objekt zu bestimmten Zeitpunkt Speichern
-
@haus-automatisierung Danke für die schnelle Antwort, da bin ich aber gespannt, ob ich aus der Quellenangabe schlau werde, ich werde es aber versuchen. Danke für die schnelle Unterstützung!
-
@nobbiman Mit dem generischen sendTo Blockly-Baustein und den Bausteinen für Objekte kommt man da recht schnell zum Ziel mittlerweile. Muss also nicht in JavaScript sein.
-
@haus-automatisierung Danke, bin schon dran, denke, das müsste klappen.
-
@haus-automatisierung Ich habe doch mehr Probleme, mit Blockly-Bausteinen ans Ziel zu kommen.
Ich hab mal ein paar Bausteine zusammnegebastelt, in meiner Datenbak taucht mein neuer Datensatz "PVtag" nicht auf.
Hier mein Ansatz - einer von vielen:
Was fehlt denn da noch? Finde ich den Datensatz dann nur in der Datenbank?
Weitere Frage: wie bekomme ich den Zeitstempel z.B. auf den Zeitpunkt der Abfrage? -
@nobbiman sagte in Objekt zu bestimmten Zeitpunkt Speichern:
Was fehlt denn da noch?
Keine Ahnung was die Funktion genau da macht (was steht da drin?). Die brauchst Du ja eigentlich nicht. Das leere sendTo an
influxdb.0
ist ja auch wenig zielführend. -
Am Ende musst Du doch nur die Struktur aus der Doku nachbauen:
Habe ich ja schon öfter ausführlich erklärt. Gern mal reinschauen.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="sendto_custom" id="vYj7*qr_)Kt8ujY-LU|C" x="-62" y="288"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="id,state"></mutation> <field name="INSTANCE">influxdb.0</field> <field name="COMMAND">storeState</field> <field name="LOG"></field> <field name="WITH_STATEMENT">FALSE</field> <value name="ARG0"> <shadow type="text" id="iV%e!=QZ0qUy{tTxN^Q$"> <field name="TEXT">bla.bla.bla</field> </shadow> </value> <value name="ARG1"> <shadow type="text" id="n[O=eUR5XOaJ*}h(AM4q"> <field name="TEXT"></field> </shadow> <block type="object_new" id="sF+Q/RpoVjpFdFALV{r8"> <mutation xmlns="http://www.w3.org/1999/xhtml"> <attribute id="ATTR_0" name="ts"></attribute> <attribute id="ATTR_1" name="val"></attribute> <attribute id="ATTR_2" name="ack"></attribute> <attribute id="ATTR_3" name="from"></attribute> </mutation> <value name="ATTR_0"> <shadow type="text" id="#SVhaEl-;bp~B+IGUV]4"> <field name="TEXT"></field> </shadow> <block type="time_get" id="Idi0.dT@~d;8|=HW9#9+"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="ATTR_1"> <shadow type="text" id="nJ~fU/AB1:9igOBsKX*t"> <field name="TEXT"></field> </shadow> <block type="math_number" id="e=IIr;*7nLBq]zsbU@~A"> <field name="NUM">12345</field> </block> </value> <value name="ATTR_2"> <shadow type="text" id="!K/Q}@dZJqu/=P-*/_Oh"> <field name="TEXT"></field> </shadow> <block type="logic_boolean" id="X5NuTg=%t!+tbVu+3k%z"> <field name="BOOL">TRUE</field> </block> </value> <value name="ATTR_3"> <shadow type="text" id="d4~f,%Bzatt18Ofu-?-)"> <field name="TEXT">system.adapter.javascript.0</field> </shadow> </value> </block> </value> </block> </xml>
-
@haus-automatisierung sagte in Objekt zu bestimmten Zeitpunkt Speichern:
Habe ich ja schon öfter ausführlich erklärt. Gern mal reinschauen
Ich habe mir das mal angeschaut und ein wenig mehr von der Struktur verstanden. Die Umsetzung zu Blockly will dennoch noch nicht gelingen.
Mir ist noch nicht ganz klar, welche Bedeutung dieses Attribut "from" (ganz unten) hat. Ist es der Datensatz PVtag, den ich oben unter DataInfluxDB erstellt habe oder brauche ich den oberen Teil gar nicht und "from" ist der Wert (eToday), den ich schreiben will?
Einige Zeit später:
Ich denke, so sollte es im ersten Ansatz passen:
Die "id" ist das measurement, aber wo kann ich den Wert benennen? Im Moment erscheint in meiner Datenbank nur "value" ohne Bezeichnung?
Will ich mehrere Werte zum gleichen Zeitpunkt speichern bleibt die Frage, wie ich die in Blockly einbauen kann, damit sie genau zum gleichen Zeitpunkt abgespeichert werden? -
@nobbiman sagte in Objekt zu bestimmten Zeitpunkt Speichern:
Will ich mehrere Werte zum gleichen Zeitpunkt speichern bleibt die Frage, wie ich die in Blockly einbauen kann, damit sie genau zum gleichen Zeitpunkt abgespeichert werden?
Na einfach als Array übergeben. Siehe Doku. Und den Timestamp vorher in eine Variable schreiben und überall in den Objekten verwenden.
-
@haus-automatisierung sagte in Objekt zu bestimmten Zeitpunkt Speichern:
Array übergeben. Siehe Doku
Ich stelle mich zu unbeholfen an, da ich nur wenig Erfahrung mit Blockly, geschweige denn mit Javscript habe. Meine Fragen sind grundlegender Art: Ich hatte in der Doku gesehen, wie das Query verändert wird (Thema Array), das war mir aber bereits bekannt. In meinem Blockly-Modell kann ich aber keine Änderung in Java erstellen, da beim Switchen auf Javascript der Code schreibgeschützt ist. Wo sollte ich das Array erstellen? Wahrscheinlich stelle ich mich nur dumm an, hoffe aber dennoch auf Hilfe.
Ich kann aber auch 2 verschiedene Anweisungen für 2 Datenpunkte mit Blockly wie oben angezeigt erstellen, ich dachte es geht eleganter.
Es bliebe aber dann immer noch die Frage der unterschiedlichen Feldbezeichnungen, wo kann ich die festlegen?Ergebnisnachtrag:
Das ist jetzt meine Lösung, vielleicht geht es auch eleganter, aber nicht mit meinen Kenntnisstand!
Danke für die Unterstützung.
-
@nobbiman sagte in Objekt zu bestimmten Zeitpunkt Speichern:
Wo sollte ich das Array erstellen? Wahrscheinlich stelle ich mich nur dumm an, hoffe aber dennoch auf Hilfe.
Achso, Du wolltest unterschiedliche IDs schreiben. Dachte mehrere Werte zu unterschiedlichen Zeitpunkten für die gleiche ID. Das würde mit einem Array gehen. Sonst ist Dein Weg jetzt so richtig.
-
@haus-automatisierung Vielleicht habe ich mich nicht korrekt ausgedrückt. Dass du den Weg jetzt als richtig ausweist, adelt mich
Danke nochmals!
-
@nobbiman Generell würde ich aber ggf. den Baustein "Ende des Tages" nutzen, um nicht einen Eintrag für 23:57 Uhr in Deinem Beispiel zu setzen, sondern wirklich um 23:59:59.999
-
@haus-automatisierung Ich habe das mal umgesetzt, auch wenn in diesem Beispiel der exakte Zeitpunkt unerheblich ist, da sich die Daten (PV-Forecast + PV Tagesertrag) nach Sonnenuntergang nicht mehr verändern. Ist aber korrekt und an anderer Stelle bei mir führt dein Weg richtigerweise zu einer höheren Genauigkeit.