Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. SQL - Wert per Script speichern

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    811

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    680

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

SQL - Wert per Script speichern

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
58 Beiträge 5 Kommentatoren 2.9k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M MCU

    @bahnuhr Habe es auch mal versucht, konnte nur Werte für DPs anlegen, welche schon über den Adapter angelegt waren. Eigene konnte ich nicht anlegen, es kommt immer der Fehler: Cannot read property 'type' of undefined

    Versuch datapoints anlegen funktioniert
    2021-05-03 18:01:08.221 - debug: sql.0 (15961) Insert into iobroker.datapoints (name,type) VALUES ("0_userdata.0.Power1","0");
    2021-05-03 18:01:08.227 - debug: sql.0 (15961) sendTo "query" to system.adapter.javascript.0 from system.adapter.sql.0
    
    Werte hinzufügen funktioniert nicht
    2021-05-03 18:00:37.744 - warn: sql.0 (15961) States system pmessage io.messagebox.system.adapter.sql.0 {"command":"storeState","message":{"id":"0_userdata.0.Power1","state":{"val":3,"ts":1620054476092,"ack":true}},"from":"system.adapter.javascript.0","callback":{"message":{"id":"0_userdata.0.Power1","state":{"val":3,"ts":1620054476092,"ack":true}},"id":2870,"ack":false,"time":1620057637742},"_id":1419704} Cannot read property 'type' of undefined
    2021-05-03 18:00:37.747 - warn: sql.0 (15961) TypeError: Cannot read property 'type' of undefined
    

    Mit dem Datenpunkt, der schon angelegt war durch den Adapter über die History funktioniert es:

    2021-05-03 17:57:27.311 - debug: sql.0 (15961) storeState 1 item
    2021-05-03 17:57:27.311 - debug: sql.0 (15961) pushValueIntoDB called for alexa2.0.History.summary (type: 1, ID: 1) and state: {"val":3,"ts":1620054476092,"ack":true}
    2021-05-03 17:57:27.312 - debug: sql.0 (15961) prepareTaskCheckTypeAndDbId CALLED for alexa2.0.History.summary
    2021-05-03 17:57:27.312 - debug: sql.0 (15961) pushValueIntoDB-prepareTaskCheckTypeAndDbId RESULT for alexa2.0.History.summary (type: 1, ID: 1) and state: {"val":3,"ts":1620054476092,"ack":true}
    2021-05-03 17:57:27.313 - debug: sql.0 (15961) INSERT INTO `iobroker`.ts_string (id, ts, val, ack, _from, q) VALUES(1, 1620054476093, '3', 1, 0, 0);
    2021-05-03 17:57:27.314 - debug: sql.0 (15961) sendTo "storeState" to system.adapter.javascript.0 from system.adapter.sql.0
    

    Vielleicht kann sich @apollon77 sich das mal anschauen?

    Verwendete Befehle:

    sendTo('sql.0', 'query', 'Insert into iobroker.datapoints (name,type) VALUES ("0_userdata.0.Power1","0"); ', function (result) {
        if (result.error) {
            console.error(result.error);
        } else {
            // show result
             console.log('Rows: ' + JSON.stringify(result.result));
        }
    });
    
    sendTo('sql.0', 'storeState', {id: '0_userdata.0.Power1', state: {val: 3, ts: 1620054476092,ack:true}}
    , result => console.log('gespeichert'));
    
    
    apollon77A Offline
    apollon77A Offline
    apollon77
    schrieb am zuletzt editiert von
    #6

    @mcu Also ne Insert query geht auch aber das geht dann noch mehr an allem vorbei ... da verspreche ich gar nix :-)

    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
    M 1 Antwort Letzte Antwort
    0
    • apollon77A apollon77

      Also ja, es geht nur IDs für die auch History aktiviert ist weil die Werte nur in der History landen (quasi am restlichen System vorbei - das ist primär dazu gedacht historische Werte bei einer Migration von einem History-System zu einem anderen (history->sql/influxdb oder so) zu übertragen.

      Was wollt Ihr denn damit anstellen? ;-))

      Zu dem Error nehme ich gern ein Issue beim Adapter das man es abfangen kann.

      Wenn ich es korrket verstehe geht das Speichern von einem wert mit

      sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.xxx.Gesamt', state: {val: 1, ts: 1619970069038}}, result => console.log('gespeichert'));
      

      mehrere Werte mit

      sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.xxx.Gesamt', state: [{val: 1, ts: 1619970069038}}, {...}], result => console.log('gespeichert'));
      
      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #7

      @apollon77 sagte in SQL - Wert per Script speichern:

      Was wollt Ihr denn damit anstellen? ;-))

      Ich möchte Werte in einen Datenpunkt schreiben mit einem veränderten (alten) ts.
      (Hintergrund: Wenn ich mal einen vergessen habe einzutragen, dass ich diesen dann mit dem richtigen ts eingetragen bekomme)
      Und dieser Datenpunkt will ich dann anzeigen lassen per flot.

      Geht das irgendwie anders?


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      apollon77A 1 Antwort Letzte Antwort
      0
      • apollon77A apollon77

        Also ja, es geht nur IDs für die auch History aktiviert ist weil die Werte nur in der History landen (quasi am restlichen System vorbei - das ist primär dazu gedacht historische Werte bei einer Migration von einem History-System zu einem anderen (history->sql/influxdb oder so) zu übertragen.

        Was wollt Ihr denn damit anstellen? ;-))

        Zu dem Error nehme ich gern ein Issue beim Adapter das man es abfangen kann.

        Wenn ich es korrket verstehe geht das Speichern von einem wert mit

        sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.xxx.Gesamt', state: {val: 1, ts: 1619970069038}}, result => console.log('gespeichert'));
        

        mehrere Werte mit

        sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.xxx.Gesamt', state: [{val: 1, ts: 1619970069038}}, {...}], result => console.log('gespeichert'));
        
        M Online
        M Online
        MCU
        schrieb am zuletzt editiert von
        #8

        @apollon77 Laut Adapter-Beschreibung:

        The given IDs are not checked against the ioBroker database and do not need to be set up there, but can only be accessed directly.

        Da kommt man schon auf die Idee, das keine Voraussetzungen notwendig sind. Vielleicht die Doku anpassen und den Hinweis auf die notwenige History-Einstellung (aktiv) erwähnen.
        Und gleich die Beispiele, die du oben schon angezeigt hast.
        Vielen Dank.

        NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

        1 Antwort Letzte Antwort
        0
        • apollon77A apollon77

          @mcu Also ne Insert query geht auch aber das geht dann noch mehr an allem vorbei ... da verspreche ich gar nix :-)

          M Online
          M Online
          MCU
          schrieb am zuletzt editiert von MCU
          #9

          @apollon77 Hatte ich nur zum Testen gemacht, da es kein 'ADD'-Befehl in dem Adapter gibt. So habe ich herausgefunden, dass es noch andere Abhängigkeiten geben muss.
          Die Daten werden aber so angelegt. Also es funktioniert.
          7f0062b7-96a0-4b7f-9f30-e8eee67191f7-image.png

          Offene Frage: Muss die History vom DP dauerhaft aktiv sein, um einen neuen Wert über die Befehle speichern zu können (denn dann werden ja sowieso automatisch alle Wert vom DP gespeichert in SQL-DB), oder nur einmalig beim Anlegen oder für das Anlegen von dem DP in der SQL-DB?

          NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

          apollon77A 1 Antwort Letzte Antwort
          0
          • bahnuhrB bahnuhr

            @apollon77 sagte in SQL - Wert per Script speichern:

            Was wollt Ihr denn damit anstellen? ;-))

            Ich möchte Werte in einen Datenpunkt schreiben mit einem veränderten (alten) ts.
            (Hintergrund: Wenn ich mal einen vergessen habe einzutragen, dass ich diesen dann mit dem richtigen ts eingetragen bekomme)
            Und dieser Datenpunkt will ich dann anzeigen lassen per flot.

            Geht das irgendwie anders?

            apollon77A Offline
            apollon77A Offline
            apollon77
            schrieb am zuletzt editiert von
            #10

            @bahnuhr Ne das ist ja ok

            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            bahnuhrB 1 Antwort Letzte Antwort
            0
            • M MCU

              @apollon77 Hatte ich nur zum Testen gemacht, da es kein 'ADD'-Befehl in dem Adapter gibt. So habe ich herausgefunden, dass es noch andere Abhängigkeiten geben muss.
              Die Daten werden aber so angelegt. Also es funktioniert.
              7f0062b7-96a0-4b7f-9f30-e8eee67191f7-image.png

              Offene Frage: Muss die History vom DP dauerhaft aktiv sein, um einen neuen Wert über die Befehle speichern zu können (denn dann werden ja sowieso automatisch alle Wert vom DP gespeichert in SQL-DB), oder nur einmalig beim Anlegen oder für das Anlegen von dem DP in der SQL-DB?

              apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #11

              @mcu Es wird nur das initialisiert was auch aktiviert ist. Alles andere "kennt" der Adapter nicht.

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              1 Antwort Letzte Antwort
              0
              • apollon77A apollon77

                @bahnuhr Ne das ist ja ok

                bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #12

                @apollon77 sagte in SQL - Wert per Script speichern:

                @bahnuhr Ne das ist ja ok

                Versteh ich jetzt nicht.

                Wenn ich einen Wert eintrage mit o.g. kleine Script wird dieser Wert ja in die Datenbank von sql geschrieben.
                Zumindest kann ich diesen auslesen (mit einem anderen Script.

                In dem Datenpunkt in iob werden diese Werte aber nicht angezeigt.


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                apollon77A 1 Antwort Letzte Antwort
                0
                • bahnuhrB bahnuhr

                  @apollon77 sagte in SQL - Wert per Script speichern:

                  @bahnuhr Ne das ist ja ok

                  Versteh ich jetzt nicht.

                  Wenn ich einen Wert eintrage mit o.g. kleine Script wird dieser Wert ja in die Datenbank von sql geschrieben.
                  Zumindest kann ich diesen auslesen (mit einem anderen Script.

                  In dem Datenpunkt in iob werden diese Werte aber nicht angezeigt.

                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #13

                  @bahnuhr Ich hab nur gemeint das der Anwendungsfall ok ist das Feature zu nutzen

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • bahnuhrB Online
                    bahnuhrB Online
                    bahnuhr
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #14

                    Ne andere Frage zu sql.

                    Wenn ich mit einem kleinen Script den ts ausrechne, klappt dies einwandfrei mit folgender Ausnahme:

                    Wenn das Datum vor 2000 liegt, dann wird offensichtlich ein falscher ts erzeugt.
                    Wenn ich diesen erzeugten ts eingebe im Internet scheint er aber richtig zu sein.
                    Nur in einem flot erscheint der Punkt nicht !?

                    Script:

                    var theDate = new Date("30 december 1999");
                                if (logging) log (theDate.getTime());
                    

                    Warum ist der ts bei Daten vor 2000 falsch (oder zumindest im flot) ?
                    Oder was muss man anders machen.
                    Oder liegt es an flot ?


                    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                    Danke.
                    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                    ScreenToGif :https://www.screentogif.com/downloads.html

                    apollon77A 1 Antwort Letzte Antwort
                    0
                    • bahnuhrB bahnuhr

                      Ne andere Frage zu sql.

                      Wenn ich mit einem kleinen Script den ts ausrechne, klappt dies einwandfrei mit folgender Ausnahme:

                      Wenn das Datum vor 2000 liegt, dann wird offensichtlich ein falscher ts erzeugt.
                      Wenn ich diesen erzeugten ts eingebe im Internet scheint er aber richtig zu sein.
                      Nur in einem flot erscheint der Punkt nicht !?

                      Script:

                      var theDate = new Date("30 december 1999");
                                  if (logging) log (theDate.getTime());
                      

                      Warum ist der ts bei Daten vor 2000 falsch (oder zumindest im flot) ?
                      Oder was muss man anders machen.
                      Oder liegt es an flot ?

                      apollon77A Offline
                      apollon77A Offline
                      apollon77
                      schrieb am zuletzt editiert von
                      #15

                      @bahnuhr was kommt da denn für ein Wert raus?

                      Kann es sein das der kleiner als 946681200000 wird?

                      WIr haben vor einigen Jahren mal intern die Daten von "Zeitstempel in Sekunden" auf "Zeistempel in Millisekunden" umgestellt.
                      Die Erkennung läuft so:

                      Wenn Wert < 946681200000 dann annahme es ist in Sekunden und wir nehmen wert intern "*1000"

                      Daher wenn du nen Wert < 946681200000 hast mache ihn / 1000 (der code korrigiert das dann)

                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                      bahnuhrB 1 Antwort Letzte Antwort
                      0
                      • apollon77A apollon77

                        @bahnuhr was kommt da denn für ein Wert raus?

                        Kann es sein das der kleiner als 946681200000 wird?

                        WIr haben vor einigen Jahren mal intern die Daten von "Zeitstempel in Sekunden" auf "Zeistempel in Millisekunden" umgestellt.
                        Die Erkennung läuft so:

                        Wenn Wert < 946681200000 dann annahme es ist in Sekunden und wir nehmen wert intern "*1000"

                        Daher wenn du nen Wert < 946681200000 hast mache ihn / 1000 (der code korrigiert das dann)

                        bahnuhrB Online
                        bahnuhrB Online
                        bahnuhr
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von bahnuhr
                        #16

                        @apollon77 sagte in SQL - Wert per Script speichern:

                        Daher wenn du nen Wert < 946681200000 hast mache ihn / 1000 (der code korrigiert das dann)

                        Klappt nicht.
                        Im Script habe ich folgendes eingebaut:

                                    ts_wert = theDate.getTime();
                                    if (ts_wert < 946681200000) { ts_wert = ts_wert / 1000 };
                        

                        Wie du im log sieht, schreibe ich Werte bis 1995 zurück. Und der ts wird durch 1000 geteilt.

                        javascript.0	2021-05-05 19:25:19.790	info	(21611) script.js.Scripte.Sonstige.abc: 912380400
                        javascript.0	2021-05-05 19:25:19.790	info	(21611) script.js.Scripte.Sonstige.abc: 21 -164.5 -143.5
                        javascript.0	2021-05-05 19:25:19.790	info	(21611) script.js.Scripte.Sonstige.abc: 30 november 1998
                        javascript.0	2021-05-05 19:25:19.789	info	(21611) script.js.Scripte.Sonstige.abc: 909702000
                        javascript.0	2021-05-05 19:25:19.789	info	(21611) script.js.Scripte.Sonstige.abc: 15.3 -165.2 -149.9
                        javascript.0	2021-05-05 19:25:19.789	info	(21611) script.js.Scripte.Sonstige.abc: 30 october 1998
                        javascript.0	2021-05-05 19:25:19.788	info	(21611) script.js.Scripte.Sonstige.abc: 907106400
                        javascript.0	2021-05-05 19:25:19.788	info	(21611) script.js.Scripte.Sonstige.abc: 20.7 -180.4 -159.7
                        javascript.0	2021-05-05 19:25:19.788	info	(21611) script.js.Scripte.Sonstige.abc: 30 september 1998
                        javascript.0	2021-05-05 19:25:19.787	info	(21611) script.js.Scripte.Sonstige.abc: 904428000
                        javascript.0	2021-05-05 19:25:19.787	info	(21611) script.js.Scripte.Sonstige.abc: 19.4 -181.4 -162
                        javascript.0	2021-05-05 19:25:19.786	info	(21611) script.js.Scripte.Sonstige.abc: 30 august 1998
                        javascript.0	2021-05-05 19:25:19.786	info	(21611) script.js.Scripte.Sonstige.abc: 901749600
                        javascript.0	2021-05-05 19:25:19.785	info	(21611) script.js.Scripte.Sonstige.abc: 43.7 -181.9 -138.2
                        javascript.0	2021-05-05 19:25:19.785	info	(21611) script.js.Scripte.Sonstige.abc: 30 july 1998
                        javascript.0	2021-05-05 19:25:19.785	info	(21611) script.js.Scripte.Sonstige.abc: 899157600
                        javascript.0	2021-05-05 19:25:19.784	info	(21611) script.js.Scripte.Sonstige.abc: 40.6 -182.6 -142
                        javascript.0	2021-05-05 19:25:19.784	info	(21611) script.js.Scripte.Sonstige.abc: 30 june 1998
                        javascript.0	2021-05-05 19:25:19.783	info	(21611) script.js.Scripte.Sonstige.abc: 896479200
                        javascript.0	2021-05-05 19:25:19.783	info	(21611) script.js.Scripte.Sonstige.abc: 36.2 -188.3 -152.1
                        javascript.0	2021-05-05 19:25:19.783	info	(21611) script.js.Scripte.Sonstige.abc: 30 may 1998
                        javascript.0	2021-05-05 19:25:19.782	info	(21611) script.js.Scripte.Sonstige.abc: 893887200
                        javascript.0	2021-05-05 19:25:19.782	info	(21611) script.js.Scripte.Sonstige.abc: 33.7 -188.8 -155.1
                        javascript.0	2021-05-05 19:25:19.782	info	(21611) script.js.Scripte.Sonstige.abc: 30 april 1998
                        

                        Im flot werden diese jedoch nicht angezeigt.
                        56ef46e3-f369-4907-ab09-d6c478f7d105-image.png
                        Alles was älter als 2000 ist kommt nicht in flot an.

                        Muss ich noch etwas anderes beachten?


                        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                        Danke.
                        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                        ScreenToGif :https://www.screentogif.com/downloads.html

                        1 Antwort Letzte Antwort
                        0
                        • bahnuhrB Online
                          bahnuhrB Online
                          bahnuhr
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #17

                          @apollon77

                          Nachtrag:

                          Wenn ich die gespeicherten Werte per Script abrufe:

                          sendTo('sql.0', 'query', 'SELECT id FROM datapoints WHERE name="javascript.0.Sonstige.xxxxxx"', function (result) {
                              if (result.error) {
                                  console.error(result.error);
                              } else {
                                  console.log('Rows: ' + JSON.stringify(result.result));
                                  var now = new Date();
                                  now.setHours(-10000000);
                                  sendTo('sql.0', 'query', 'SELECT * FROM ts_number WHERE id=' + result.result[0].id, function (result) {
                                      console.log('Rows: ' + JSON.stringify(result.result));
                                  });
                              }
                          });
                          

                          dann wird ausgegeben:

                          {"id":177,"ts":820278000000,"val":-366.7,"ack":1,"_from":0,"q":0},{"id":177,"ts":822956400000,"val":-388.9,"ack":1,"_from":0,"q":0},{"id":177,"ts":825462000000,"val":-411.1,"ack":1,"_from":0,"q":0},{"id":177,"ts":828140400000,"val":-411.1,"ack":1,"_from":0,"q":0},{"id":177,"ts":830815200000,"val":-410.5,"ack":1,"_from":0,"q":0},{"id":177,"ts":833407200000,"val":-409.9,"ack":1,"_from":0,"q":0},{"id":177,"ts":836085600000,"val":-329.5,"ack":1,"_from":0,"q":0},{"id":177,"ts":838677600000,"val":-329.4,"ack":1,"_from":0,"q":0},{"id":177,"ts":841356000000,"val":-323.7,"ack":1,"_from":0,"q":0},{"id":177,"ts":844034400000,"val":-300.3,"ack":1,"_from":0,"q":0},{"id":177,"ts":846630000000,"val":-293.7,"ack":1,"_from":0,"q":0},{"id":177,"ts":849308400000,"val":-283.4,"ack":1,"_from":0,"q":0},{"id":177,"ts":851900400000,"val":-267.7,"ack":1,"_from":0,"q":0},{"id":177,"ts":854578800000,"val":-267.3,"ack":1,"_from":0,"q":0},{"id":177,"ts":857084400000,"val":-261.5,"ack":1,"_from":0,"q":0},{"id":177,"ts":859676400000,"val":-251.2,"ack":1,"_from":0,"q":0},{"id":177,"ts":862351200000,"val":-245.7,"ack":1,"_from":0,"q":0},{"id":177,"ts":864943200000,"val":-245.1,"ack":1,"_from":0,"q":0},{"id":177,"ts":867621600000,"val":-236.4,"ack":1,"_from":0,"q":0},{"id":177,"ts":870213600000,"val":-236.9,"ack":1,"_from":0,"q":0},{"id":177,"ts":872892000000,"val":-235.6,"ack":1,"_from":0,"q":0},{"id":177,"ts":875570400000,"val":-228.1,"ack":1,"_from":0,"q":0},{"id":177,"ts":878166000000,"val":-227.4,"ack":1,"_from":0,"q":0},{"id":177,"ts":880844400000,"val":-216.7,"ack":1,"_from":0,"q":0},
                          

                          Folglich werden (wei von apollon gesagt) die 3x 0 wieder angehängt.

                          Aber die Werte kommen trotzdem in flot nicht an (siehe oben).

                          Liegt das Problem bei flot (und nicht bei sql) ??


                          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                          Danke.
                          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                          ScreenToGif :https://www.screentogif.com/downloads.html

                          1 Antwort Letzte Antwort
                          0
                          • bahnuhrB Online
                            bahnuhrB Online
                            bahnuhr
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #18

                            Hallo an alle.

                            Nochmal die Frage ganz konkret.

                            Werte vor 01.01.2000 werden in sql gespeichert.
                            Wie bekommt man es hin, dass diese auch angezeigt werden in flot ?


                            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                            Danke.
                            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                            ScreenToGif :https://www.screentogif.com/downloads.html

                            1 Antwort Letzte Antwort
                            0
                            • apollon77A Offline
                              apollon77A Offline
                              apollon77
                              schrieb am zuletzt editiert von
                              #19

                              Ich könnte mir vorstellen das das hier der Grund ist

                              https://github.com/ioBroker/ioBroker.sql/blob/c4df5fa0e25610dfcb3e245f8140331dea35022f/main.js#L1858-L1861

                              Das denke ich macht keinen Sinn weil die Daten ja aus der DB kommen.

                              Nimm das mal bitte Testweise bei dir raus. tuts dann?

                              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                              F bahnuhrB 2 Antworten Letzte Antwort
                              0
                              • apollon77A apollon77

                                Ich könnte mir vorstellen das das hier der Grund ist

                                https://github.com/ioBroker/ioBroker.sql/blob/c4df5fa0e25610dfcb3e245f8140331dea35022f/main.js#L1858-L1861

                                Das denke ich macht keinen Sinn weil die Daten ja aus der DB kommen.

                                Nimm das mal bitte Testweise bei dir raus. tuts dann?

                                F Offline
                                F Offline
                                fastfoot
                                schrieb am zuletzt editiert von
                                #20

                                @apollon77 sagte in SQL - Wert per Script speichern:

                                ...weil die Daten ja aus der DB kommen.

                                das macht auch anders keinen Sinn, die Prüfung müsste auf < 946681200 lauten, nicht < 946681200000. Auch 946681199999 sind immer noch ms

                                iobroker läuft unter Docker auf QNAP TS-451+
                                SkriptRecovery: https://forum.iobroker.net/post/930558

                                1 Antwort Letzte Antwort
                                0
                                • apollon77A apollon77

                                  Ich könnte mir vorstellen das das hier der Grund ist

                                  https://github.com/ioBroker/ioBroker.sql/blob/c4df5fa0e25610dfcb3e245f8140331dea35022f/main.js#L1858-L1861

                                  Das denke ich macht keinen Sinn weil die Daten ja aus der DB kommen.

                                  Nimm das mal bitte Testweise bei dir raus. tuts dann?

                                  bahnuhrB Online
                                  bahnuhrB Online
                                  bahnuhr
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #21

                                  @apollon77
                                  @fastfoot

                                  Habe etliches funktioniert.
                                  Folgendes Testscript:

                                  // Wert schreiben
                                      var theDate = new Date("30 june 1999");
                                      var ts_wert = theDate.getTime();
                                      log (ts_wert);
                                      if (ts_wert < 946681200000) { ts_wert = ts_wert / 1000 };
                                      log (ts_wert);
                                      sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.testsql', state: {val: -80, ts: ts_wert, ack:true}});
                                  

                                  Wenn ich durch 1000 teile (9 Stellen), werden in sql 3x0 automatisch angehängt (also dann wieder 12 Stellen).
                                  Wenn ich * 1000 nehme, dann werden nochmals 3x0 angehängt (also dann 15 Stellen).

                                  Wenn ich alle Werte abrufe sieht man dies:

                                  19:07:23.372	info	javascript.0 (31981) script.js.Scripte.test5: Rows: [{"id":179,"ts":930693600000,"val":-80,"ack":1,"_from":0,"q":0},{"id":179,"ts":1620666302479,"val":30,"ack":0,"_from":16,"q":0},{"id":179,"ts":930693600000000,"val":-80,"ack":1,"_from":0,"q":0}]
                                  

                                  Aber in flot erscheint am 30.06.1999 kein Wert:
                                  163a8c68-cda5-4e77-bf1c-e32e43aaebb8-image.png

                                  Fazit für mich:
                                  /1000 teilen und sql setzt 3x0 dazu. Bei Abfrage der Daten scheint der Wert richtig zu sein.
                                  Aber in flot kommt dies nicht an.

                                  mfg
                                  Dieter


                                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                  Danke.
                                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                  ScreenToGif :https://www.screentogif.com/downloads.html

                                  apollon77A 1 Antwort Letzte Antwort
                                  0
                                  • bahnuhrB bahnuhr

                                    @apollon77
                                    @fastfoot

                                    Habe etliches funktioniert.
                                    Folgendes Testscript:

                                    // Wert schreiben
                                        var theDate = new Date("30 june 1999");
                                        var ts_wert = theDate.getTime();
                                        log (ts_wert);
                                        if (ts_wert < 946681200000) { ts_wert = ts_wert / 1000 };
                                        log (ts_wert);
                                        sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.testsql', state: {val: -80, ts: ts_wert, ack:true}});
                                    

                                    Wenn ich durch 1000 teile (9 Stellen), werden in sql 3x0 automatisch angehängt (also dann wieder 12 Stellen).
                                    Wenn ich * 1000 nehme, dann werden nochmals 3x0 angehängt (also dann 15 Stellen).

                                    Wenn ich alle Werte abrufe sieht man dies:

                                    19:07:23.372	info	javascript.0 (31981) script.js.Scripte.test5: Rows: [{"id":179,"ts":930693600000,"val":-80,"ack":1,"_from":0,"q":0},{"id":179,"ts":1620666302479,"val":30,"ack":0,"_from":16,"q":0},{"id":179,"ts":930693600000000,"val":-80,"ack":1,"_from":0,"q":0}]
                                    

                                    Aber in flot erscheint am 30.06.1999 kein Wert:
                                    163a8c68-cda5-4e77-bf1c-e32e43aaebb8-image.png

                                    Fazit für mich:
                                    /1000 teilen und sql setzt 3x0 dazu. Bei Abfrage der Daten scheint der Wert richtig zu sein.
                                    Aber in flot kommt dies nicht an.

                                    mfg
                                    Dieter

                                    apollon77A Offline
                                    apollon77A Offline
                                    apollon77
                                    schrieb am zuletzt editiert von
                                    #22

                                    @bahnuhr hä?!! Hast du mal die con mir genannten Zeilen bei dir entfernt und Adapter sql neu gestartet??

                                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                    bahnuhrB 1 Antwort Letzte Antwort
                                    0
                                    • apollon77A apollon77

                                      @bahnuhr hä?!! Hast du mal die con mir genannten Zeilen bei dir entfernt und Adapter sql neu gestartet??

                                      bahnuhrB Online
                                      bahnuhrB Online
                                      bahnuhr
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #23

                                      @apollon77

                                      So, alle Daten in sql gelöscht.
                                      Beim lesen der Werte kommt nur ein leeres Array:
                                      69099711-8a6b-4b23-a1ed-6db82ae4ed7f-image.png

                                      SQL neu gestartet.

                                      Dann folgendes Script (ohne Prüfung < ....):

                                         var theDate = new Date("30 june 1999");
                                          var ts_wert = theDate.getTime();
                                          log (ts_wert);
                                          //if (ts_wert < 946681200000) { ts_wert = ts_wert / 1000 };
                                          //log (ts_wert);
                                          sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.testsql', state: {val: -80, ts: ts_wert, ack:true}});
                                      

                                      Beim Lesen der Werte kommt nun:

                                      21:38:04.119	info	javascript.0 (31981) script.js.Scripte.test5: Rows: [{"id":179,"ts":930693600000000,"val":-80,"ack":1,"_from":0,"q":0}]
                                      

                                      15 Stellen (kann das richtig sein ???

                                      Und in flot kommt auch nichts an !


                                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                      Danke.
                                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                      ScreenToGif :https://www.screentogif.com/downloads.html

                                      F apollon77A 2 Antworten Letzte Antwort
                                      0
                                      • bahnuhrB bahnuhr

                                        @apollon77

                                        So, alle Daten in sql gelöscht.
                                        Beim lesen der Werte kommt nur ein leeres Array:
                                        69099711-8a6b-4b23-a1ed-6db82ae4ed7f-image.png

                                        SQL neu gestartet.

                                        Dann folgendes Script (ohne Prüfung < ....):

                                           var theDate = new Date("30 june 1999");
                                            var ts_wert = theDate.getTime();
                                            log (ts_wert);
                                            //if (ts_wert < 946681200000) { ts_wert = ts_wert / 1000 };
                                            //log (ts_wert);
                                            sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.testsql', state: {val: -80, ts: ts_wert, ack:true}});
                                        

                                        Beim Lesen der Werte kommt nun:

                                        21:38:04.119	info	javascript.0 (31981) script.js.Scripte.test5: Rows: [{"id":179,"ts":930693600000000,"val":-80,"ack":1,"_from":0,"q":0}]
                                        

                                        15 Stellen (kann das richtig sein ???

                                        Und in flot kommt auch nichts an !

                                        F Offline
                                        F Offline
                                        fastfoot
                                        schrieb am zuletzt editiert von
                                        #24

                                        @bahnuhr sagte in SQL - Wert per Script speichern:

                                        15 Stellen (kann das richtig sein ???
                                        Und in flot kommt auch nichts an !

                                        verantwortlich für die 15 Stellen sind die Zeilen 1543 - 1547. Aber auch nach Auskommentierung dieser Zeilen (die Zeit steht dann richtig in der DB) bekomme ich in Flot kein Ergebnis. Letztlich ist es das gleiche Ergebnis welches Du schon mit der Division durch 1000 im Skript erreicht hattest. Ich würde meinen dass Flot hier ein Problem hat

                                        iobroker läuft unter Docker auf QNAP TS-451+
                                        SkriptRecovery: https://forum.iobroker.net/post/930558

                                        bahnuhrB 1 Antwort Letzte Antwort
                                        0
                                        • F fastfoot

                                          @bahnuhr sagte in SQL - Wert per Script speichern:

                                          15 Stellen (kann das richtig sein ???
                                          Und in flot kommt auch nichts an !

                                          verantwortlich für die 15 Stellen sind die Zeilen 1543 - 1547. Aber auch nach Auskommentierung dieser Zeilen (die Zeit steht dann richtig in der DB) bekomme ich in Flot kein Ergebnis. Letztlich ist es das gleiche Ergebnis welches Du schon mit der Division durch 1000 im Skript erreicht hattest. Ich würde meinen dass Flot hier ein Problem hat

                                          bahnuhrB Online
                                          bahnuhrB Online
                                          bahnuhr
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von bahnuhr
                                          #25

                                          @fastfoot sagte in SQL - Wert per Script speichern:

                                          Ich würde meinen dass Flot hier ein Problem hat

                                          sehe ich auch so.
                                          Und hatte ich ja oben schon vermerkt.

                                          Ist jetzt nur die Frage, wer kann da helfen ?
                                          @apollon77 ?? - noch ne Idee


                                          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                          Danke.
                                          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                          ScreenToGif :https://www.screentogif.com/downloads.html

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          525

                                          Online

                                          32.6k

                                          Benutzer

                                          81.9k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe