Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. FRONIUS Adapter Entwicklung eingestellt?

NEWS

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

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

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

FRONIUS Adapter Entwicklung eingestellt?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
fronius
440 Beiträge 44 Kommentatoren 119.6k Aufrufe 45 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.
  • I Offline
    I Offline
    io2023
    schrieb am zuletzt editiert von
    #419

    Hallo,

    für mich ist das Thema iobroker komplett neu.
    Vor kurzem wurde meine PV-Anlage mit 2 Fronius WR, Smartmeter TS 65A3 und einer BYD HVS 10,2 in Betrieb genommen. Nun möchte ich gerne das ganze natürlich auch auswerten und bin bei meiner Suche auf den iobroker und den Fronius Adapter gestoßen. Die Installation und die die Einrichtung haben auch funktioniert.

    Nun erschlägt mich jedoch die Flut der ausgegebenen Daten. Ich möchte nun langsam damit starten und für den Anfang die Werte für Netzbezug, PV- Produktion, Verbrauch, Einspeisung, Batterie Ent- / Ladung und Batterieladestand nutzen.

    Welche Werte nutze ich dafür?

    Ich habe den Thread komplett durchgelesen, wie auch die Dokumentation von Fronius zur Api- Schnittstelle. Aber als Neuling steige ich da noch nicht durch.

    Vielen Dank schonmal.

    D 1 Antwort Letzte Antwort
    0
    • I io2023

      Hallo,

      für mich ist das Thema iobroker komplett neu.
      Vor kurzem wurde meine PV-Anlage mit 2 Fronius WR, Smartmeter TS 65A3 und einer BYD HVS 10,2 in Betrieb genommen. Nun möchte ich gerne das ganze natürlich auch auswerten und bin bei meiner Suche auf den iobroker und den Fronius Adapter gestoßen. Die Installation und die die Einrichtung haben auch funktioniert.

      Nun erschlägt mich jedoch die Flut der ausgegebenen Daten. Ich möchte nun langsam damit starten und für den Anfang die Werte für Netzbezug, PV- Produktion, Verbrauch, Einspeisung, Batterie Ent- / Ladung und Batterieladestand nutzen.

      Welche Werte nutze ich dafür?

      Ich habe den Thread komplett durchgelesen, wie auch die Dokumentation von Fronius zur Api- Schnittstelle. Aber als Neuling steige ich da noch nicht durch.

      Vielen Dank schonmal.

      D Online
      D Online
      diwoma
      schrieb am zuletzt editiert von diwoma
      #420

      @io2023
      Das hängt jetzt davon ab, ob die die Version 1.x oder die Version 2.01 installiert hast.
      Aber suche nach folgenden Namen:
      P_AKKU ...... Lade/Entlade-Leistung (Ladung ist negativ)
      P_GRID ....... Bezug/Lieferung ins GRID (Bezug ist positiv)
      P_LOAD ..... Verbrauch (im Haus)
      P_PV ........... Leistung von der PV
      SOC ............ Ladestand der Batterie

      in Version 1.x unter Fronius.0.powerflow
      ab Version 2.x unter Fronius.0.site

      Der SOC liegt unter dem Inverter-Folder
      Version 1.x .... fronius.0.powerflow.inverter1.SOC
      Version 2.x ..... fronius.0.inverter.1.SOC

      Hängt aber wahrscheinlich auch davon ab, ob Du den Fronius-Smartmeter hast (wie ich)
      Bei anderer Konfiguration könnte es anders sein, aber die kenne ich nicht.

      -- diwoma

      ioBroker in LX-Container in Proxmox
      Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

      NegaleinN I 2 Antworten Letzte Antwort
      0
      • D diwoma

        @io2023
        Das hängt jetzt davon ab, ob die die Version 1.x oder die Version 2.01 installiert hast.
        Aber suche nach folgenden Namen:
        P_AKKU ...... Lade/Entlade-Leistung (Ladung ist negativ)
        P_GRID ....... Bezug/Lieferung ins GRID (Bezug ist positiv)
        P_LOAD ..... Verbrauch (im Haus)
        P_PV ........... Leistung von der PV
        SOC ............ Ladestand der Batterie

        in Version 1.x unter Fronius.0.powerflow
        ab Version 2.x unter Fronius.0.site

        Der SOC liegt unter dem Inverter-Folder
        Version 1.x .... fronius.0.powerflow.inverter1.SOC
        Version 2.x ..... fronius.0.inverter.1.SOC

        Hängt aber wahrscheinlich auch davon ab, ob Du den Fronius-Smartmeter hast (wie ich)
        Bei anderer Konfiguration könnte es anders sein, aber die kenne ich nicht.

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        schrieb am zuletzt editiert von
        #421

        @diwoma sagte in FRONIUS Adapter Entwicklung eingestellt?:

        SOC

        was ist der SOC?

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        C 1 Antwort Letzte Antwort
        0
        • NegaleinN Negalein

          @diwoma sagte in FRONIUS Adapter Entwicklung eingestellt?:

          SOC

          was ist der SOC?

          C Offline
          C Offline
          c1olli
          schrieb am zuletzt editiert von
          #422

          SoC = state of charge

          Gruß
          Olli

          1 Antwort Letzte Antwort
          1
          • D diwoma

            @io2023
            Das hängt jetzt davon ab, ob die die Version 1.x oder die Version 2.01 installiert hast.
            Aber suche nach folgenden Namen:
            P_AKKU ...... Lade/Entlade-Leistung (Ladung ist negativ)
            P_GRID ....... Bezug/Lieferung ins GRID (Bezug ist positiv)
            P_LOAD ..... Verbrauch (im Haus)
            P_PV ........... Leistung von der PV
            SOC ............ Ladestand der Batterie

            in Version 1.x unter Fronius.0.powerflow
            ab Version 2.x unter Fronius.0.site

            Der SOC liegt unter dem Inverter-Folder
            Version 1.x .... fronius.0.powerflow.inverter1.SOC
            Version 2.x ..... fronius.0.inverter.1.SOC

            Hängt aber wahrscheinlich auch davon ab, ob Du den Fronius-Smartmeter hast (wie ich)
            Bei anderer Konfiguration könnte es anders sein, aber die kenne ich nicht.

            I Offline
            I Offline
            io2023
            schrieb am zuletzt editiert von
            #423

            @diwoma

            Danke für die schnelle Antwort.
            Ich habe gerade mal auf die Version 2.01 aktualisiert. Mit P_LOAD habe ich eine größere Abweichung zur Anzeige im Solarweb.

            p_load.jpg

            An was kann das liegen?

            Das Smartmeter ist von Fronius.

            Kann ich den Ordner Powerflow dann löschen?

            JB_SullivanJ 1 Antwort Letzte Antwort
            0
            • I io2023

              @diwoma

              Danke für die schnelle Antwort.
              Ich habe gerade mal auf die Version 2.01 aktualisiert. Mit P_LOAD habe ich eine größere Abweichung zur Anzeige im Solarweb.

              p_load.jpg

              An was kann das liegen?

              Das Smartmeter ist von Fronius.

              Kann ich den Ordner Powerflow dann löschen?

              JB_SullivanJ Offline
              JB_SullivanJ Offline
              JB_Sullivan
              schrieb am zuletzt editiert von
              #424

              @io2023 Das Solarweb hängt gewöhnlich um einige Minuten hinterher. Also wenn du die DP`s vergleichen willst, dann mit dem WR eigenen Webinterface - da sollte es Deckungsgleich sein. Das Solarweb ist keine gute Referenz - schon gar nicht, wenn du auch noch ein Auge auf die Erträge haben willst.

              63032f6d-6c58-485c-ba3c-4aa2cceccd20-image.png

              ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

              I 1 Antwort Letzte Antwort
              0
              • J Offline
                J Offline
                JJPhoenix79
                schrieb am zuletzt editiert von
                #425

                Hallo zusammen,

                ich bin nun schon echt lange am Lesen, was das Thema Solaarweb/Fronius usw angeht. Im IOB habe ich die beiden adapter auch schon am laufen. und teilweise monitore ich die Werte auch schon per DB und Grafana.

                Bei mir läuft eine 15KW-Anlage, mit folgenden Komponenten:
                Fronius Symo GEN24 10.0
                Fronius Symo 5.0-3-M
                Batterie: BYD Premium HVS/M 13,8kwh
                Fronius Smart Meter (RTU)

                Für mich ein paar Verständnisfragen:
                Wie bekomme ich die Gesamtwerte beider WR ohne Solarweb-Adapter ausgelesen, da es ja zwei unterschiedliche IPs sind?
                Geht das nur über MODBUS?
                Wenn ja, was benötige ich da für Hardware?

                Grüße und Danke schon einmal im Vorraus.

                Jörg

                C mcm1957M 2 Antworten Letzte Antwort
                0
                • J JJPhoenix79

                  Hallo zusammen,

                  ich bin nun schon echt lange am Lesen, was das Thema Solaarweb/Fronius usw angeht. Im IOB habe ich die beiden adapter auch schon am laufen. und teilweise monitore ich die Werte auch schon per DB und Grafana.

                  Bei mir läuft eine 15KW-Anlage, mit folgenden Komponenten:
                  Fronius Symo GEN24 10.0
                  Fronius Symo 5.0-3-M
                  Batterie: BYD Premium HVS/M 13,8kwh
                  Fronius Smart Meter (RTU)

                  Für mich ein paar Verständnisfragen:
                  Wie bekomme ich die Gesamtwerte beider WR ohne Solarweb-Adapter ausgelesen, da es ja zwei unterschiedliche IPs sind?
                  Geht das nur über MODBUS?
                  Wenn ja, was benötige ich da für Hardware?

                  Grüße und Danke schon einmal im Vorraus.

                  Jörg

                  C Offline
                  C Offline
                  c1olli
                  schrieb am zuletzt editiert von
                  #426

                  @jjphoenix79
                  Mach einfach zwei Instanzen auf, jeweils mit den IPs der WR.

                  Gruß
                  Olli

                  1 Antwort Letzte Antwort
                  0
                  • J JJPhoenix79

                    Hallo zusammen,

                    ich bin nun schon echt lange am Lesen, was das Thema Solaarweb/Fronius usw angeht. Im IOB habe ich die beiden adapter auch schon am laufen. und teilweise monitore ich die Werte auch schon per DB und Grafana.

                    Bei mir läuft eine 15KW-Anlage, mit folgenden Komponenten:
                    Fronius Symo GEN24 10.0
                    Fronius Symo 5.0-3-M
                    Batterie: BYD Premium HVS/M 13,8kwh
                    Fronius Smart Meter (RTU)

                    Für mich ein paar Verständnisfragen:
                    Wie bekomme ich die Gesamtwerte beider WR ohne Solarweb-Adapter ausgelesen, da es ja zwei unterschiedliche IPs sind?
                    Geht das nur über MODBUS?
                    Wenn ja, was benötige ich da für Hardware?

                    Grüße und Danke schon einmal im Vorraus.

                    Jörg

                    mcm1957M Online
                    mcm1957M Online
                    mcm1957
                    schrieb am zuletzt editiert von
                    #427

                    @jjphoenix79

                    Dazu gab es mal einen Feature request (https://github.com/iobroker-community-adapters/ioBroker.fronius/issues/63)

                    @nkleber hat dazu geantwortet:

                    One instance shall always relate to 1 IP address. Multiple inverters with 1 datamanager are working properly.
                    

                    Ergo wenn du einen DataManager hast sollte diese beide WR erkennen.
                    Wenn du 2 DataManager hast, dann brauchst du 2 Instanzen.

                    Falls weitere Fragen existieren oder Diskussionbedraf, bitte ping @nkleber direkt an. Ich kann hier leider nicht mehr beigtragen da ich zur Zeot mnicht mal einen Fronius besitzt bzw. drauf ZUgriff habe.

                    McM1957

                    Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                    Support Repositoryverwaltung.

                    Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                    LESEN - gute Forenbeitrage

                    J 1 Antwort Letzte Antwort
                    0
                    • JB_SullivanJ JB_Sullivan

                      @io2023 Das Solarweb hängt gewöhnlich um einige Minuten hinterher. Also wenn du die DP`s vergleichen willst, dann mit dem WR eigenen Webinterface - da sollte es Deckungsgleich sein. Das Solarweb ist keine gute Referenz - schon gar nicht, wenn du auch noch ein Auge auf die Erträge haben willst.

                      63032f6d-6c58-485c-ba3c-4aa2cceccd20-image.png

                      I Offline
                      I Offline
                      io2023
                      schrieb am zuletzt editiert von
                      #428

                      @jb_sullivan
                      Danke für den Hinweis. Jetzt passen die Werte auch.

                      1 Antwort Letzte Antwort
                      0
                      • S Strobelix

                        @friedi100 bei den neuen Gen24 Auslieferungen ist die Solar-API abgeschalten und muss im Wechselrichter aktiviert werden

                        IMG_5910.jpeg

                        F Offline
                        F Offline
                        friedi100
                        schrieb am zuletzt editiert von
                        #429

                        @strobelix
                        Vielen Dank für deine Hilfe.
                        Jetzt funktioniert alles perfekt.

                        1 Antwort Letzte Antwort
                        0
                        • mcm1957M mcm1957

                          @jjphoenix79

                          Dazu gab es mal einen Feature request (https://github.com/iobroker-community-adapters/ioBroker.fronius/issues/63)

                          @nkleber hat dazu geantwortet:

                          One instance shall always relate to 1 IP address. Multiple inverters with 1 datamanager are working properly.
                          

                          Ergo wenn du einen DataManager hast sollte diese beide WR erkennen.
                          Wenn du 2 DataManager hast, dann brauchst du 2 Instanzen.

                          Falls weitere Fragen existieren oder Diskussionbedraf, bitte ping @nkleber direkt an. Ich kann hier leider nicht mehr beigtragen da ich zur Zeot mnicht mal einen Fronius besitzt bzw. drauf ZUgriff habe.

                          McM1957

                          J Offline
                          J Offline
                          JJPhoenix79
                          schrieb am zuletzt editiert von
                          #430

                          @mcm57
                          So, unsere Anlage ist nun auch wieder am öffentlichen Netz und ich kann ich weiter mit dem Thema beschäftigen.

                          Nach langem hin und her, auch mit dem Fronius Support, sehe ich die Geräte im Solar web wieder.

                          434f8dcd-24b8-4464-b8d9-049705be8516-grafik.png

                          Leider finde ich im IOB des Fronius Smartmeters nicht alle Werte, die ich gerne auslesen/monitoren möchte.
                          dfced526-1aad-4efe-9786-a168ec3d4c18-grafik.png

                          zum Beispiel, was gerade verbraucht wird oder was produziert wird. Schön wäre es wirklich aus einer Datenquelle alles zu bekommen.

                          nkleberN da_WoodyD 2 Antworten Letzte Antwort
                          0
                          • J JJPhoenix79

                            @mcm57
                            So, unsere Anlage ist nun auch wieder am öffentlichen Netz und ich kann ich weiter mit dem Thema beschäftigen.

                            Nach langem hin und her, auch mit dem Fronius Support, sehe ich die Geräte im Solar web wieder.

                            434f8dcd-24b8-4464-b8d9-049705be8516-grafik.png

                            Leider finde ich im IOB des Fronius Smartmeters nicht alle Werte, die ich gerne auslesen/monitoren möchte.
                            dfced526-1aad-4efe-9786-a168ec3d4c18-grafik.png

                            zum Beispiel, was gerade verbraucht wird oder was produziert wird. Schön wäre es wirklich aus einer Datenquelle alles zu bekommen.

                            nkleberN Offline
                            nkleberN Offline
                            nkleber
                            schrieb am zuletzt editiert von
                            #431

                            @jjphoenix79 Die Daten kannst du nur aus der differenz zwischen WR und Smartmeter rechnen. Diese werden nicht über die API zur verfügung gestellt. Das Solarweb portal berechnet diese Daten auch selbst

                            gruß Norbert

                            1 Antwort Letzte Antwort
                            1
                            • J JJPhoenix79

                              @mcm57
                              So, unsere Anlage ist nun auch wieder am öffentlichen Netz und ich kann ich weiter mit dem Thema beschäftigen.

                              Nach langem hin und her, auch mit dem Fronius Support, sehe ich die Geräte im Solar web wieder.

                              434f8dcd-24b8-4464-b8d9-049705be8516-grafik.png

                              Leider finde ich im IOB des Fronius Smartmeters nicht alle Werte, die ich gerne auslesen/monitoren möchte.
                              dfced526-1aad-4efe-9786-a168ec3d4c18-grafik.png

                              zum Beispiel, was gerade verbraucht wird oder was produziert wird. Schön wäre es wirklich aus einer Datenquelle alles zu bekommen.

                              da_WoodyD Offline
                              da_WoodyD Offline
                              da_Woody
                              schrieb am zuletzt editiert von
                              #432

                              @jjphoenix79
                              1e80bb4a-7868-4fba-95f5-1e470cf9084b-grafik.png

                              gruß vom Woody
                              HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                              1 Antwort Letzte Antwort
                              0
                              • J Offline
                                J Offline
                                JJPhoenix79
                                schrieb am zuletzt editiert von
                                #433

                                @nkleber said in FRONIUS Adapter Entwicklung eingestellt?:

                                @jjphoenix79 Die Daten kannst du nur aus der differenz zwischen WR und Smartmeter rechnen. Diese werden nicht über die API zur verfügung gestellt. Das Solarweb portal berechnet diese Daten auch selbst

                                gruß Norbert

                                @da_woody said in FRONIUS Adapter Entwicklung eingestellt?:

                                @jjphoenix79
                                1e80bb4a-7868-4fba-95f5-1e470cf9084b-grafik.png

                                Ok, danke euch beider erstmal. Da ich mich auch parallel noch mit dem Modbus beschäftige, warte ich hiermit noch etwas.

                                Möchte gern ohne Cloud, die entsprechenden Daten meiner beider WR ink des SM haben, wenn das denn damit geht.

                                jmeister79J 1 Antwort Letzte Antwort
                                0
                                • J JJPhoenix79

                                  @nkleber said in FRONIUS Adapter Entwicklung eingestellt?:

                                  @jjphoenix79 Die Daten kannst du nur aus der differenz zwischen WR und Smartmeter rechnen. Diese werden nicht über die API zur verfügung gestellt. Das Solarweb portal berechnet diese Daten auch selbst

                                  gruß Norbert

                                  @da_woody said in FRONIUS Adapter Entwicklung eingestellt?:

                                  @jjphoenix79
                                  1e80bb4a-7868-4fba-95f5-1e470cf9084b-grafik.png

                                  Ok, danke euch beider erstmal. Da ich mich auch parallel noch mit dem Modbus beschäftige, warte ich hiermit noch etwas.

                                  Möchte gern ohne Cloud, die entsprechenden Daten meiner beider WR ink des SM haben, wenn das denn damit geht.

                                  jmeister79J Offline
                                  jmeister79J Offline
                                  jmeister79
                                  schrieb am zuletzt editiert von
                                  #434

                                  @jjphoenix79 Die Berechnungen machste dann einfach im iobroker selber, ist kinderleicht.

                                  1 Antwort Letzte Antwort
                                  0
                                  • AlenA Offline
                                    AlenA Offline
                                    Alen
                                    schrieb am zuletzt editiert von
                                    #435

                                    Gibt es in der neuen 2er API eigentlich einen Datenpunkt mit dem aktuellen Tagesverbrauch (Energie) ? Ich konnte nichts finden. Falls nicht, wie könnte man diesem am besten selbst berechnen?

                                    Gruss
                                    Alen

                                    jmeister79J 1 Antwort Letzte Antwort
                                    0
                                    • AlenA Alen

                                      Gibt es in der neuen 2er API eigentlich einen Datenpunkt mit dem aktuellen Tagesverbrauch (Energie) ? Ich konnte nichts finden. Falls nicht, wie könnte man diesem am besten selbst berechnen?

                                      Gruss
                                      Alen

                                      jmeister79J Offline
                                      jmeister79J Offline
                                      jmeister79
                                      schrieb am zuletzt editiert von
                                      #436

                                      @alen hab nix gesehen aber ich erfasse alles selber.

                                      ich mach das so:

                                      Ich machd as mit nem Array aus Sensoren,. ist aber analog zu einzelwerten:

                                      hier:
                                      "Fronius","WH","javascript.0.Zaehler.PVZaehlerFronius_abs","TDWMY"

                                      TWDMY heißt täglich wöchentlich usw... wenn Interesse am ganzen script besteht melde dich

                                      on({id: "fronius.0.inverter.1.TOTAL_ENERGY", change: 'ne'}, function (obj) {
                                      //schedule("* * * * *", function () {
                                          setState("javascript.0.Verbrauch.Fronius_daily_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_daily_last").val)*1000)/1000, true);
                                          setState("javascript.0.Verbrauch.Fronius_weekly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_weekly_last").val)*1000)/1000, true);
                                          setState("javascript.0.Verbrauch.Fronius_monthly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_monthly_last").val)*1000)/1000, true);
                                          setState("javascript.0.Verbrauch.Fronius_yearly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_yearly_last").val)*1000)/1000, true);
                                      });
                                      
                                      schedule("57 23 * * *", function () {
                                          for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third    
                                              if (ArrayOfSensors[n+3].includes('D') ){   
                                                  var actvalue = getState(ArrayOfSensors[n+2]).val;
                                                  var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last').val;
                                                  var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                                  setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily',verbrauch, true);    //Summe des Tages
                                                  setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last', letzter, true); //letzter Zählerstand
                                                  setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_actual', 0, true); //
                                              }
                                          }
                                      
                                      function intervallVerbrauch(totalAct, totalLast){
                                          var consumption = Math.round ((totalAct - totalLast)*100)/100;
                                          totalLast = Math.round (totalAct*100)/100;
                                          return [consumption, totalLast]; 
                                      }
                                      
                                      NegaleinN 1 Antwort Letzte Antwort
                                      0
                                      • jmeister79J jmeister79

                                        @alen hab nix gesehen aber ich erfasse alles selber.

                                        ich mach das so:

                                        Ich machd as mit nem Array aus Sensoren,. ist aber analog zu einzelwerten:

                                        hier:
                                        "Fronius","WH","javascript.0.Zaehler.PVZaehlerFronius_abs","TDWMY"

                                        TWDMY heißt täglich wöchentlich usw... wenn Interesse am ganzen script besteht melde dich

                                        on({id: "fronius.0.inverter.1.TOTAL_ENERGY", change: 'ne'}, function (obj) {
                                        //schedule("* * * * *", function () {
                                            setState("javascript.0.Verbrauch.Fronius_daily_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_daily_last").val)*1000)/1000, true);
                                            setState("javascript.0.Verbrauch.Fronius_weekly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_weekly_last").val)*1000)/1000, true);
                                            setState("javascript.0.Verbrauch.Fronius_monthly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_monthly_last").val)*1000)/1000, true);
                                            setState("javascript.0.Verbrauch.Fronius_yearly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_yearly_last").val)*1000)/1000, true);
                                        });
                                        
                                        schedule("57 23 * * *", function () {
                                            for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third    
                                                if (ArrayOfSensors[n+3].includes('D') ){   
                                                    var actvalue = getState(ArrayOfSensors[n+2]).val;
                                                    var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last').val;
                                                    var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                                    setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily',verbrauch, true);    //Summe des Tages
                                                    setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last', letzter, true); //letzter Zählerstand
                                                    setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_actual', 0, true); //
                                                }
                                            }
                                        
                                        function intervallVerbrauch(totalAct, totalLast){
                                            var consumption = Math.round ((totalAct - totalLast)*100)/100;
                                            totalLast = Math.round (totalAct*100)/100;
                                            return [consumption, totalLast]; 
                                        }
                                        
                                        NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        schrieb am zuletzt editiert von
                                        #437

                                        @jmeister79 sagte in FRONIUS Adapter Entwicklung eingestellt?:

                                        TWDMY heißt täglich wöchentlich usw... wenn Interesse am ganzen script besteht melde dich

                                        hätte Interesse :)

                                        ° Node.js: 20.17.0 NPM: 10.8.2
                                        ° Proxmox, Ubuntu 22.04.3 LTS
                                        ° Fixer ---> iob fix

                                        jmeister79J 1 Antwort Letzte Antwort
                                        0
                                        • NegaleinN Negalein

                                          @jmeister79 sagte in FRONIUS Adapter Entwicklung eingestellt?:

                                          TWDMY heißt täglich wöchentlich usw... wenn Interesse am ganzen script besteht melde dich

                                          hätte Interesse :)

                                          jmeister79J Offline
                                          jmeister79J Offline
                                          jmeister79
                                          schrieb am zuletzt editiert von jmeister79
                                          #438

                                          @negalein

                                          Bitte.
                                          Ist auf meine Bedürfnisse angepasst sollte aber grundsätzlich so funktionieren.

                                          Es werden am Anfang für jeden Sensor die benötigten Punkte angelegt und in History aktiviert.

                                          ps.: Kommentieren war noch nie mein Ding

                                          var hist = {
                                               "history.0": {
                                                  "enabled": true,
                                                  "changesOnly": true,
                                                  "debounce": 10000,
                                                  "maxLength": 360,
                                                  "retention": 31536000
                                               }
                                          };
                                          
                                          
                                          
                                          //Sensor Array aller erfassten Geräte (Diese sind ebreits vorhanden)
                                          // "Name","Einheit","Quelle","MDW"
                                          //T:today
                                          //m: minutelly
                                          //D: Daily
                                          //W: Weekly
                                          //M: Monthly
                                          //Y: Yearly
                                          var ArrayOfSensors = [
                                              "Stromzaehler","kWh","javascript.0.Zaehler.StromZaehler_abs","TmDWMY",         // "javascript.0.Zaehler.StromZaehler_abs"
                                              "TauchpumpeSicker","kWh","fritzdect.0.DECT_xxxxxxxx.energy","mDW",
                                              "TauchpumpeRegen","kWh","fritzdect.0.DECT_xxxxxxxx.energy","mDW",
                                              "TauchpumpeLager","kWh","fritzdect.0.DECT_xxxxxxxx.energy","mDW",
                                              "TauchpumpeHeiz","kWh","fritzdect.0.DECT_xxxxxxxx","mDW",
                                              "TauchpumpeWerkstatt","kWh","fritzdect.0.DECT_xxxxxxxx.energy","mDW",
                                              "Entfeuchter","kWh","zigbee.0.xxxxxxxx.consumption","TmDW",  
                                              "Gaszaehler","m³","javascript.0.Zaehler.GasZaehler_abs","TmDWMY",                      // "javascript.0.Zaehler.GasZaehler_abs"
                                              "Heizung","kWh","ems-esp.0.heatSources.energyMonitoring.consumption","DW",
                                              "Brennerstarts","","ems-esp.0.heatSources.numberOfStarts","TDW",
                                              "Photovoltaik","kWH","javascript.0.Zaehler.PVZaehler_abs","TmDWMY",
                                              "Fronius","WH","javascript.0.Zaehler.PVZaehlerFronius_abs","TDWMY"
                                              ];
                                          
                                              
                                          var historyObjArray = [];
                                          //Alle Datenpunkte kreieren
                                          for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every second
                                              if (ArrayOfSensors[n+3].includes('T') ){
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_actual', 0.0, {name: "diff today"+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});    
                                              }
                                              if (ArrayOfSensors[n+3].includes('m') ){
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s', 0.0, {name: "diff last 10min "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s_last', 0.0, {name: "abs last 10 min "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s'); //Ins History Array
                                              }
                                              if (ArrayOfSensors[n+3].includes('D') ){
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily', 0.0, {name: "diff last day "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last', 0.0, {name: "abs last day "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily');//Ins History Array
                                              }
                                              if (ArrayOfSensors[n+3].includes('W') ){    
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly', 0.0, {name: "diff last week "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_last', 0.0, {name: "abs last Week "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_actual', 0.0, {name: "abs last Week "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly');//Ins History Array
                                              }
                                              if (ArrayOfSensors[n+3].includes('M') ){
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly', 0.0, {name: "diff last month "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly_last', 0.0, {name: "abs last month "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly_actual', 0.0, {name: "abs last Week "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly');//Ins History Array
                                              }
                                              if (ArrayOfSensors[n+3].includes('Y') ){    
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly', 0.0, {name: "diff last year "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly_last', 0.0, {name: "abs last year "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly_actual', 0.0, {name: "diff actual yeat "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                                                  historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly');//Ins History Array
                                              }
                                          }
                                          
                                          //History aktivieren für daily, weekly, monthly, yearly
                                          for (var n = 0; n < historyObjArray.length; n++) { // for every second
                                             // log (historyObjArray[n]);
                                          
                                              sendTo('history.0', 'enableHistory', {
                                                  id: historyObjArray[n],
                                                  options: {
                                                      changesOnly:  true,
                                                      debounce:     0,
                                                      retention:    0,
                                                      maxLength:    960,
                                                      changesMinDelta: 0,
                                                      aliasId: ''
                                                  }
                                              }, function (result) {
                                                  if (result.error) {
                                                      console.log(result.error);
                                                  }
                                                  if (result.success) {
                                          
                                                      // successfully enabled
                                          
                                                  }
                                              });
                                          }
                                          
                                          
                                          
                                          //erfassen der Sensorwerte auf today und actual year
                                          //diese sensoren sollen immer live werte zeigen, dafür war das "T" gedacht
                                          //Diese Kolelgen müssen manuell programmeirt werden, da ich noch nicht weiß wie ich aus einem array triggern kann. evtl mit concat im on?
                                          //Hier evtl auf alle 10s umsteigen?
                                          on({id: "javascript.0.Zaehler.StromZaehler_abs", change: 'ne'}, function (obj) {
                                              setState("javascript.0.Verbrauch.Stromzaehler_daily_actual", Math.round ((getState("javascript.0.Zaehler.StromZaehler_abs").val - getState("javascript.0.Verbrauch.Stromzaehler_daily_last").val)*100)/100, true);
                                              setState("javascript.0.Verbrauch.Stromzaehler_weekly_actual", Math.round ((getState("javascript.0.Zaehler.StromZaehler_abs").val - getState("javascript.0.Verbrauch.Stromzaehler_weekly_last").val)*100)/100, true);
                                              setState("javascript.0.Verbrauch.Stromzaehler_yearly_actual", Math.round ((getState("javascript.0.Zaehler.StromZaehler_abs").val - getState("javascript.0.Verbrauch.Stromzaehler_yearly_last").val)*100)/100, true);
                                          });
                                          on({id: "javascript.0.Zaehler.GasZaehler_abs", change: 'ne'}, function (obj) {
                                              setState("javascript.0.Verbrauch.Gaszaehler_daily_actual", Math.round ((getState("javascript.0.Zaehler.GasZaehler_abs").val - getState("javascript.0.Verbrauch.Gaszaehler_daily_last").val)*1000)/1000, true);
                                              setState("javascript.0.Verbrauch.Gaszaehler_weekly_actual", Math.round ((getState("javascript.0.Zaehler.GasZaehler_abs").val - getState("javascript.0.Verbrauch.Gaszaehler_weekly_last").val)*1000)/1000, true);
                                              setState("javascript.0.Verbrauch.Gaszaehler_yearly_actual", Math.round ((getState("javascript.0.Zaehler.GasZaehler_abs").val - getState("javascript.0.Verbrauch.Gaszaehler_yearly_last").val)*1000)/1000, true);
                                          });
                                          on({id: "javascript.0.Zaehler.PVZaehler_abs", change: 'ne'}, function (obj) {
                                              setState("javascript.0.Verbrauch.Photovoltaik_daily_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehler_abs").val - getState("javascript.0.Verbrauch.Photovoltaik_daily_last").val)*1000)/1000, true);
                                              setState("javascript.0.Verbrauch.Photovoltaik_weekly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehler_abs").val - getState("javascript.0.Verbrauch.Photovoltaik_weekly_last").val)*1000)/1000, true);
                                              setState("javascript.0.Verbrauch.Photovoltaik_monthly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehler_abs").val - getState("javascript.0.Verbrauch.Photovoltaik_monthly_last").val)*1000)/1000, true);
                                              setState("javascript.0.Verbrauch.Photovoltaik_yearly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehler_abs").val - getState("javascript.0.Verbrauch.Photovoltaik_yearly_last").val)*1000)/1000, true);
                                          });
                                          on({id: "fronius.0.inverter.1.TOTAL_ENERGY", change: 'ne'}, function (obj) {
                                          //schedule("* * * * *", function () {
                                              setState("javascript.0.Verbrauch.Fronius_daily_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_daily_last").val)*1000)/1000, true);
                                              setState("javascript.0.Verbrauch.Fronius_weekly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_weekly_last").val)*1000)/1000, true);
                                              setState("javascript.0.Verbrauch.Fronius_monthly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_monthly_last").val)*1000)/1000, true);
                                              setState("javascript.0.Verbrauch.Fronius_yearly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_yearly_last").val)*1000)/1000, true);
                                          });
                                          
                                          
                                          //600s Erfassung
                                          schedule("*/10 * * * *", function () {
                                              for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third
                                                  if (ArrayOfSensors[n+3].includes('m') ){       
                                                      var actvalue = getState(ArrayOfSensors[n+2]).val;
                                                      var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s_last').val;
                                                      var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s',verbrauch, true);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s_last', letzter, true);
                                                  }
                                              }
                                          });
                                          
                                          //24h erfassung
                                          schedule("57 23 * * *", function () {
                                              for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third    
                                                  if (ArrayOfSensors[n+3].includes('D') ){   
                                                      var actvalue = getState(ArrayOfSensors[n+2]).val;
                                                      var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last').val;
                                                      var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily',verbrauch, true);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last', letzter, true);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_actual', 0, true);
                                                  }
                                              }
                                              var WirkGrad = 0;
                                              var Zustandszahl = getState("javascript.0.Parameter.ZustandszahlGas").val;
                                              var HeizLeistung = getState("javascript.0.Heizung.Verbrauch.actualPower.Yesterday").val;
                                              var GasVerbrauch = Math.round ((getState("javascript.0.Zaehler.GasZaehler_abs").val - getState("javascript.0.Gaszaehler_Daily_last").val)*1000)/1000
                                          
                                              WirkGrad = HeizLeistung / (GasVerbrauch * Zustandszahl); 
                                              setState("javascript.0.Gas.errWirkungsgrad", WirkGrad);
                                          });
                                          
                                          //Wöchentlich Montags 00:00
                                          schedule("0 0 * * 1", function () {
                                              for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third
                                                  if (ArrayOfSensors[n+3].includes('W') ){   //nur wenn wöchentlich aktiviert ist
                                                      var actvalue = getState(ArrayOfSensors[n+2]).val;
                                                      var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_last').val;
                                                      var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly',verbrauch, true);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_last', letzter, true);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_actual', 0, true);
                                                  }
                                              }
                                          });
                                          
                                          
                                          //Monatlich 01. 00:00
                                          schedule("1 0 1 * *", function () {
                                              for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third
                                                  if (ArrayOfSensors[n+3].includes('M') ){   //nur wenn Monatlich aktiviert ist
                                                      var actvalue = getState(ArrayOfSensors[n+2]).val;
                                                      var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly_last').val;
                                                      var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly',verbrauch, true);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly_last', letzter, true);
                                                  }
                                              }
                                          });
                                          
                                          
                                          //Jährlich an neujahr  00:01
                                          schedule("1 0 1 1 *", function () {
                                              log('los gehts');
                                              for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third
                                                  if (ArrayOfSensors[n+3].includes('Y') ){   //nur wenn wöchentlich aktiviert ist
                                                      var actvalue = getState(ArrayOfSensors[n+2]).val;
                                                      var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly_last').val;
                                                      var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly',verbrauch, true);
                                                      setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly_last', letzter, true);
                                                      log(ArrayOfSensors[n])
                                                  }
                                              }
                                          });
                                          
                                          function intervallVerbrauch(totalAct, totalLast){
                                              var consumption = Math.round ((totalAct - totalLast)*100)/100;
                                              totalLast = Math.round (totalAct*100)/100;
                                              return [consumption, totalLast]; 
                                          }
                                          
                                          
                                          
                                          
                                          
                                          
                                          
                                          
                                          AlenA 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

                                          815

                                          Online

                                          32.4k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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