Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter History 2.0.0

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    216

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    7.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Test Adapter History 2.0.0

Test Adapter History 2.0.0

Scheduled Pinned Locked Moved Tester
100 Posts 12 Posters 8.4k Views 12 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Sneak-L8

    @apollon77 Ich glaube ihm ist nicht klar, dass alle Daten in einem Json (pro Tag) gehalten werden. Also nicht nur der State den er einal am Tag speichert. Wenn die Werte dieses States das einzige sind, was in der Hostiry liegt, dann sollte es tatschlich kein Problem sein.
    @Marty56 Wenn da aber auch andere States geloggt werden, dann landen die mit den von Dir angesprochennen Werten zusammen in einer Json-Datei pro Tag. Die werden also auch alle mitgelesen (und gefiltert), um die Auswertung zu machen. Ist halt keine Datenbank.

    HomoranH Offline
    HomoranH Offline
    Homoran
    Global Moderator Administrators
    wrote on last edited by
    #75

    @sneak-l8 sagte in Test Adapter History 2.0.0:

    dann landen die mit den von Dir angesprochennen Werten zusammen in einer Json-Datei pro Tag

    du hast pro Tag und Datenpunkt ein eigenes json

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Reply Last reply
    0
    • paul53P paul53

      @sneak-l8 sagte: zusammen in einer Json-Datei pro Tag.

      Bisher war es eine Json-Datei pro Datenpunkt und Tag. Hat sich das geändert?

      apollon77A Offline
      apollon77A Offline
      apollon77
      wrote on last edited by
      #76

      @paul53 Ne hat sich nicht geändert. Ein File pro Datenpunkt pro Tag

      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 Reply Last reply
      0
      • S Sneak-L8

        @apollon77 Ich glaube ihm ist nicht klar, dass alle Daten in einem Json (pro Tag) gehalten werden. Also nicht nur der State den er einal am Tag speichert. Wenn die Werte dieses States das einzige sind, was in der Hostiry liegt, dann sollte es tatschlich kein Problem sein.
        @Marty56 Wenn da aber auch andere States geloggt werden, dann landen die mit den von Dir angesprochennen Werten zusammen in einer Json-Datei pro Tag. Die werden also auch alle mitgelesen (und gefiltert), um die Auswertung zu machen. Ist halt keine Datenbank.

        M Offline
        M Offline
        Marty56
        wrote on last edited by Marty56
        #77

        @sneak-l8 Ich habe das Verzeichnis angeschaut, in der die History ihre Jsons ablegt und bei mir wird nur dann eine Datei angelegt, wenn sich der Datenpunkt ändert.

        Das wären in meinem Beispiel bei 10 Jahren, genau 10 Files, die die Jahreswerte speichern und 240 files, für die Monatswerte.

        Muss ich woanders schauen?
        Ich habe unter /opt/iobroker/history geschaut. IOB läuft unter Linux

        HW:NUC (16 GB Ram)
        OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

        paul53P 1 Reply Last reply
        1
        • M Marty56

          @sneak-l8 Ich habe das Verzeichnis angeschaut, in der die History ihre Jsons ablegt und bei mir wird nur dann eine Datei angelegt, wenn sich der Datenpunkt ändert.

          Das wären in meinem Beispiel bei 10 Jahren, genau 10 Files, die die Jahreswerte speichern und 240 files, für die Monatswerte.

          Muss ich woanders schauen?
          Ich habe unter /opt/iobroker/history geschaut. IOB läuft unter Linux

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #78

          @marty56 sagte: Ich habe unter /opt/iobroker/history geschaut.

          Laut Doku:

          Ohne Angabe eines Speicherverzeichnisses wird der Ordner /opt/iobroker/iobroker-data/history automatisch angelegt

          Dort befinden sich Ordner mit dem Datum.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          M 1 Reply Last reply
          0
          • paul53P paul53

            @marty56 sagte: Ich habe unter /opt/iobroker/history geschaut.

            Laut Doku:

            Ohne Angabe eines Speicherverzeichnisses wird der Ordner /opt/iobroker/iobroker-data/history automatisch angelegt

            Dort befinden sich Ordner mit dem Datum.

            M Offline
            M Offline
            Marty56
            wrote on last edited by Marty56
            #79

            @paul53 Danke.
            Ich habe gerade bemerkt, dass ich den Ordner nach /opt/iobroker/history konfiguriert habe.

            Was mich aber zur eigentlich Frage bringt, wie viele Jsons Files werden angelegt.
            m.M. Ich habe unter der Option "trotzdem gleiche Werte aufzeichnen (Sekunden)" immer "0" angegeben. Vielleicht liegt es daran, dass bei mir nicht pro Tag ein Json mit dem konstanten Wert abgelegt wird, sondern nur ein Json an dem Tag bzw. der Zeit, wenn es sich geändert hat.

            HW:NUC (16 GB Ram)
            OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

            apollon77A 1 Reply Last reply
            0
            • M Marty56

              @paul53 Danke.
              Ich habe gerade bemerkt, dass ich den Ordner nach /opt/iobroker/history konfiguriert habe.

              Was mich aber zur eigentlich Frage bringt, wie viele Jsons Files werden angelegt.
              m.M. Ich habe unter der Option "trotzdem gleiche Werte aufzeichnen (Sekunden)" immer "0" angegeben. Vielleicht liegt es daran, dass bei mir nicht pro Tag ein Json mit dem konstanten Wert abgelegt wird, sondern nur ein Json an dem Tag bzw. der Zeit, wenn es sich geändert hat.

              apollon77A Offline
              apollon77A Offline
              apollon77
              wrote on last edited by
              #80

              @marty56 J natürlich. Wenn du wirklich so selten ändernde Daten hast mit den Einstellungen, dann ist deine Aussage korrekt

              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 Reply Last reply
              0
              • apollon77A apollon77

                @marty56 J natürlich. Wenn du wirklich so selten ändernde Daten hast mit den Einstellungen, dann ist deine Aussage korrekt

                M Offline
                M Offline
                Marty56
                wrote on last edited by
                #81

                @apollon77
                Ich schaffe es übrigens nicht, auch im Expertenmodus, beim History Adapter einen Wert zu ändern.
                Es kommt zwar eine Abfrage, in der der Wert geändert werden kann, aber die Werte werden nicht übernommen.
                Wäre schön, wenn man das fixen könnte.

                Außerdem schaffe ich es nicht, per Script in die History DB zu schreiben.
                Das Script läuft durch, macht aber nichts.

                const timestamp = new Date("2021-01-01 00:01:00.000").getTime();
                var value = 15
                sendTo('history.0', 'store', [
                    {id: 'javascript.0.strom.Erz_Energie_Jahr', ts: timestamp,val: value}
                ], result => console.log('stored'));
                

                Wie gesagt, die "Unkorrigierbarkeit" von Daten in der History DB ist für mich ein Issue und es wäre schön, wenn man da etwas machen könnte.

                HW:NUC (16 GB Ram)
                OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                apollon77A 1 Reply Last reply
                0
                • M Marty56

                  @apollon77
                  Ich schaffe es übrigens nicht, auch im Expertenmodus, beim History Adapter einen Wert zu ändern.
                  Es kommt zwar eine Abfrage, in der der Wert geändert werden kann, aber die Werte werden nicht übernommen.
                  Wäre schön, wenn man das fixen könnte.

                  Außerdem schaffe ich es nicht, per Script in die History DB zu schreiben.
                  Das Script läuft durch, macht aber nichts.

                  const timestamp = new Date("2021-01-01 00:01:00.000").getTime();
                  var value = 15
                  sendTo('history.0', 'store', [
                      {id: 'javascript.0.strom.Erz_Energie_Jahr', ts: timestamp,val: value}
                  ], result => console.log('stored'));
                  

                  Wie gesagt, die "Unkorrigierbarkeit" von Daten in der History DB ist für mich ein Issue und es wäre schön, wenn man da etwas machen könnte.

                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  wrote on last edited by
                  #82

                  @marty56 Zum Editieren. Bitte mal Debug Log aktivieren und Debug log zeigen von so einer editieraktion ... bei mir tat es die Tage

                  Zum storeState ... ... ... liess nochmal genau die Readme https://github.com/ioBroker/ioBroker.history/tree/master/docs/en#storestate ... store -> storeState

                  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 Reply Last reply
                  0
                  • apollon77A apollon77

                    @marty56 Zum Editieren. Bitte mal Debug Log aktivieren und Debug log zeigen von so einer editieraktion ... bei mir tat es die Tage

                    Zum storeState ... ... ... liess nochmal genau die Readme https://github.com/ioBroker/ioBroker.history/tree/master/docs/en#storestate ... store -> storeState

                    M Offline
                    M Offline
                    Marty56
                    wrote on last edited by
                    #83

                    @apollon77 Debug gibt keine weitere Ausgaben.

                    Die Syntax vermute ich nicht korrekt. Leider gibt die Dokumentation nichts dazu her.

                    HW:NUC (16 GB Ram)
                    OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                    M 1 Reply Last reply
                    0
                    • M Marty56

                      @apollon77 Debug gibt keine weitere Ausgaben.

                      Die Syntax vermute ich nicht korrekt. Leider gibt die Dokumentation nichts dazu her.

                      M Offline
                      M Offline
                      Marty56
                      wrote on last edited by
                      #84

                      @appollon

                      Vielleicht fragst Du Dich, warum will der den ganzen Quatsch.

                      Mein Use Case.
                      Ich habe zwei Balkendiagram meiner Solaranlage, die einmal Jahres bzw Monatsverbräuche darstellen sollen.
                      Jeweils am Monatsende schreibe ich einen Wert in das Monatsdiagramm bzw. Ende des Jahres in das Jahresdiagramm.

                      Was schön wäre, wenn der Wert für den noch nicht abgeschlossenen Zeitraum auch angezeigt würde.

                      Was ich also machen will, als Beispiel das Jahresdiagramm, jeden Tag für den 31.12. des Jahres einen Wert schreiben. Am nächsten Tag möchte ich den alten Wert für den 31.12. löschen und danach wieder mit dem (erhöhten) Wert neu schreiben.
                      In der DB ist also immer nur ein Wert pro Jahr und der soll upgedatet werden.

                      Ich hoffe, dass ist verständlich.

                      PS: was ich auch bemerkt habe, ist, dass die Beispiele in der Dokumentation auch syntaktisch nicht korrekt sind. z.B.

                      sendTo('sql.0', 'delete', [
                          {id: 'mbus.0.counter.xxx', state: {ts: 1589458809352}, 
                          {id: 'mbus.0.counter.yyy', state: {ts: 1589458809353}
                      ], result => console.log('deleted'));
                      code_text
                      

                      fehlen wohl die Klammern, also

                      
                      sendTo('sql.0', 'delete', [
                          {id: 'mbus.0.counter.xxx', state: {ts: 1589458809352}}, 
                          {id: 'mbus.0.counter.yyy', state: {ts: 1589458809353}}
                      ], result => console.log('deleted'));
                      

                      Ich habe mit verschiedenen Versionen der "store" oder "storeState" Commandos herumgespielt, die funktionieren aber alle nicht.

                      Was ich letztlich benötigen würde, ist ein Script Beispiel für die history.db

                      1. einen State zu löschen
                      2. einen State zu schreiben

                      HW:NUC (16 GB Ram)
                      OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                      M apollon77A 2 Replies Last reply
                      0
                      • M Marty56

                        @appollon

                        Vielleicht fragst Du Dich, warum will der den ganzen Quatsch.

                        Mein Use Case.
                        Ich habe zwei Balkendiagram meiner Solaranlage, die einmal Jahres bzw Monatsverbräuche darstellen sollen.
                        Jeweils am Monatsende schreibe ich einen Wert in das Monatsdiagramm bzw. Ende des Jahres in das Jahresdiagramm.

                        Was schön wäre, wenn der Wert für den noch nicht abgeschlossenen Zeitraum auch angezeigt würde.

                        Was ich also machen will, als Beispiel das Jahresdiagramm, jeden Tag für den 31.12. des Jahres einen Wert schreiben. Am nächsten Tag möchte ich den alten Wert für den 31.12. löschen und danach wieder mit dem (erhöhten) Wert neu schreiben.
                        In der DB ist also immer nur ein Wert pro Jahr und der soll upgedatet werden.

                        Ich hoffe, dass ist verständlich.

                        PS: was ich auch bemerkt habe, ist, dass die Beispiele in der Dokumentation auch syntaktisch nicht korrekt sind. z.B.

                        sendTo('sql.0', 'delete', [
                            {id: 'mbus.0.counter.xxx', state: {ts: 1589458809352}, 
                            {id: 'mbus.0.counter.yyy', state: {ts: 1589458809353}
                        ], result => console.log('deleted'));
                        code_text
                        

                        fehlen wohl die Klammern, also

                        
                        sendTo('sql.0', 'delete', [
                            {id: 'mbus.0.counter.xxx', state: {ts: 1589458809352}}, 
                            {id: 'mbus.0.counter.yyy', state: {ts: 1589458809353}}
                        ], result => console.log('deleted'));
                        

                        Ich habe mit verschiedenen Versionen der "store" oder "storeState" Commandos herumgespielt, die funktionieren aber alle nicht.

                        Was ich letztlich benötigen würde, ist ein Script Beispiel für die history.db

                        1. einen State zu löschen
                        2. einen State zu schreiben
                        M Offline
                        M Offline
                        Marty56
                        wrote on last edited by
                        #85

                        @apollon77

                        Ich habe mir die gewünschte Funktion jetzt zusammengebastelt. Sie funktioniert, ich bin aber nicht sicher, ob ich etwas übersehen habe oder ich mir irgendwelche unerwünschten Probleme damit einfange.
                        Expertenfeedback wäre sehr wünschenswert.

                        function write_history_db(id,date,value) {
                            const fs = require('fs/promises');
                            const path = require('path');
                            var filename = "history." + id + ".json"
                            var timestamp = new Date(date).getTime();
                            var folder = "/opt/iobroker/history/" + date.substring(0,10).replace("-","").replace("-","") + "/"
                            var data = [
                                            {
                                                "val": value,
                                                "ts": timestamp,
                                                "q": 0,
                                                "c": "script.js.common.Energie",
                                                "from": "system.adapter.javascript.0",
                                                "user": "system.user.admin"
                                            }
                                            ]
                            var filecontent = JSON.stringify(data)
                        
                            async function isExists(path) {
                            try {
                                await fs.access(path);
                                return true;
                            } catch {
                                return false;
                            }
                            };
                        
                            async function writeFile(filePath, data) {
                            try {
                                const dirname = path.dirname(filePath);
                                const exist = await isExists(dirname);
                                if (!exist) {
                                await fs.mkdir(dirname, {recursive: true});
                                }
                                
                                await fs.writeFile(filePath, data, 'utf8');
                            } catch (err) {
                                throw new Error(err);
                            }
                            }
                        
                            (async ()  => {
                                await writeFile(folder+filename, filecontent);
                            })();
                        }
                        write_history_db("javascript.0.strom.Erz_Energie_Jahr", "2022-12-31 12:00:00.000",3100)
                        

                        HW:NUC (16 GB Ram)
                        OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                        1 Reply Last reply
                        0
                        • apollon77A Offline
                          apollon77A Offline
                          apollon77
                          wrote on last edited by
                          #86

                          Also wenn sollten wir die Funktionen fixen und nicht Du anfangen am Adapter vorbei die Files zu editieren

                          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 Reply Last reply
                          0
                          • apollon77A Offline
                            apollon77A Offline
                            apollon77
                            wrote on last edited by
                            #87

                            @Marty56 Nochmal Frage: geht es denn per admin zu ändern?

                            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 Reply Last reply
                            0
                            • apollon77A Offline
                              apollon77A Offline
                              apollon77
                              wrote on last edited by
                              #88

                              So GitHub Verison 2.0.0 hat ein neues Feature bekommen (@Diginix) ... Die Retention time kann nun auch Custom in tagen definiert werden.

                              Bitte checken

                              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 Reply Last reply
                              0
                              • M Marty56

                                @appollon

                                Vielleicht fragst Du Dich, warum will der den ganzen Quatsch.

                                Mein Use Case.
                                Ich habe zwei Balkendiagram meiner Solaranlage, die einmal Jahres bzw Monatsverbräuche darstellen sollen.
                                Jeweils am Monatsende schreibe ich einen Wert in das Monatsdiagramm bzw. Ende des Jahres in das Jahresdiagramm.

                                Was schön wäre, wenn der Wert für den noch nicht abgeschlossenen Zeitraum auch angezeigt würde.

                                Was ich also machen will, als Beispiel das Jahresdiagramm, jeden Tag für den 31.12. des Jahres einen Wert schreiben. Am nächsten Tag möchte ich den alten Wert für den 31.12. löschen und danach wieder mit dem (erhöhten) Wert neu schreiben.
                                In der DB ist also immer nur ein Wert pro Jahr und der soll upgedatet werden.

                                Ich hoffe, dass ist verständlich.

                                PS: was ich auch bemerkt habe, ist, dass die Beispiele in der Dokumentation auch syntaktisch nicht korrekt sind. z.B.

                                sendTo('sql.0', 'delete', [
                                    {id: 'mbus.0.counter.xxx', state: {ts: 1589458809352}, 
                                    {id: 'mbus.0.counter.yyy', state: {ts: 1589458809353}
                                ], result => console.log('deleted'));
                                code_text
                                

                                fehlen wohl die Klammern, also

                                
                                sendTo('sql.0', 'delete', [
                                    {id: 'mbus.0.counter.xxx', state: {ts: 1589458809352}}, 
                                    {id: 'mbus.0.counter.yyy', state: {ts: 1589458809353}}
                                ], result => console.log('deleted'));
                                

                                Ich habe mit verschiedenen Versionen der "store" oder "storeState" Commandos herumgespielt, die funktionieren aber alle nicht.

                                Was ich letztlich benötigen würde, ist ein Script Beispiel für die history.db

                                1. einen State zu löschen
                                2. einen State zu schreiben
                                apollon77A Offline
                                apollon77A Offline
                                apollon77
                                wrote on last edited by
                                #89

                                @marty56 Ja klammern fehlen im beispiel. Ist schon gefixt.

                                storeState tut ... das machen auch die tests. zeig doch mal deine beispiele von uüdate oder delete (warum eigentloch nicht update?)

                                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 Reply Last reply
                                0
                                • apollon77A apollon77

                                  @marty56 Ja klammern fehlen im beispiel. Ist schon gefixt.

                                  storeState tut ... das machen auch die tests. zeig doch mal deine beispiele von uüdate oder delete (warum eigentloch nicht update?)

                                  M Offline
                                  M Offline
                                  Marty56
                                  wrote on last edited by Marty56
                                  #90

                                  @apollon77

                                  Das folgende Beispiel funktioniert nicht.

                                      var timestamp = new Date("2021-05-31 23:55:00.000").getTime();
                                      sendTo('history.0', 'storeState', [
                                          {id: 'javascript.0.Test', state: {ts: timestamp, val: 15, ack: true, q: 0}}, 
                                  
                                      ], result => console.log('deleted'));
                                  
                                      var timestamp = new Date("2021-05-31 23:55:00.000").getTime();
                                      sendTo('history.0', 'update', [
                                          {id: 'javascript.0.Test', state: {ts: timestamp, val: 15, ack: true, q: 0}}, 
                                  
                                      ], result => console.log('deleted'));
                                  

                                  Mit Version 2.0 ausprobiert. Alle Varianten oben funktionieren nicht.
                                  Hast Du es wirklich mit dem History Adapter ausprobiert? könnte mir vorstellen, dass mit SQL eher funktioniert.

                                  HW:NUC (16 GB Ram)
                                  OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                                  apollon77A 1 Reply Last reply
                                  0
                                  • M Marty56

                                    @apollon77

                                    Das folgende Beispiel funktioniert nicht.

                                        var timestamp = new Date("2021-05-31 23:55:00.000").getTime();
                                        sendTo('history.0', 'storeState', [
                                            {id: 'javascript.0.Test', state: {ts: timestamp, val: 15, ack: true, q: 0}}, 
                                    
                                        ], result => console.log('deleted'));
                                    
                                        var timestamp = new Date("2021-05-31 23:55:00.000").getTime();
                                        sendTo('history.0', 'update', [
                                            {id: 'javascript.0.Test', state: {ts: timestamp, val: 15, ack: true, q: 0}}, 
                                    
                                        ], result => console.log('deleted'));
                                    

                                    Mit Version 2.0 ausprobiert. Alle Varianten oben funktionieren nicht.
                                    Hast Du es wirklich mit dem History Adapter ausprobiert? könnte mir vorstellen, dass mit SQL eher funktioniert.

                                    apollon77A Offline
                                    apollon77A Offline
                                    apollon77
                                    wrote on last edited by
                                    #91

                                    @marty56 Also zu aller erst mal kann dein Code ggf gar nicht tun ... du speicherst den State und ZEITGLEICH sendest du das update.

                                    Beides wird aber asynchron verarbeitet.

                                    Weiterhin ... wie willst Du sehen ob das was tut? Das update setzt den gleichen Wert wie das "store" Uuund wenn Du das Skript nochmals ausführst hast Du danach zwei oder mehr Datenpunkte mit dem genannten Zeitstempel (wegen dem StoreState). Wenn Du dann ein Update sendest dann ändert er irgendeinen von denen.

                                    Die Adaptertests nutzen mindestens mal storeState aktuell in allen 3 Adaptern, also das Tut in jedem Fall!

                                    Zu Update und delete bitte checke ob es per Admin geht. Wenn ja dann geht es erstmal generell - aber auch hier bitte mit einem State der nicht mehrfach existiert zum gleichen Zeitstempel

                                    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 Reply Last reply
                                    0
                                    • apollon77A apollon77

                                      @marty56 Also zu aller erst mal kann dein Code ggf gar nicht tun ... du speicherst den State und ZEITGLEICH sendest du das update.

                                      Beides wird aber asynchron verarbeitet.

                                      Weiterhin ... wie willst Du sehen ob das was tut? Das update setzt den gleichen Wert wie das "store" Uuund wenn Du das Skript nochmals ausführst hast Du danach zwei oder mehr Datenpunkte mit dem genannten Zeitstempel (wegen dem StoreState). Wenn Du dann ein Update sendest dann ändert er irgendeinen von denen.

                                      Die Adaptertests nutzen mindestens mal storeState aktuell in allen 3 Adaptern, also das Tut in jedem Fall!

                                      Zu Update und delete bitte checke ob es per Admin geht. Wenn ja dann geht es erstmal generell - aber auch hier bitte mit einem State der nicht mehrfach existiert zum gleichen Zeitstempel

                                      M Offline
                                      M Offline
                                      Marty56
                                      wrote on last edited by Marty56
                                      #92

                                      @apollon77
                                      Ich habe natürlich die beiden Code Stücke nicht gleichzeitig ausgeführt! Das ist mir schon klar, dass das nicht möglich ist.

                                      Es waren nur Beispiele, die ich ausprobiert habe, mangels Dokumentation der Syntax.
                                      Also einmal

                                          var timestamp = new Date("2021-05-31 23:55:00.000").getTime();
                                          sendTo('history.0', 'storeState', [
                                              {id: 'javascript.0.Test', state: {ts: timestamp, val: 15, ack: true, q: 0}}, 
                                       
                                          ], result => console.log('deleted'));
                                       
                                      

                                      ausgeführt und dann nachgeschaut über die Admin Oberfläche, ob der Wert mit dem richtigen Wert und Timestamp gespeichert wird. Das ist nicht der Fall. Und dann habe noch die andere Varianten getestet und dann noch weitere. Funktionieren tut die alle nicht.

                                      Nochmal die Frage. Die meinst, dass der Code oben (nicht die zwei Teile hintereinander) den Wert "15" in den Datenpunkt 'javascript.0.Test' mit dem TimeStamp 31.5.2021 um 23:55 schreiben kann?

                                      Ich gebe auf und bleibe jetzt erst mal bei meiner direkten Bearbeitung der History Files. Das möchte ich eigentlich nicht, weil ich dadurch keine Möglichkeit habe, meinen Code leicht auf SQL umzustellen.

                                      HW:NUC (16 GB Ram)
                                      OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                                      M 1 Reply Last reply
                                      0
                                      • M Marty56

                                        @apollon77
                                        Ich habe natürlich die beiden Code Stücke nicht gleichzeitig ausgeführt! Das ist mir schon klar, dass das nicht möglich ist.

                                        Es waren nur Beispiele, die ich ausprobiert habe, mangels Dokumentation der Syntax.
                                        Also einmal

                                            var timestamp = new Date("2021-05-31 23:55:00.000").getTime();
                                            sendTo('history.0', 'storeState', [
                                                {id: 'javascript.0.Test', state: {ts: timestamp, val: 15, ack: true, q: 0}}, 
                                         
                                            ], result => console.log('deleted'));
                                         
                                        

                                        ausgeführt und dann nachgeschaut über die Admin Oberfläche, ob der Wert mit dem richtigen Wert und Timestamp gespeichert wird. Das ist nicht der Fall. Und dann habe noch die andere Varianten getestet und dann noch weitere. Funktionieren tut die alle nicht.

                                        Nochmal die Frage. Die meinst, dass der Code oben (nicht die zwei Teile hintereinander) den Wert "15" in den Datenpunkt 'javascript.0.Test' mit dem TimeStamp 31.5.2021 um 23:55 schreiben kann?

                                        Ich gebe auf und bleibe jetzt erst mal bei meiner direkten Bearbeitung der History Files. Das möchte ich eigentlich nicht, weil ich dadurch keine Möglichkeit habe, meinen Code leicht auf SQL umzustellen.

                                        M Offline
                                        M Offline
                                        Marty56
                                        wrote on last edited by
                                        #93

                                        @marty56
                                        so jetzt habe ich eine Millionen verschiedene Syntax Versionen ausprobiert.

                                            var timestamp = new Date("2022-05-06 23:55:00.000").getTime();
                                            sendTo('history.0', 'storeState', 
                                                {
                                                    'id': 'javascript.0.Test', 
                                                    'state': {'ts': timestamp, 'val': 1}
                                                } 
                                            , result => console.log('deleted'));
                                        

                                        funktioniert.

                                        Schade, ein kleines bisschen Dokumentation hätte mir viel Zeit erspar!

                                        HW:NUC (16 GB Ram)
                                        OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                                        M apollon77A 2 Replies Last reply
                                        0
                                        • M Marty56

                                          @marty56
                                          so jetzt habe ich eine Millionen verschiedene Syntax Versionen ausprobiert.

                                              var timestamp = new Date("2022-05-06 23:55:00.000").getTime();
                                              sendTo('history.0', 'storeState', 
                                                  {
                                                      'id': 'javascript.0.Test', 
                                                      'state': {'ts': timestamp, 'val': 1}
                                                  } 
                                              , result => console.log('deleted'));
                                          

                                          funktioniert.

                                          Schade, ein kleines bisschen Dokumentation hätte mir viel Zeit erspar!

                                          M Offline
                                          M Offline
                                          Marty56
                                          wrote on last edited by
                                          #94

                                          Funktioniert leider nicht zuverlässig.
                                          Ich gebe auf. Das ist Zeitverschwendung.

                                          HW:NUC (16 GB Ram)
                                          OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                                          apollon77A 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          47

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe