Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter Daikin-Cloud 0.4.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.1k

Test Adapter Daikin-Cloud 0.4.0

Geplant Angeheftet Gesperrt Verschoben Tester
274 Beiträge 39 Kommentatoren 58.3k Aufrufe 41 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.
  • B Offline
    B Offline
    breaksrmine
    schrieb am zuletzt editiert von
    #193

    Frage bezüglich der Verbrauchs Werte M-RAW usw. gibt es da eine Möglichkeit die schöner aufbereitet zu bekommen im adapter objekt schon ?

    Hintergrund ich frag über Loxone -> http Befehl die IoBroker Objekte ab und würde gerne die Werte sauber darstellen aber bei dem aktuellen output
    000,362,263,374 usw. funktioniert das null.

    danke !

    apollon77A 1 Antwort Letzte Antwort
    0
    • B breaksrmine

      Frage bezüglich der Verbrauchs Werte M-RAW usw. gibt es da eine Möglichkeit die schöner aufbereitet zu bekommen im adapter objekt schon ?

      Hintergrund ich frag über Loxone -> http Befehl die IoBroker Objekte ab und würde gerne die Werte sauber darstellen aber bei dem aktuellen output
      000,362,263,374 usw. funktioniert das null.

      danke !

      apollon77A Online
      apollon77A Online
      apollon77
      schrieb am zuletzt editiert von
      #194

      @breaksrmine Naja "Raw" bedeutet "Raw" 🙂 Was wäre denn "schön"? 😉

      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
      B ArmilarA 2 Antworten Letzte Antwort
      0
      • apollon77A apollon77

        @breaksrmine Naja "Raw" bedeutet "Raw" 🙂 Was wäre denn "schön"? 😉

        B Offline
        B Offline
        breaksrmine
        schrieb am zuletzt editiert von
        #195

        @apollon77 hehe richtig ! ich bräuchte das quasi separiert in einzelne Objekte Pro Monat (Januar=223 Februar=349 usw. ) die ich dann abfragen könnte. Weil mit der aktuellen Ausgabe ist es leider unmöglich den richtigen Wert zu ermitteln.

        Also wenn du sowas machen könntest wäre der Hammer !

        1 Antwort Letzte Antwort
        0
        • apollon77A apollon77

          @breaksrmine Naja "Raw" bedeutet "Raw" 🙂 Was wäre denn "schön"? 😉

          ArmilarA Offline
          ArmilarA Offline
          Armilar
          Most Active Forum Testing
          schrieb am zuletzt editiert von
          #196

          @apollon77

          Bitte nicht ersatzlos nur auf Monate. Dann den RAW bitte ebenfalls drin lassen. Ansonsten könnten diverse User Ihre eigenen Übersetzungen nicht mehr benutzen 😉

          788104bc-0751-4002-b441-b2426a78c6cb-image.png
          usw.

          Datenobjekt (so wird es aktuell extrahiert):
          0_userdata.0.DaikinEnergyConsumption.json

          Gibt auch ein paar Skripte dazu...

          Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
          https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

          B apollon77A 2 Antworten Letzte Antwort
          0
          • ArmilarA Armilar

            @apollon77

            Bitte nicht ersatzlos nur auf Monate. Dann den RAW bitte ebenfalls drin lassen. Ansonsten könnten diverse User Ihre eigenen Übersetzungen nicht mehr benutzen 😉

            788104bc-0751-4002-b441-b2426a78c6cb-image.png
            usw.

            Datenobjekt (so wird es aktuell extrahiert):
            0_userdata.0.DaikinEnergyConsumption.json

            Gibt auch ein paar Skripte dazu...

            B Offline
            B Offline
            breaksrmine
            schrieb am zuletzt editiert von
            #197

            @armilar GENAUSO !!!! Das wäre ein Traum und ich denke für viele andere auch 🙂

            Mein vollen Respekt an euch !!

            L 1 Antwort Letzte Antwort
            0
            • B breaksrmine

              @armilar GENAUSO !!!! Das wäre ein Traum und ich denke für viele andere auch 🙂

              Mein vollen Respekt an euch !!

              L Offline
              L Offline
              Lemmi
              schrieb am zuletzt editiert von
              #198

              Ja die Verbrauchsdaten wären für mich sehr interesant. Leider läuft bei mir der Adapter nicht richtig. Der Adapter läuft nach Einrichtung nur ein paar Stunden und ist dann plötzlich nicht mehr mir dem Gerät oder Dienst verbunden. Woran könnte es liegen? Hat jemand eine Idee und könnte mir helfen?

              Gruß
              Sven

              apollon77A 1 Antwort Letzte Antwort
              0
              • L Lemmi

                Ja die Verbrauchsdaten wären für mich sehr interesant. Leider läuft bei mir der Adapter nicht richtig. Der Adapter läuft nach Einrichtung nur ein paar Stunden und ist dann plötzlich nicht mehr mir dem Gerät oder Dienst verbunden. Woran könnte es liegen? Hat jemand eine Idee und könnte mir helfen?

                Gruß
                Sven

                apollon77A Online
                apollon77A Online
                apollon77
                schrieb am zuletzt editiert von
                #199

                @lemmi Aktuellste Version installiert? Da sollte das nicht passieren

                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
                L 1 Antwort Letzte Antwort
                0
                • ArmilarA Armilar

                  @apollon77

                  Bitte nicht ersatzlos nur auf Monate. Dann den RAW bitte ebenfalls drin lassen. Ansonsten könnten diverse User Ihre eigenen Übersetzungen nicht mehr benutzen 😉

                  788104bc-0751-4002-b441-b2426a78c6cb-image.png
                  usw.

                  Datenobjekt (so wird es aktuell extrahiert):
                  0_userdata.0.DaikinEnergyConsumption.json

                  Gibt auch ein paar Skripte dazu...

                  apollon77A Online
                  apollon77A Online
                  apollon77
                  schrieb am zuletzt editiert von
                  #200

                  @armilar sagte in Test Adapter Daikin-Cloud 0.4.0:

                  Gibt auch ein paar Skripte dazu...

                  Wo sind die denn? Gerneinen PR machen dann wäre es für alle drin 🙂

                  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
                  • K Offline
                    K Offline
                    Kredar
                    schrieb am zuletzt editiert von Kredar
                    #201

                    Habe auch seit kurzem eine Daikin Wärmepumpe. Diese habe ich in ioBroker eingebunden mit dem Daikin.Cloud Adapter. Soweit alles super, bis das der Adapter leider keine Stromwerte im ioBroker anzeigt. In der App am Smartphone bekomme ich alle Daten. Woran liegt das, dass es im ioBroker keine Stromwerte anzeigt?

                    WP1.png
                    WP2.png
                    WP3.png

                    Muss ich da an der Anlage noch was "freischalten" oder kann der iobroker Adapter dies nicht auslesen was in die Cloud geht?

                    Vielen Dank das es den Adapter gibt, die Temperaturen kann ich damit einwandfrei Auslesen. Wenn der Strom noch funktionieren würde, dann wäre es Perfekt.

                    mfg

                    L 1 Antwort Letzte Antwort
                    0
                    • apollon77A apollon77

                      @lemmi Aktuellste Version installiert? Da sollte das nicht passieren

                      L Offline
                      L Offline
                      Lemmi
                      schrieb am zuletzt editiert von
                      #202

                      @apollon77
                      Hatte eigentlich die aktuellste Version installiert. Aber durch deine Antwort bin ich auf die Idee gekommen den Adapter einmal zu löschen und neu zu installieren. Siehe da, seit zwei Tagen funzt es wieder wie es soll. Danke!!
                      Gruß Sven

                      1 Antwort Letzte Antwort
                      0
                      • K Kredar

                        Habe auch seit kurzem eine Daikin Wärmepumpe. Diese habe ich in ioBroker eingebunden mit dem Daikin.Cloud Adapter. Soweit alles super, bis das der Adapter leider keine Stromwerte im ioBroker anzeigt. In der App am Smartphone bekomme ich alle Daten. Woran liegt das, dass es im ioBroker keine Stromwerte anzeigt?

                        WP1.png
                        WP2.png
                        WP3.png

                        Muss ich da an der Anlage noch was "freischalten" oder kann der iobroker Adapter dies nicht auslesen was in die Cloud geht?

                        Vielen Dank das es den Adapter gibt, die Temperaturen kann ich damit einwandfrei Auslesen. Wenn der Strom noch funktionieren würde, dann wäre es Perfekt.

                        mfg

                        L Offline
                        L Offline
                        Lemmi
                        schrieb am zuletzt editiert von
                        #203

                        @kredar
                        29eb481c-cd87-42a3-9a29-d6ce5c679dde-grafik.png Wird angezeigt. Leider nur so, dass man damit nicht so viel anfangen kann. Armilar hat anscheinend herausgefunden wie man die Daten so aufbereitet, das es nutzbar wird aber rückt nicht richtig mit seinen erkenntnissen raus. Müssen wohl noch ein wenig warten bis auch das zur verfügung steht. Bin mir sicher, das Apollon das auch noch hinbekommt.
                        An dieser Stelle noch mal vielen Dank an Apollon für den tollen Adapter.

                        K ArmilarA 2 Antworten Letzte Antwort
                        0
                        • L Lemmi

                          @kredar
                          29eb481c-cd87-42a3-9a29-d6ce5c679dde-grafik.png Wird angezeigt. Leider nur so, dass man damit nicht so viel anfangen kann. Armilar hat anscheinend herausgefunden wie man die Daten so aufbereitet, das es nutzbar wird aber rückt nicht richtig mit seinen erkenntnissen raus. Müssen wohl noch ein wenig warten bis auch das zur verfügung steht. Bin mir sicher, das Apollon das auch noch hinbekommt.
                          An dieser Stelle noch mal vielen Dank an Apollon für den tollen Adapter.

                          K Offline
                          K Offline
                          Kredar
                          schrieb am zuletzt editiert von Kredar
                          #204

                          @lemmi

                          Ah okay, dann hab ich nichts falsch gemacht. Dann warte ich mal und hoffe das kommt noch. In der App wird das ja echt spitze dargestellt, aber leider auch nur dort. In der Zwischenzeit habe ich vor einen Shelly 3M vor Ort zu installieren, damit der Strom auch ausgelesen wird.

                          Aber per Adapter wäre das super, ansonsten per Shelly :).

                          Danke für die Info und danke für die Hilfe hier 🙂

                          mfg

                          1 Antwort Letzte Antwort
                          0
                          • L Lemmi

                            @kredar
                            29eb481c-cd87-42a3-9a29-d6ce5c679dde-grafik.png Wird angezeigt. Leider nur so, dass man damit nicht so viel anfangen kann. Armilar hat anscheinend herausgefunden wie man die Daten so aufbereitet, das es nutzbar wird aber rückt nicht richtig mit seinen erkenntnissen raus. Müssen wohl noch ein wenig warten bis auch das zur verfügung steht. Bin mir sicher, das Apollon das auch noch hinbekommt.
                            An dieser Stelle noch mal vielen Dank an Apollon für den tollen Adapter.

                            ArmilarA Offline
                            ArmilarA Offline
                            Armilar
                            Most Active Forum Testing
                            schrieb am zuletzt editiert von Armilar
                            #205

                            @lemmi

                            Ist so 'ne Zeitsache aktuell 😉

                            Also es gibt zwei Skripte, die wir mit Bereitstellung der RAW-Daten zusammengestrickt haben. Nach den Posts hier wären aber beide anscheinend nicht vollständig.

                            Das erste wäre ein Blockly, dass bei meiner Altherma wunderbar funktioniert. Es verarbeitet allerdings keine "cooling"-Energy-Daten, sondern nur "heating" und müsste diesbezgl. auf "cooling", sofern genutzt erweitert werden.

                            Also wenn ihr das zunächst schon nutzen wollt, dann nur die Onnecta-UUID im Script austauschen und Skript einschalten. Danach habet ihr einen Ordner in 0_userdata mit den Energiedaten.

                            aa8613fc-9a43-4433-a31f-2622b2c24467-image.png

                            https://raw.githubusercontent.com/Armilar/ioBroker-Scripte/refs/heads/main/Blockly/Daikin Altherma ioBroker


                            Das zweite Skript ist hier: (von Volker88)

                            https://gist.github.com/Volker88/59a14f8d614db33f163452fb56469e01

                            Ist aus meiner Sicht eher für Klimaanlagen geeignet, da es nicht in die einzelnen Komponenten einer Wärmepumpe, z.B. climateControlMainZone, domesticHotWaterTank, etc. aufteilt, berücksichtigt allerdings "cooling"


                            Eigentlich müssten die Logiken zusammengefasst werden, um es allgemeingültig für den Adapter zu haben... 😊

                            Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                            https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

                            L K 2 Antworten Letzte Antwort
                            0
                            • ArmilarA Armilar

                              @lemmi

                              Ist so 'ne Zeitsache aktuell 😉

                              Also es gibt zwei Skripte, die wir mit Bereitstellung der RAW-Daten zusammengestrickt haben. Nach den Posts hier wären aber beide anscheinend nicht vollständig.

                              Das erste wäre ein Blockly, dass bei meiner Altherma wunderbar funktioniert. Es verarbeitet allerdings keine "cooling"-Energy-Daten, sondern nur "heating" und müsste diesbezgl. auf "cooling", sofern genutzt erweitert werden.

                              Also wenn ihr das zunächst schon nutzen wollt, dann nur die Onnecta-UUID im Script austauschen und Skript einschalten. Danach habet ihr einen Ordner in 0_userdata mit den Energiedaten.

                              aa8613fc-9a43-4433-a31f-2622b2c24467-image.png

                              https://raw.githubusercontent.com/Armilar/ioBroker-Scripte/refs/heads/main/Blockly/Daikin Altherma ioBroker


                              Das zweite Skript ist hier: (von Volker88)

                              https://gist.github.com/Volker88/59a14f8d614db33f163452fb56469e01

                              Ist aus meiner Sicht eher für Klimaanlagen geeignet, da es nicht in die einzelnen Komponenten einer Wärmepumpe, z.B. climateControlMainZone, domesticHotWaterTank, etc. aufteilt, berücksichtigt allerdings "cooling"


                              Eigentlich müssten die Logiken zusammengefasst werden, um es allgemeingültig für den Adapter zu haben... 😊

                              L Offline
                              L Offline
                              Lemmi
                              schrieb am zuletzt editiert von
                              #206

                              @armilar
                              Erstmal vielen Dank für die Einstellung der Skripte. Mal sehen ob Appollon das irgendwie verwerten kann und was allgemeines daraus zaubert. Ansonsten werde ich ( leider kein Crack was Spripte angeht ) mich daran versuchen und schauen ob ich da was für mich hinbekomme.

                              ArmilarA 1 Antwort Letzte Antwort
                              0
                              • L Lemmi

                                @armilar
                                Erstmal vielen Dank für die Einstellung der Skripte. Mal sehen ob Appollon das irgendwie verwerten kann und was allgemeines daraus zaubert. Ansonsten werde ich ( leider kein Crack was Spripte angeht ) mich daran versuchen und schauen ob ich da was für mich hinbekomme.

                                ArmilarA Offline
                                ArmilarA Offline
                                Armilar
                                Most Active Forum Testing
                                schrieb am zuletzt editiert von Armilar
                                #207

                                @lemmi

                                bei den Daten von @Kredar dürfte das Blockly mit dem Tausch der UUID bereits funktionieren. Die "cooling" Daten stehen eh soweit ich das sehe auf "0"

                                Bei deinem DP-Auszug fehlen die Infos um das beurteilen zu können...

                                Würde das heutzutage aber eh etwas eleganter lösen... Wenn ein wenig mehr Zeit, dann sehe ich mir das nochmal an...

                                Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

                                L 1 Antwort Letzte Antwort
                                0
                                • ArmilarA Armilar

                                  @lemmi

                                  bei den Daten von @Kredar dürfte das Blockly mit dem Tausch der UUID bereits funktionieren. Die "cooling" Daten stehen eh soweit ich das sehe auf "0"

                                  Bei deinem DP-Auszug fehlen die Infos um das beurteilen zu können...

                                  Würde das heutzutage aber eh etwas eleganter lösen... Wenn ein wenig mehr Zeit, dann sehe ich mir das nochmal an...

                                  L Offline
                                  L Offline
                                  Lemmi
                                  schrieb am zuletzt editiert von
                                  #208

                                  @Armilar
                                  Die DP aus meiner Antwort an @Kredar sind nur ein Screenshot aus den DP von Kredar um Ihm zu zeigen, das die Werte vorhanden sind aber nur nicht so richtig brauchbar.

                                  ArmilarA 1 Antwort Letzte Antwort
                                  0
                                  • ArmilarA Armilar

                                    @lemmi

                                    Ist so 'ne Zeitsache aktuell 😉

                                    Also es gibt zwei Skripte, die wir mit Bereitstellung der RAW-Daten zusammengestrickt haben. Nach den Posts hier wären aber beide anscheinend nicht vollständig.

                                    Das erste wäre ein Blockly, dass bei meiner Altherma wunderbar funktioniert. Es verarbeitet allerdings keine "cooling"-Energy-Daten, sondern nur "heating" und müsste diesbezgl. auf "cooling", sofern genutzt erweitert werden.

                                    Also wenn ihr das zunächst schon nutzen wollt, dann nur die Onnecta-UUID im Script austauschen und Skript einschalten. Danach habet ihr einen Ordner in 0_userdata mit den Energiedaten.

                                    aa8613fc-9a43-4433-a31f-2622b2c24467-image.png

                                    https://raw.githubusercontent.com/Armilar/ioBroker-Scripte/refs/heads/main/Blockly/Daikin Altherma ioBroker


                                    Das zweite Skript ist hier: (von Volker88)

                                    https://gist.github.com/Volker88/59a14f8d614db33f163452fb56469e01

                                    Ist aus meiner Sicht eher für Klimaanlagen geeignet, da es nicht in die einzelnen Komponenten einer Wärmepumpe, z.B. climateControlMainZone, domesticHotWaterTank, etc. aufteilt, berücksichtigt allerdings "cooling"


                                    Eigentlich müssten die Logiken zusammengefasst werden, um es allgemeingültig für den Adapter zu haben... 😊

                                    K Offline
                                    K Offline
                                    Kredar
                                    schrieb am zuletzt editiert von Kredar
                                    #209

                                    @armilar

                                    Danke für das Blocky. Habe es gleich mal getestet aber es legt bei mir unter 0_userdata keine Datenbank an wie bei dir auf dem ersten Screenshot.

                                    Habe meine UUID eingetragen bei dem Blocky unter Oneta_UUID (die lange Zeichenkette beim Cloud-Adapter ohne daikin-cloud.0. davor.

                                    Wenn ich das Blocky startet kommt keine Fehlermeldung aber auch kein Eintrag bei 0_Userdata.

                                    Muss ich da noch mehr anpassen auf meine Wärmepumpe? Bei den Javascript-Einträgen (die vier Lila Zeilen ganz oben) habe ich nichts geändert.

                                    Edit: Jetzt sind die Zeilen da, dauerte bei mir 20min. 🙂 Danke mal schauen was da so kommt ;). Und es kommen Daten wie bei deinem Screenshot :D. Vielen Dank für das Blocky das langt mir, Kühlen tue ich eh mit der Wärmepumpe nicht dafür habe ich die Klimaaanlage (auch von Daikin 😉 ).

                                    mfg

                                    1 Antwort Letzte Antwort
                                    1
                                    • L Lemmi

                                      @Armilar
                                      Die DP aus meiner Antwort an @Kredar sind nur ein Screenshot aus den DP von Kredar um Ihm zu zeigen, das die Werte vorhanden sind aber nur nicht so richtig brauchbar.

                                      ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      schrieb am zuletzt editiert von Armilar
                                      #210

                                      @lemmi

                                      Hallo zusammen,

                                      habe mal ein wenig Zeit gefunden, um das Skript auf alle Device-Typen und Adapterinstanzen anzupassen.

                                      TypeScript anlegen. Inhalt reinwerfen. Sollte nichts angepasst werden müssen. Skript starten...

                                      Die Daten für jedes Daikin-Device in der Onnecta-App (Klima, Wärmepumpe, heating, cooling, Total, etc.) werden unter 0_userdata.0.daikin-cloud.... angelegt.

                                      @apollon77 - evtl. kann man das in den Adapter schreddern...

                                      /* TypeScript (TS) @Armilar
                                       *
                                       * This Script will read the consumption Data from Daikin-Cloud adapter and transform the raw data into individual data points similar to how it's shown in the Daikin Onecta App.
                                       * It will also sum up the historic consumption from the current and previous year and update the total consumption meter going forward.
                                       * 
                                       * The data is created in the following path analogous to the daikin cloud data
                                       * 0_userdata.0.daikin-cloud.0...
                                       * 
                                       * Createtd: 14.11.2024
                                       */
                                      
                                      // Log-Mode
                                      const logMode: any = 'info'; // 'info' or 'debug'
                                      // Path in 0_userdata
                                      const mainPath: string = '0_userdata.0.';
                                      // Onnecta hours (if d-raw)
                                      const hourly: Array<string>  = ["00:00 - 02:00", "02:00 - 04:00", "04:00 - 06:00", "06:00 - 08:00", "08:00 - 10:00", "10:00 - 12:00", "12:00 - 14:00", "14:00 - 16:00", "16:00 - 18:00", "18:00 - 20:00", "20:00 - 22:00", "22:00 - 24:00"];
                                      // Onnecta weekdays (if w-raw)
                                      const daily: Array<string>   = ["01_Monday", "02_Tuesday", "03_Wednesday", "04_Thursday", "05_Friday", "06_Saturday", "07_Sunday"];
                                      // Onnecta months  (if m-raw)
                                      const monthly: Array<string> = ["01_Januray", "02_February", "03_March", "04_April", "05_May", "06_June", "07_July", "08_August", "09_September", "10_October", "11_November", "12_December"];
                                      
                                      let devices: string[] = getDeviceNames("daikin-cloud.");
                                      
                                      function setOrCreateState(id: string, value: any, forceCreation: boolean = true, common: Partial<iobJS.StateCommon> = {}, callback?: iobJS.SetStateCallback): void {
                                          if (!existsState(id)) {
                                              createState(id, value, forceCreation, common, callback);
                                          } else {
                                              setState(id, value, true);
                                          }
                                      }
                                      
                                      // Get Daikin Device Names
                                      function getDeviceNames(vAdapterInstance: string): string[] {
                                          let devices = [];
                                          $(vAdapterInstance + '*raw').each(function (id) {
                                              if (devices.indexOf(id) == -1) {
                                                  devices.push(id);
                                              }
                                          });
                                          return devices;
                                      }
                                      
                                      async function writeConsumtionData(path: string, rawType: string, rawData: number[]): Promise<void> {
                                          log(rawType + ' - ' + rawData, logMode);
                                          let total: number = 0;
                                          switch (rawType) {
                                      	case "d-raw":
                                                  for (let j = 0; j < 12; j++) {
                                                      let dpName = "Yesterday." + hourly[j];
                                                      setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: hourly[j], role: 'value.power', unit: 'kWh'});
                                                      log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                      total = total + rawData[j];
                                                  }
                                                  setOrCreateState(mainPath + path + 'Total.Yesterday', total, true, {type: 'number', name: 'Yesterday', role: 'value.power',unit: 'kWh'});
                                                  total = 0;
                                                  for (let j = 12; j < 24; j++) {
                                                      let dpName = "Today." + hourly[j-12];
                                                      setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: hourly[j-12], role: 'value.power', unit: 'kWh'});
                                                      log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                      total = total + rawData[j];
                                                  }
                                                  setOrCreateState(mainPath + path + 'Total.Today', total, true, {type: 'number', name: 'Today', role: 'value.power',unit: 'kWh'});
                                                  break;
                                      	case "w-raw":
                                                  for (let j = 0; j < 7; j++) {
                                                      let dpName = "LastWeek." + daily[j];
                                                      setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: daily[j], role: 'value.power', unit: 'kWh'});
                                                      log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                      total = total + rawData[j];
                                                  }
                                                  setOrCreateState(mainPath + path + 'Total.LastWeek', total, true, {type: 'number', name: 'LastWeek', role: 'value.power',unit: 'kWh'});
                                                  total = 0;
                                                  for (let j = 7; j < 14; j++) {
                                                      let dpName = "ThisWeek." + daily[j-7];
                                                      setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: daily[j-7], role: 'value.power', unit: 'kWh'});
                                                      log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                      total = total + rawData[j];
                                                  }
                                                  setOrCreateState(mainPath + path + 'Total.ThisWeek', total, true, {type: 'number', name: 'ThisWeek', role: 'value.power',unit: 'kWh'});
                                                  break;
                                      	case "m-raw":
                                                  for (let j = 0; j < 12; j++) {
                                                      let dpName = "LastYear." + monthly[j];
                                                      setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: monthly[j], role: 'value.power', unit: 'kWh'});
                                                      log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                      total = total + rawData[j];
                                                  }
                                                  setOrCreateState(mainPath + path + 'Total.LastYear', total, true, {type: 'number', name: 'LastYear', role: 'value.power',unit: 'kWh'});
                                                  total = 0;
                                                  for (let j = 12; j < 24; j++) {
                                                      let dpName = "ThisYear." + monthly[j-12];
                                                      setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: monthly[j-12], role: 'value.power', unit: 'kWh'});
                                                      log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                      total = total + rawData[j];
                                                  }
                                                  setOrCreateState(mainPath + path + 'Total.ThisYear', total, true, {type: 'number', name: 'ThisYear', role: 'value.power',unit: 'kWh'});
                                                  break;
                                          }
                                      }
                                      
                                      async function readConsumtionData(): Promise<void> {
                                          for (let i = 0; i < devices.length; i++) {
                                              //get d-raw; w-raw; m-raw
                                              let dev: any = devices[i].split('.');
                                              let state = getState(devices[i]).val;
                                              state = state.slice(1,-1);
                                              state = state.replaceAll('null', '0');
                                              await writeConsumtionData(devices[i].slice(0,-5), dev[dev.length -1], Array.from(state.split(','), Number));
                                          }
                                      }
                                      readConsumtionData();
                                      
                                      on({ id: [].concat(Array.prototype.slice.apply($('daikin-cloud.*.lastUpdateReceived'))), change: 'any' }, async (obj) => {
                                          await readConsumtionData();
                                      });
                                      

                                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

                                      K L T 3 Antworten Letzte Antwort
                                      2
                                      • ArmilarA Armilar

                                        @lemmi

                                        Hallo zusammen,

                                        habe mal ein wenig Zeit gefunden, um das Skript auf alle Device-Typen und Adapterinstanzen anzupassen.

                                        TypeScript anlegen. Inhalt reinwerfen. Sollte nichts angepasst werden müssen. Skript starten...

                                        Die Daten für jedes Daikin-Device in der Onnecta-App (Klima, Wärmepumpe, heating, cooling, Total, etc.) werden unter 0_userdata.0.daikin-cloud.... angelegt.

                                        @apollon77 - evtl. kann man das in den Adapter schreddern...

                                        /* TypeScript (TS) @Armilar
                                         *
                                         * This Script will read the consumption Data from Daikin-Cloud adapter and transform the raw data into individual data points similar to how it's shown in the Daikin Onecta App.
                                         * It will also sum up the historic consumption from the current and previous year and update the total consumption meter going forward.
                                         * 
                                         * The data is created in the following path analogous to the daikin cloud data
                                         * 0_userdata.0.daikin-cloud.0...
                                         * 
                                         * Createtd: 14.11.2024
                                         */
                                        
                                        // Log-Mode
                                        const logMode: any = 'info'; // 'info' or 'debug'
                                        // Path in 0_userdata
                                        const mainPath: string = '0_userdata.0.';
                                        // Onnecta hours (if d-raw)
                                        const hourly: Array<string>  = ["00:00 - 02:00", "02:00 - 04:00", "04:00 - 06:00", "06:00 - 08:00", "08:00 - 10:00", "10:00 - 12:00", "12:00 - 14:00", "14:00 - 16:00", "16:00 - 18:00", "18:00 - 20:00", "20:00 - 22:00", "22:00 - 24:00"];
                                        // Onnecta weekdays (if w-raw)
                                        const daily: Array<string>   = ["01_Monday", "02_Tuesday", "03_Wednesday", "04_Thursday", "05_Friday", "06_Saturday", "07_Sunday"];
                                        // Onnecta months  (if m-raw)
                                        const monthly: Array<string> = ["01_Januray", "02_February", "03_March", "04_April", "05_May", "06_June", "07_July", "08_August", "09_September", "10_October", "11_November", "12_December"];
                                        
                                        let devices: string[] = getDeviceNames("daikin-cloud.");
                                        
                                        function setOrCreateState(id: string, value: any, forceCreation: boolean = true, common: Partial<iobJS.StateCommon> = {}, callback?: iobJS.SetStateCallback): void {
                                            if (!existsState(id)) {
                                                createState(id, value, forceCreation, common, callback);
                                            } else {
                                                setState(id, value, true);
                                            }
                                        }
                                        
                                        // Get Daikin Device Names
                                        function getDeviceNames(vAdapterInstance: string): string[] {
                                            let devices = [];
                                            $(vAdapterInstance + '*raw').each(function (id) {
                                                if (devices.indexOf(id) == -1) {
                                                    devices.push(id);
                                                }
                                            });
                                            return devices;
                                        }
                                        
                                        async function writeConsumtionData(path: string, rawType: string, rawData: number[]): Promise<void> {
                                            log(rawType + ' - ' + rawData, logMode);
                                            let total: number = 0;
                                            switch (rawType) {
                                        	case "d-raw":
                                                    for (let j = 0; j < 12; j++) {
                                                        let dpName = "Yesterday." + hourly[j];
                                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: hourly[j], role: 'value.power', unit: 'kWh'});
                                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                        total = total + rawData[j];
                                                    }
                                                    setOrCreateState(mainPath + path + 'Total.Yesterday', total, true, {type: 'number', name: 'Yesterday', role: 'value.power',unit: 'kWh'});
                                                    total = 0;
                                                    for (let j = 12; j < 24; j++) {
                                                        let dpName = "Today." + hourly[j-12];
                                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: hourly[j-12], role: 'value.power', unit: 'kWh'});
                                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                        total = total + rawData[j];
                                                    }
                                                    setOrCreateState(mainPath + path + 'Total.Today', total, true, {type: 'number', name: 'Today', role: 'value.power',unit: 'kWh'});
                                                    break;
                                        	case "w-raw":
                                                    for (let j = 0; j < 7; j++) {
                                                        let dpName = "LastWeek." + daily[j];
                                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: daily[j], role: 'value.power', unit: 'kWh'});
                                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                        total = total + rawData[j];
                                                    }
                                                    setOrCreateState(mainPath + path + 'Total.LastWeek', total, true, {type: 'number', name: 'LastWeek', role: 'value.power',unit: 'kWh'});
                                                    total = 0;
                                                    for (let j = 7; j < 14; j++) {
                                                        let dpName = "ThisWeek." + daily[j-7];
                                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: daily[j-7], role: 'value.power', unit: 'kWh'});
                                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                        total = total + rawData[j];
                                                    }
                                                    setOrCreateState(mainPath + path + 'Total.ThisWeek', total, true, {type: 'number', name: 'ThisWeek', role: 'value.power',unit: 'kWh'});
                                                    break;
                                        	case "m-raw":
                                                    for (let j = 0; j < 12; j++) {
                                                        let dpName = "LastYear." + monthly[j];
                                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: monthly[j], role: 'value.power', unit: 'kWh'});
                                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                        total = total + rawData[j];
                                                    }
                                                    setOrCreateState(mainPath + path + 'Total.LastYear', total, true, {type: 'number', name: 'LastYear', role: 'value.power',unit: 'kWh'});
                                                    total = 0;
                                                    for (let j = 12; j < 24; j++) {
                                                        let dpName = "ThisYear." + monthly[j-12];
                                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: monthly[j-12], role: 'value.power', unit: 'kWh'});
                                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                        total = total + rawData[j];
                                                    }
                                                    setOrCreateState(mainPath + path + 'Total.ThisYear', total, true, {type: 'number', name: 'ThisYear', role: 'value.power',unit: 'kWh'});
                                                    break;
                                            }
                                        }
                                        
                                        async function readConsumtionData(): Promise<void> {
                                            for (let i = 0; i < devices.length; i++) {
                                                //get d-raw; w-raw; m-raw
                                                let dev: any = devices[i].split('.');
                                                let state = getState(devices[i]).val;
                                                state = state.slice(1,-1);
                                                state = state.replaceAll('null', '0');
                                                await writeConsumtionData(devices[i].slice(0,-5), dev[dev.length -1], Array.from(state.split(','), Number));
                                            }
                                        }
                                        readConsumtionData();
                                        
                                        on({ id: [].concat(Array.prototype.slice.apply($('daikin-cloud.*.lastUpdateReceived'))), change: 'any' }, async (obj) => {
                                            await readConsumtionData();
                                        });
                                        
                                        K Offline
                                        K Offline
                                        Kredar
                                        schrieb am zuletzt editiert von Kredar
                                        #211

                                        @armilar sagte in Test Adapter Daikin-Cloud 0.4.0:

                                        /* TypeScript (TS) @Armilar
                                        *

                                        • This Script will read the consumption Data from Daikin-Cloud adapter and transform the raw data into individual data points similar to how it's shown in the Daikin Onecta App.
                                        • It will also sum up the historic consumption from the current and previous year and update the total consumption meter going forward.
                                        • The data is created in the following path analogous to the daikin cloud data
                                        • 0_userdata.0.daikin-cloud.0...
                                        • Createtd: 14.11.2024
                                          */

                                        // Log-Mode
                                        const logMode: any = 'info'; // 'info' or 'debug'
                                        // Path in 0_userdata
                                        const mainPath: string = '0_userdata.0.';
                                        // Onnecta hours (if d-raw)
                                        const hourly: Array<string> = ["00:00 - 02:00", "02:00 - 04:00", "04:00 - 06:00", "06:00 - 08:00", "08:00 - 10:00", "10:00 - 12:00", "12:00 - 14:00", "14:00 - 16:00", "16:00 - 18:00", "18:00 - 20:00", "20:00 - 22:00", "22:00 - 24:00"];
                                        // Onnecta weekdays (if w-raw)
                                        const daily: Array<string> = ["01_Monday", "02_Tuesday", "03_Wednesday", "04_Thursday", "05_Friday", "06_Saturday", "07_Sunday"];
                                        // Onnecta months (if m-raw)
                                        const monthly: Array<string> = ["01_Januray", "02_February", "03_March", "04_April", "05_May", "06_June", "07_July", "08_August", "09_September", "10_October", "11_November", "12_December"];

                                        let devices: string[] = getDeviceNames("daikin-cloud.");

                                        function setOrCreateState(id: string, value: any, forceCreation: boolean = true, common: Partial<iobJS.StateCommon> = {}, callback?: iobJS.SetStateCallback): void {
                                        if (!existsState(id)) {
                                        createState(id, value, forceCreation, common, callback);
                                        } else {
                                        setState(id, value, true);
                                        }
                                        }

                                        // Get Daikin Device Names
                                        function getDeviceNames(vAdapterInstance: string): string[] {
                                        let devices = [];
                                        $(vAdapterInstance + '*raw').each(function (id) {
                                        if (devices.indexOf(id) == -1) {
                                        devices.push(id);
                                        }
                                        });
                                        return devices;
                                        }

                                        async function writeConsumtionData(path: string, rawType: string, rawData: number[]): Promise<void> {
                                        log(rawType + ' - ' + rawData, logMode);
                                        let total: number = 0;
                                        switch (rawType) {
                                        case "d-raw":
                                        for (let j = 0; j < 12; j++) {
                                        let dpName = "Yesterday." + hourly[j];
                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: hourly[j], role: 'value.power', unit: 'kWh'});
                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                        total = total + rawData[j];
                                        }
                                        setOrCreateState(mainPath + path + 'Total.Yesterday', total, true, {type: 'number', name: 'Yesterday', role: 'value.power',unit: 'kWh'});
                                        total = 0;
                                        for (let j = 12; j < 24; j++) {
                                        let dpName = "Today." + hourly[j-12];
                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: hourly[j-12], role: 'value.power', unit: 'kWh'});
                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                        total = total + rawData[j];
                                        }
                                        setOrCreateState(mainPath + path + 'Total.Today', total, true, {type: 'number', name: 'Today', role: 'value.power',unit: 'kWh'});
                                        break;
                                        case "w-raw":
                                        for (let j = 0; j < 7; j++) {
                                        let dpName = "LastWeek." + daily[j];
                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: daily[j], role: 'value.power', unit: 'kWh'});
                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                        total = total + rawData[j];
                                        }
                                        setOrCreateState(mainPath + path + 'Total.LastWeek', total, true, {type: 'number', name: 'LastWeek', role: 'value.power',unit: 'kWh'});
                                        total = 0;
                                        for (let j = 7; j < 14; j++) {
                                        let dpName = "ThisWeek." + daily[j-7];
                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: daily[j-7], role: 'value.power', unit: 'kWh'});
                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                        total = total + rawData[j];
                                        }
                                        setOrCreateState(mainPath + path + 'Total.ThisWeek', total, true, {type: 'number', name: 'ThisWeek', role: 'value.power',unit: 'kWh'});
                                        break;
                                        case "m-raw":
                                        for (let j = 0; j < 12; j++) {
                                        let dpName = "LastYear." + monthly[j];
                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: monthly[j], role: 'value.power', unit: 'kWh'});
                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                        total = total + rawData[j];
                                        }
                                        setOrCreateState(mainPath + path + 'Total.LastYear', total, true, {type: 'number', name: 'LastYear', role: 'value.power',unit: 'kWh'});
                                        total = 0;
                                        for (let j = 12; j < 24; j++) {
                                        let dpName = "ThisYear." + monthly[j-12];
                                        setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: monthly[j-12], role: 'value.power', unit: 'kWh'});
                                        log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                        total = total + rawData[j];
                                        }
                                        setOrCreateState(mainPath + path + 'Total.ThisYear', total, true, {type: 'number', name: 'ThisYear', role: 'value.power',unit: 'kWh'});
                                        break;
                                        }
                                        }

                                        async function readConsumtionData(): Promise<void> {
                                        for (let i = 0; i < devices.length; i++) {
                                        //get d-raw; w-raw; m-raw
                                        let dev: any = devices[i].split('.');
                                        let state = getState(devices[i]).val;
                                        state = state.slice(1,-1);
                                        state = state.replaceAll('null', '0');
                                        await writeConsumtionData(devices[i].slice(0,-5), dev[dev.length -1], Array.from(state.split(','), Number));
                                        }
                                        }
                                        readConsumtionData();

                                        on({ id: [].concat(Array.prototype.slice.apply($('daikin-cloud.*.lastUpdateReceived'))), change: 'any' }, async (obj) => {
                                        await readConsumtionData();
                                        });

                                        Super da ist ja auch meine Klimaanlage von Daikin drinnen 🙂 Läuft 1a. Danke für das überarbeite Script. Merci

                                        L 1 Antwort Letzte Antwort
                                        0
                                        • ArmilarA Armilar

                                          @lemmi

                                          Hallo zusammen,

                                          habe mal ein wenig Zeit gefunden, um das Skript auf alle Device-Typen und Adapterinstanzen anzupassen.

                                          TypeScript anlegen. Inhalt reinwerfen. Sollte nichts angepasst werden müssen. Skript starten...

                                          Die Daten für jedes Daikin-Device in der Onnecta-App (Klima, Wärmepumpe, heating, cooling, Total, etc.) werden unter 0_userdata.0.daikin-cloud.... angelegt.

                                          @apollon77 - evtl. kann man das in den Adapter schreddern...

                                          /* TypeScript (TS) @Armilar
                                           *
                                           * This Script will read the consumption Data from Daikin-Cloud adapter and transform the raw data into individual data points similar to how it's shown in the Daikin Onecta App.
                                           * It will also sum up the historic consumption from the current and previous year and update the total consumption meter going forward.
                                           * 
                                           * The data is created in the following path analogous to the daikin cloud data
                                           * 0_userdata.0.daikin-cloud.0...
                                           * 
                                           * Createtd: 14.11.2024
                                           */
                                          
                                          // Log-Mode
                                          const logMode: any = 'info'; // 'info' or 'debug'
                                          // Path in 0_userdata
                                          const mainPath: string = '0_userdata.0.';
                                          // Onnecta hours (if d-raw)
                                          const hourly: Array<string>  = ["00:00 - 02:00", "02:00 - 04:00", "04:00 - 06:00", "06:00 - 08:00", "08:00 - 10:00", "10:00 - 12:00", "12:00 - 14:00", "14:00 - 16:00", "16:00 - 18:00", "18:00 - 20:00", "20:00 - 22:00", "22:00 - 24:00"];
                                          // Onnecta weekdays (if w-raw)
                                          const daily: Array<string>   = ["01_Monday", "02_Tuesday", "03_Wednesday", "04_Thursday", "05_Friday", "06_Saturday", "07_Sunday"];
                                          // Onnecta months  (if m-raw)
                                          const monthly: Array<string> = ["01_Januray", "02_February", "03_March", "04_April", "05_May", "06_June", "07_July", "08_August", "09_September", "10_October", "11_November", "12_December"];
                                          
                                          let devices: string[] = getDeviceNames("daikin-cloud.");
                                          
                                          function setOrCreateState(id: string, value: any, forceCreation: boolean = true, common: Partial<iobJS.StateCommon> = {}, callback?: iobJS.SetStateCallback): void {
                                              if (!existsState(id)) {
                                                  createState(id, value, forceCreation, common, callback);
                                              } else {
                                                  setState(id, value, true);
                                              }
                                          }
                                          
                                          // Get Daikin Device Names
                                          function getDeviceNames(vAdapterInstance: string): string[] {
                                              let devices = [];
                                              $(vAdapterInstance + '*raw').each(function (id) {
                                                  if (devices.indexOf(id) == -1) {
                                                      devices.push(id);
                                                  }
                                              });
                                              return devices;
                                          }
                                          
                                          async function writeConsumtionData(path: string, rawType: string, rawData: number[]): Promise<void> {
                                              log(rawType + ' - ' + rawData, logMode);
                                              let total: number = 0;
                                              switch (rawType) {
                                          	case "d-raw":
                                                      for (let j = 0; j < 12; j++) {
                                                          let dpName = "Yesterday." + hourly[j];
                                                          setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: hourly[j], role: 'value.power', unit: 'kWh'});
                                                          log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                          total = total + rawData[j];
                                                      }
                                                      setOrCreateState(mainPath + path + 'Total.Yesterday', total, true, {type: 'number', name: 'Yesterday', role: 'value.power',unit: 'kWh'});
                                                      total = 0;
                                                      for (let j = 12; j < 24; j++) {
                                                          let dpName = "Today." + hourly[j-12];
                                                          setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: hourly[j-12], role: 'value.power', unit: 'kWh'});
                                                          log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                          total = total + rawData[j];
                                                      }
                                                      setOrCreateState(mainPath + path + 'Total.Today', total, true, {type: 'number', name: 'Today', role: 'value.power',unit: 'kWh'});
                                                      break;
                                          	case "w-raw":
                                                      for (let j = 0; j < 7; j++) {
                                                          let dpName = "LastWeek." + daily[j];
                                                          setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: daily[j], role: 'value.power', unit: 'kWh'});
                                                          log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                          total = total + rawData[j];
                                                      }
                                                      setOrCreateState(mainPath + path + 'Total.LastWeek', total, true, {type: 'number', name: 'LastWeek', role: 'value.power',unit: 'kWh'});
                                                      total = 0;
                                                      for (let j = 7; j < 14; j++) {
                                                          let dpName = "ThisWeek." + daily[j-7];
                                                          setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: daily[j-7], role: 'value.power', unit: 'kWh'});
                                                          log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                          total = total + rawData[j];
                                                      }
                                                      setOrCreateState(mainPath + path + 'Total.ThisWeek', total, true, {type: 'number', name: 'ThisWeek', role: 'value.power',unit: 'kWh'});
                                                      break;
                                          	case "m-raw":
                                                      for (let j = 0; j < 12; j++) {
                                                          let dpName = "LastYear." + monthly[j];
                                                          setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: monthly[j], role: 'value.power', unit: 'kWh'});
                                                          log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                          total = total + rawData[j];
                                                      }
                                                      setOrCreateState(mainPath + path + 'Total.LastYear', total, true, {type: 'number', name: 'LastYear', role: 'value.power',unit: 'kWh'});
                                                      total = 0;
                                                      for (let j = 12; j < 24; j++) {
                                                          let dpName = "ThisYear." + monthly[j-12];
                                                          setOrCreateState(mainPath + path + dpName, rawData[j], true, {type: 'number', name: monthly[j-12], role: 'value.power', unit: 'kWh'});
                                                          log(mainPath + path + dpName + ': ' + rawData[j], logMode);
                                                          total = total + rawData[j];
                                                      }
                                                      setOrCreateState(mainPath + path + 'Total.ThisYear', total, true, {type: 'number', name: 'ThisYear', role: 'value.power',unit: 'kWh'});
                                                      break;
                                              }
                                          }
                                          
                                          async function readConsumtionData(): Promise<void> {
                                              for (let i = 0; i < devices.length; i++) {
                                                  //get d-raw; w-raw; m-raw
                                                  let dev: any = devices[i].split('.');
                                                  let state = getState(devices[i]).val;
                                                  state = state.slice(1,-1);
                                                  state = state.replaceAll('null', '0');
                                                  await writeConsumtionData(devices[i].slice(0,-5), dev[dev.length -1], Array.from(state.split(','), Number));
                                              }
                                          }
                                          readConsumtionData();
                                          
                                          on({ id: [].concat(Array.prototype.slice.apply($('daikin-cloud.*.lastUpdateReceived'))), change: 'any' }, async (obj) => {
                                              await readConsumtionData();
                                          });
                                          
                                          L Offline
                                          L Offline
                                          Lemmi
                                          schrieb am zuletzt editiert von
                                          #212

                                          @armilar Welchen Teil des Skriptes muss ich denn kopieren und einfügen? Irgendwie haut das bei mir nicht hin. Das Blockly funzt.
                                          Vielen Dank1

                                          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

                                          756

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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