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

  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter History 2.0.0

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Test Adapter History 2.0.0

Geplant Angeheftet Gesperrt Verschoben Tester
100 Beiträge 12 Kommentatoren 8.4k Aufrufe 12 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.
  • apollon77A Offline
    apollon77A Offline
    apollon77
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antworten Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • M Marty56

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

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

                    @marty56 sagte in Test Adapter History 2.0.0:

                    Funktioniert leider nicht zuverlässig.

                    Das heisst?

                    Wie prüfst Du es denn? Indem Du schaust ob es im File steht? Kann es sein das es nicht gespeichert wurde weil du mehrere Datensätze im RAM hälst? Dann wird es nach spätestens 10 Mins gespeichert. Oder was ist dein Problem?

                    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
                    • 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!

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

                      @marty56 Also storeState kann drei varianten:

                      • Wenn das Message Objekt (der parameter nach storeState) ein Array ist dann kann man mehrere "id + jeweils ein State Objekt" speichern
                      • Wenn message.state ein Array ist dann kann man mehrere States für eine ID speichern
                      • Sanst ist der Call für eine ID mit einem State in einem Objekt.

                      Wenn du mich sosoooo lieb fragst kann ich das gern mal noch in die Doku aufnehmen

                      Ergo: Dein Code von oben muss genauso tun wie der jetzt hier.

                      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

                        @marty56 Also storeState kann drei varianten:

                        • Wenn das Message Objekt (der parameter nach storeState) ein Array ist dann kann man mehrere "id + jeweils ein State Objekt" speichern
                        • Wenn message.state ein Array ist dann kann man mehrere States für eine ID speichern
                        • Sanst ist der Call für eine ID mit einem State in einem Objekt.

                        Wenn du mich sosoooo lieb fragst kann ich das gern mal noch in die Doku aufnehmen

                        Ergo: Dein Code von oben muss genauso tun wie der jetzt hier.

                        M Offline
                        M Offline
                        Marty56
                        schrieb am zuletzt editiert von Marty56
                        #97

                        @apollon77 Danke, eine bessere Doku wäre wirklich super.

                        Außerdem der Code oben funktioniert so nicht, wenn derselbe Datenpunkt zur selben Zeit schon vorhanden ist. Dann muss man den erst vorher löschen.

                        Ich habe jetzt hingefummelt und es scheint zu funktionieren. Mal sehn, ob's hält.

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

                        M 1 Antwort Letzte Antwort
                        0
                        • M Marty56

                          @apollon77 Danke, eine bessere Doku wäre wirklich super.

                          Außerdem der Code oben funktioniert so nicht, wenn derselbe Datenpunkt zur selben Zeit schon vorhanden ist. Dann muss man den erst vorher löschen.

                          Ich habe jetzt hingefummelt und es scheint zu funktionieren. Mal sehn, ob's hält.

                          M Offline
                          M Offline
                          Marty56
                          schrieb am zuletzt editiert von Marty56
                          #98

                          @apollon77

                          Kleiner Bug bei V2.0

                          Wenn man sich die Verlaufsdaten anschauen möchte, kann man nicht scrollen.
                          Getestet mit Safari unter MacOS Monterey

                          Bildschirmfoto 2022-05-11 um 04.41.26.png

                          Soll ich einen Github Issue anlegen?

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

                          apollon77A 1 Antwort Letzte Antwort
                          0
                          • M Marty56

                            @apollon77

                            Kleiner Bug bei V2.0

                            Wenn man sich die Verlaufsdaten anschauen möchte, kann man nicht scrollen.
                            Getestet mit Safari unter MacOS Monterey

                            Bildschirmfoto 2022-05-11 um 04.41.26.png

                            Soll ich einen Github Issue anlegen?

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

                            @marty56 Ja aber im Admin Repo ... und am besten mit Chrome versuchen ... :-)

                            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 Offline
                              apollon77A Offline
                              apollon77
                              schrieb am zuletzt editiert von
                              #100

                              Vielen Dank für Eure Unterstützung. die 2.0.1 geht jetzt ins Bea/Latest Repo!

                              --> https://forum.iobroker.net/topic/54832/history-2-0-0-zusammenfassung

                              @Marty56 StoreState Doku ist aktualisiert

                              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
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              658

                              Online

                              32.4k

                              Benutzer

                              81.4k

                              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