Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] wie mit sendTo History.0 Werte im Voraus übergeben?

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    [gelöst] wie mit sendTo History.0 Werte im Voraus übergeben?

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @Homoran last edited by paul53

      @homoran sagte: geht das mit Blockly überhaupt?

      Versuche es mal so:

      Blockly_temp.JPG

      Sollte laut Adapter-Doku so funktionieren.

      1 Reply Last reply Reply Quote 1
      • paul53
        paul53 @Homoran last edited by paul53

        @homoran
        Besser geeignet ist Beispiel 2 mit Übergabe eines Arrays, das in einer Schleife gefüllt wird:

        // 2.
        sendTo('history.0', 'storeState', {
            id: 'mbus.0.counter.xxx',
            state: [
                {
                    ts: 1589458809352,
                    val: 123,
                    ack: false,
                    from: 'system.adapter.whatever.0'
                },
                {
                    ts: 1589458809353,
                    val: 123,
                    ack: false,
                    from: 'system.adapter.whatever.0'
                }
            ]
        }, result => console.log('added'));
        

        Blockly_temp.JPG

        1 Reply Last reply Reply Quote 1
        • paul53
          paul53 @Homoran last edited by

          @homoran sagte: folgendes javascript Snippet

          Das würde in Blockly so aussehen:

          Blockly_temp.JPG

          Homoran 1 Reply Last reply Reply Quote 1
          • Homoran
            Homoran Global Moderator Administrators @paul53 last edited by

            @paul53 vielen lieben Dank Paul!

            @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

            Besser geeignet ist Beispiel 2

            so in der Art hätte ich mir mein Endergebnis vorgestellt und um 05:15 einmalig gestartet

            Dazu einige Fragen:
            ich muss natürlich entsprechend viele Stunden Forecast im Adapter freischalten, wie im Sommer die Sonne scheinen wird.
            Ist die Anzahl idiese Anzahl existierender Datenpunke?
            ist <10 die Anzahl der Sonnenstunden? EDIT: Das sind die führenden 0 bei einstelligen Namen!

            Werde ich so umsetzen!
            DANKE!

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @Homoran last edited by paul53

              @homoran sagte: Ist die Anzahl idiese Anzahl existierender Datenpunke?

              Ich habe angenommen, dass die ID die Stunde der Uhrzeit enthält? Deshalb i von 3 bis 22.

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @paul53 last edited by

                @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                dass die ID die Stunde der Uhrzeit enthält?

                leider nein.
                die wird kontinuierlich geändert:
                0 = aktuelle Stunde
                1 = nächste Stunde
                usw...

                wenn ich das Skript um 05:15 laufen lasse, ist 00, die Stunde 05:00-05:59

                in dem jeweiligen Verzeichnis gibt es einen DP Timestamp.

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Homoran last edited by paul53

                  @homoran sagte: ist 00, die Stunde 05:00-05:59

                  Dann lass i von 0 bis 16 laufen. Oder ist die Anzahl der Datenpunkte abhängig von der Jahreszeit?

                  Blockly_temp.JPG

                  Homoran 2 Replies Last reply Reply Quote 1
                  • Homoran
                    Homoran Global Moderator Administrators @paul53 last edited by Homoran

                    @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                    Oder ist die Anzahl der Datenpunkte abhängig von der Jahreszeit?

                    nein! die würde ich entsprechend dem maximal im Sommer benötigtem konfigurieren

                    @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                    lass i von 0 bis 16

                    das wäre 5:00-21:59 Uhr.
                    das sollte passen
                    Screenshot_20250919-114509_Firefox.jpg

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @paul53 last edited by Homoran

                      @paul53 so, dann warte ich mal auf morgen!
                      Screenshot_20250919-160947_Firefox.jpg
                      Die Variable id lag noch rum, da hab ich sie recycelt 😉
                      hourly 0...16 existieren

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @Homoran last edited by Homoran

                        @homoran das konnte ja nicht funktionieren! 😢

                        ich hatte doch das array für weitere Bearbeitung gesichert, da steht jetzt

                        [{"val":"brightsky.0.hourly.00.solar_estimate","ts":"brightsky.0.hourly.00.timestamp","ack":true},{"val":"brightsky.0.hourly.01.solar_estimate","ts":"brightsky.0.hourly.01.timestamp","ack":true},{"val":"brightsky.0.hourly.02.solar_estimate","ts":"brightsky.0.hourly.02.timestamp","ack":true},{"val":"brightsky.0.hourly.03.solar_estimate","ts":"brightsky.0.hourly.03.timestamp","ack":true},{"val":"brightsky.0.hourly.04.solar_estimate","ts":"brightsky.0.hourly.04.timestamp","ack":true},{"val":"brightsky.0.hourly.05.solar_estimate","ts":"brightsky.0.hourly.05.timestamp","ack":true},{"val":"brightsky.0.hourly.06.solar_estimate","ts":"brightsky.0.hourly.06.timestamp","ack":true},{"val":"brightsky.0.hourly.07.solar_estimate","ts":"brightsky.0.hourly.07.timestamp","ack":true},{"val":"brightsky.0.hourly.08.solar_estimate","ts":"brightsky.0.hourly.08.timestamp","ack":true},{"val":"brightsky.0.hourly.09.solar_estimate","ts":"brightsky.0.hourly.09.timestamp","ack":true},{"val":"brightsky.0.hourly.10.solar_estimate","ts":"brightsky.0.hourly.10.timestamp","ack":true},{"val":"brightsky.0.hourly.11.solar_estimate","ts":"brightsky.0.hourly.11.timestamp","ack":true},{"val":"brightsky.0.hourly.12.solar_estimate","ts":"brightsky.0.hourly.12.timestamp","ack":true},{"val":"brightsky.0.hourly.13.solar_estimate","ts":"brightsky.0.hourly.13.timestamp","ack":true},{"val":"brightsky.0.hourly.14.solar_estimate","ts":"brightsky.0.hourly.14.timestamp","ack":true},{"val":"brightsky.0.hourly.15.solar_estimate","ts":"brightsky.0.hourly.15.timestamp","ack":true},{"val":"brightsky.0.hourly.16.solar_estimate","ts":"brightsky.0.hourly.16.timestamp","ack":true}]
                        

                        Da hab ich auch ganz schnell meinen Fehler gefunden.
                        Schnell geändert:
                        Screenshot_20250920-090222_Firefox.jpg
                        Also noch bis morgen warten

                        EDIT:
                        Wird auch nicht klappen.
                        der Timestamp muss noch konvertiert werden

                        [{"val":0.527,"ts":"2025-09-20T07:00:00+00:00","ack":true},{"val":1.211,"ts":"2025-09-20T08:00:00+00:00","ack":true},{"val":1.993,"ts":"2025-09-20T09:00:00+00:00","ack":true},{"val":2.449,"ts":"2025-09-20T10:00:00+00:00","ack":true},{"val":2.532,"ts":"2025-09-20T11:00:00+00:00","ack":true},{"val":2.293,"ts":"2025-09-20T12:00:00+00:00","ack":true},{"val":1.823,"ts":"2025-09-20T13:00:00+00:00","ack":true},{"val":1.276,"ts":"2025-09-20T14:00:00+00:00","ack":true},{"val":0.78,"ts":"2025-09-20T15:00:00+00:00","ack":true},{"val":0.506,"ts":"2025-09-20T16:00:00+00:00","ack":true},{"val":0.178,"ts":"2025-09-20T17:00:00+00:00","ack":true},{"val":0,"ts":"2025-09-20T18:00:00+00:00","ack":true},{"val":0,"ts":"2025-09-20T19:00:00+00:00","ack":true}]
                        

                        da steht jetzt verständlicherweise NaN

                        1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators last edited by Homoran

                          Hab noch einiges geändert
                          Screenshot_20250920-093755_Firefox.jpg

                          obwohl das Array jetzt so aussieht

                          [{"val":527,"ts":1758351600000,"ack":true},{"val":1211,"ts":1758355200000,"ack":true},{"val":1993,"ts":1758358800000,"ack":true},{"val":2449,"ts":1758362400000,"ack":true},{"val":2532,"ts":1758366000000,"ack":true},{"val":2293,"ts":1758369600000,"ack":true},{"val":1823,"ts":1758373200000,"ack":true},{"val":1276,"ts":1758376800000,"ack":true},{"val":780,"ts":1758380400000,"ack":true},{"val":506,"ts":1758384000000,"ack":true},{"val":178,"ts":1758387600000,"ack":true},{"val":0,"ts":1758391200000,"ack":true},{"val":0,"ts":1758394800000,"ack":true}]
                          

                          wird jetzt nur noch der 9 Uhr Wert eingetragen.

                          den max. - Wert hab ich schon von 100 auf 10000 hochgesetzt

                          {
                            "common": {
                              "name": "clearSkyHourly",
                              "desc": "Manuell erzeugt",
                              "role": "state",
                              "type": "number",
                              "read": true,
                              "write": true,
                              "def": 0,
                              "custom": {
                                "history.0": {
                                  "enabled": true,
                                  "aliasId": "",
                                  "debounceTime": 0,
                                  "blockTime": 0,
                                  "changesOnly": true,
                                  "changesRelogInterval": 0,
                                  "changesMinDelta": "0",
                                  "ignoreBelowNumber": "",
                                  "disableSkippedValueLogging": false,
                                  "retention": "0",
                                  "customRetentionDuration": 365,
                                  "maxLength": "10",
                                  "enableDebugLogs": false,
                                  "debounce": "1000"
                                }
                              },
                              "min": 0,
                              "max": 10000
                            },
                            "type": "state",
                            "native": {},
                            "_id": "Messwerte.0.Solaranlage.Prognosen.clearSkyHourly",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            },
                            "from": "system.adapter.admin.0",
                            "user": "system.user.admin",
                            "ts": 1758353664668
                          }
                          

                          EDIT:
                          beim nächsten Start nach 10:00 wird wieder der erste Wert, also für 10:00 in die history eingetragen.

                          Ein neuer Testdatenpunkt, um auszuschließen dass es Probleme mit dem History.json gibt, wird genauso behandelt.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Homoran last edited by paul53

                            @homoran sagte: Start nach 10:00 wird wieder der erste Wert, also für 10:00 in die history eingetragen.

                            Hats du die Schleife entsprechend auf 0 bis <= 11 verkürzt?

                            @homoran sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                            Wert hab ich schon von 100 auf 10000 hochgesetzt

                            Der Datenpunkt wird hoffentlich nicht geschrieben? Die History wird mit sendTo() gefüllt.

                            Alternativ zu sendTo() kannst du es mal mit setState() versuchen, der um 5:15 Uhr 17 mal hintereinander den Datenpunkt schreibt:

                            Blockly_temp.JPG

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @paul53 last edited by Homoran

                              @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                              Hats du die Schleife entsprechend auf 0 bis <= 11 verkürzt?

                              ja!

                              @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                              Der Datenpunkt wird hoffentlich nicht geschrieben?

                              richtig!
                              hab ihn sogar gelöscht, neu angelegt. Da steht noch die initiale gelbe 0

                              @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                              Alternativ

                              wäre eine Möglichkeit.

                              Aber im Moment verstehe ich folgendes nicht:
                              gemäß der Historykonfiguration des Datenpunktes, Verlaufsdaten

                              zuerst wurde gar nichts geschrieben... ist klar, keine Zahlen
                              Anschließend (ohne timestamp-Konvertierung) standen alle Werte drin, mit Timestamp: Datum Uhrzeit .NaN für Millisekunden.
                              jetzt passt der Timestamp, aber nur der erste Wert wird in der History angezeigt!

                              ist seltsam

                              Achtung, es wird noch seltsamer
                              gerade sehe ich nochmal nach, da stehen alle Daten der vergangenen und der aktuellen Stunde drin, aber keine in der Zukunft!

                              Screenshot_20250920-122316_Firefox.jpg

                              Als ob das Array erst "zeitgerecht" abgearbeitet wird.... 🤔

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @Homoran last edited by paul53

                                @homoran sagte: da stehen alle Daten der vergangenen und der aktuellen Stunde drin

                                Die vergangenen Stunden stehen noch drin, oder hast du die History inzwischen gelöscht?

                                @homoran sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                                keine in der Zukunft!

                                Die Liste ist aber korrekt? Vielleicht lässt History mit sendTo() keine zukünftigen Daten zu?

                                Homoran 2 Replies Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @paul53 last edited by

                                  @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                                  Die vergangenen Stunden stehen noch drin, oder hast du die History inzwischen gelöscht?

                                  als ich das letzte mal teingesehen hatte standen nur 0900 und 1000 drin.
                                  jetzt sind ohne weitere Aktivitäten meinerseits (war zwischenzeitlich Fliesen abschlagen 😉) die Werte von 1100 und 1200 aufgetaucht

                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @paul53 last edited by Homoran

                                    @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                                    Die Liste ist aber korrekt?

                                    die um 10:07:59 geschriebene und gesendete Liste
                                    Screenshot_20250920-123704_Firefox.jpg

                                    [{"val":1253,"ts":1758355200000,"ack":true},{"val":1920,"ts":1758358800000,"ack":true},{"val":2368,"ts":1758362400000,"ack":true},{"val":2515,"ts":1758366000000,"ack":true},{"val":2293,"ts":1758369600000,"ack":true},{"val":1823,"ts":1758373200000,"ack":true},{"val":1299,"ts":1758376800000,"ack":true},{"val":790,"ts":1758380400000,"ack":true},{"val":513,"ts":1758384000000,"ack":true},{"val":185,"ts":1758387600000,"ack":true},{"val":0,"ts":1758391200000,"ack":true},{"val":0,"ts":1758394800000,"ack":true}]
                                    

                                    @paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:

                                    Vielleicht lässt History mit sendTo() keine zukünftigen Daten zu?

                                    @klassisch kann es aber 😢 mit js

                                    EDIT:
                                    das gleiche in dem einmalig testweise beschriebenen Datenpunkt
                                    Screenshot_20250920-123954_Firefox.jpg

                                    EDIT2:
                                    damit liegen aber zumindest in flot die zukünftigen Daten vor
                                    Screenshot_20250920-124219_Firefox.jpg

                                    Möglicherweise ist doch das heutige json vom Original-DP durch diese Spielereien "verbrannt"
                                    hab aber keine Lust mir das rauszusuchen und zu analysieren

                                    paul53 2 Replies Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Homoran last edited by paul53

                                      @homoran sagte: das gleiche in dem einmalig testweise beschriebenen Datenpunkt

                                      Schau dir mal die Endzeit an: Die zukünftigen Werte werden nur nicht angezeigt, sind aber in der .json-Datei enthalten?

                                      Homoran 1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @paul53 last edited by

                                        @paul53 siehe edit2 bitte!

                                        1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @Homoran last edited by

                                          @homoran sagte: @klassisch kann es aber mit js

                                          Das ist die Version mit "steuere" ohne sendTo().

                                          Homoran 1 Reply Last reply Reply Quote 1
                                          • Homoran
                                            Homoran Global Moderator Administrators @paul53 last edited by

                                            @paul53 DANKE!
                                            ich warte mal ab, ob es morgen woeder klappt, sonst stell ich erstmalnauf den Test-DP um, und wenn das auch nicht stabil läuft mach ich das mit einzelnen Einträgen.

                                            Homoran 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            966
                                            Online

                                            32.1k
                                            Users

                                            80.7k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            22
                                            284
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo