Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Simple API Abfrage

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Simple API Abfrage

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

      Moin zusammen,

      ich versuche gerade Testweise einmal eine API Abfrage zu bauen und nutze folgendes...

      http://192.168.178.222:8087/query/javascript.0.ShellyVerbrauch.SHPLG-S%231D3709%231.Relay0.gestern?dateFrom=2022-04-01T12:00:00.000Z&dateTo=2022-04-08T01:00:10.000Z
      

      Dabei erscheint nur der letzte Wert, obwohl in dem History Adapter Vorgänger existieren.

      [
      {
      "target": "javascript.0.ShellyVerbrauch.SHPLG-S#1D3709#1.Relay0.gestern",
      "datapoints": [
      [
      409.55,
      1649541600417
      ]
      ]
      }
      ]
      

      Wo ist mein Fehler...?

      arteck apollon77 2 Replies Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @froggi1930 last edited by

        @froggi1930 dann ust du aber auch den history adapter abfragen und nicht den javascript

        froggi1930 1 Reply Last reply Reply Quote 0
        • froggi1930
          froggi1930 @arteck last edited by

          @arteck
          Wie frage ich den denn ab... in den Objekten unter History finde ich nur admin und sonst nichts 😕

          arteck Homoran 2 Replies Last reply Reply Quote 0
          • arteck
            arteck Developer Most Active @froggi1930 last edited by

            @froggi1930 ok ..
            ich frag mal so : was soll das Endergebniss werden ??

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

              @froggi1930 was willst du eigentlich erreichen?
              Mit der Abfrage erhältst du den aktuellen Wert eines Datenpunkts

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

                @homoran @arteck
                Ich möchte gerne von einem externen Rechner die Verbrauchshistorie abrufen

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

                  @froggi1930 sagte in Simple API Abfrage:

                  Ich möchte gerne von einem externen Rechner die Verbrauchshistorie abrufen

                  dann musst du entweder die History Daten aufarbeiten, oder gar mit SQL arbeiten und da auf die Datenbank zugreifen.

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

                    @homoran
                    Dann kann ich mit dem API Aufruf die History Daten gar nicht abrufen?

                    Wie greife ich denn dann von extern auf die Datenbank zu?

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

                      @froggi1930 sagte in Simple API Abfrage:

                      Wie greife ich denn dann von extern auf die Datenbank zu?

                      welche Datenbank nutzst du denn?

                      für History liegen die Daten in /opt/iobroker/iobroker-data/history nach Datum sortiert und darin nach Datenpunkt und darin als JSON

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

                        @homoran
                        Ich nutze den History Adapter... die Daten aus dem Ordner kann ich aber nicht per API zur Verfügung stellen - richtig?

                        1 Reply Last reply Reply Quote 0
                        • M
                          MCU last edited by MCU

                          @froggi1930
                          https://github.com/ioBroker/ioBroker.simple-api#query-1
                          Scheint ein Fehler im simpleApi zu sein?

                          http://192.168.178.89:8087/query/zigbee.0.00517.temperature/?prettyPrint&dateFrom=2022-04-01T00:00:00.000Z&dateTo=2022-04-10T00:00:00.000Z
                          
                          ->
                          [ { "target": "zigbee.0.00158d00025e9517.temperature", "datapoints": [ [ 18.6, 1649591510116 ] ] } ]
                          
                          
                          froggi1930 1 Reply Last reply Reply Quote 0
                          • froggi1930
                            froggi1930 @MCU last edited by froggi1930

                            @mcu @apollon77
                            ich habe zumindest gedacht, dass ich so an die Daten herankomme... oder es ist ein Denkfehler und gar nicht so dafür gedacht

                            M 2 Replies Last reply Reply Quote 0
                            • M
                              MCU @froggi1930 last edited by

                              @froggi1930 Dann müsstest du dir einen DP erstellen und in den die Daten von einer History-Abfrage reinstellen und dann das Ergebnis aus dem DP mit simpleApi auslesen.

                              froggi1930 1 Reply Last reply Reply Quote 0
                              • M
                                MCU @froggi1930 last edited by

                                @froggi1930 sagte in Simple API Abfrage:

                                und gar nicht so dafür gedacht

                                Laut Beschreibung sollte es so funktionieren. Wie gesagt: Fehler im simpleApi.

                                1 Reply Last reply Reply Quote 0
                                • froggi1930
                                  froggi1930 @MCU last edited by

                                  @mcu said in Simple API Abfrage:

                                  @froggi1930 Dann müsstest du dir einen DP erstellen und in den die Daten von einer History-Abfrage reinstellen und dann das Ergebnis aus dem DP mit simpleApi auslesen.

                                  Das versteh ich leider so nicht...

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    MCU @froggi1930 last edited by MCU

                                    @froggi1930
                                    Einen DP erstellen mit Blockly oder javascript.

                                    createState(ID_VOM_NEUEN_DP, {read: true, write: true, name: "SIMPLEAPI DP", type: "string", role: "", def: "" });
                                    

                                    Mit Blockly oder javascript die Abfrage an den History erstellen und das Ergebnis in den neuen DP schreiben.

                                    https://github.com/ioBroker/ioBroker.history/blob/master/docs/de/README.md#zugriff-auf-history-werte-mit-javascript

                                    sendTo('history.0', 'getHistory', {
                                        id: 'javascript.0.ShellyVerbrauch.SHPLG-S#1D3709#1.Relay0.gestern',
                                        options: {
                                            end:       Date.now(),
                                            count:     50,
                                            aggregate: 'onchange',
                                            addId:     true
                                        }
                                    }, function (result) {
                                        let arr = [];
                                        for (var i = 0; i < result.result.length; i++) {
                                            console.log(result.result[i].id + ' ' + new Date(result.result[i].ts).toISOString());
                                            arr.push({'result':result.result[i].id,'time':new Date(result.result[i].ts).toISOString()});
                                        }
                                        setState(ID_vom_NEUEN_DP,JSON.stringify(arr),false);
                                    });
                                    

                                    Dann mit simpleApi die neuen DP auslesen.

                                    Das musst du Dir dann aber im Detail noch anschauen.

                                    froggi1930 1 Reply Last reply Reply Quote 1
                                    • froggi1930
                                      froggi1930 @MCU last edited by

                                      @mcu
                                      super... danke Dir. Werde mich gleich damit einmal auseinandersetzten

                                      froggi1930 1 Reply Last reply Reply Quote 0
                                      • froggi1930
                                        froggi1930 @froggi1930 last edited by

                                        @froggi1930 said in Simple API Abfrage:

                                        @mcu
                                        super... danke Dir. Werde mich gleich damit einmal auseinandersetzten

                                        OK... das funktioniert soweit ganz OK. Es wäre natürlich viel einfacher direkt per API darauf zuzugreifen... habe mal ein Issue aufgemacht - vielleicht ist es ja wirklich ein Fehler.

                                        Ansonsten schreibe ich die Daten jetzt auch auf ein NAS in eine Maria Datenbank. Mal sehen, was am Ende besser funktioniert.

                                        1 Reply Last reply Reply Quote 0
                                        • apollon77
                                          apollon77 @froggi1930 last edited by

                                          @froggi1930 ist es besser wenn du start und endzeitpunkt als Zahl angibst (als Date.getTime() Unix epoch in ms)

                                          Sonst muss ich mal reinschauen

                                          froggi1930 1 Reply Last reply Reply Quote 0
                                          • froggi1930
                                            froggi1930 @apollon77 last edited by froggi1930

                                            @apollon77
                                            Du meinst so...?

                                            http://192.168.178.222:8087/query/javascript.0.ShellyVerbrauch.SHPLG-S%231D3709%231.Relay0.gestern?dateFrom=1649368800402?dateTo=1649541600417
                                            

                                            ... gibt trotzdem nur den letzten Wert aus

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            396
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            29
                                            1122
                                            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