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 Fronius 2.0.x

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.2k

Test Adapter Fronius 2.0.x

Geplant Angeheftet Gesperrt Verschoben Tester
164 Beiträge 25 Kommentatoren 31.4k Aufrufe 25 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.
  • K Offline
    K Offline
    klassisch
    Most Active
    schrieb am zuletzt editiert von
    #155

    Man kann den PV Ertrag auch selbst mit einem Script aus den Stringleistungen integrieren.
    Datenpunkte:

    fronius.0.site.P_PV
    fronius.0.inverter.1.PDC
    fronius.0.inverter.1.PDC_2
    
    1 Antwort Letzte Antwort
    0
    • L legro

      @negalein @topsurfer

      All dies habe ich in unserer Visualisierung selbst umgesetzt. Meine Absicht: Ich möchte ausschließlich die echten Werte auf der Wechselstromseite haben, denn nur diese finden sich nachher auch in unserem Portemonnaie wieder.🙂

      Wer wissen will, wie wir‘s gelöst haben, findet in diesem Thread die Dokumentation.

      K Offline
      K Offline
      klassisch
      Most Active
      schrieb am zuletzt editiert von
      #156

      @legro sagte in Test Adapter Fronius 2.0.x:

      Meine Absicht: Ich möchte ausschließlich die echten Werte auf der Wechselstromseite haben, denn nur diese finden sich nachher auch in unserem Portemonnaie wieder.

      Wenn es ums Geld geht, ist der Smartmeter-Adapter, der die Daten aus dem offiziellen Zähler ausliest, hilreich. Ersatzweise die Energiewerte des Fronius-Smartmeters.

      Mittlerweile muß man die PV Leistung nicht mehr durch U*I ermiteln. Die PV Leistungen gibt es jetzt direkt in der Struktur site

      1 Antwort Letzte Antwort
      0
      • jmeister79J jmeister79

        @topsurfer
        das muss man sich natürlich selber errechnen.

        Gibt es adapter für die das automatisch machen oder du bastelst dir n script.
        Ist recht simpel.

        T Offline
        T Offline
        topsurfer
        schrieb am zuletzt editiert von
        #157

        @jmeister79 said in Test Adapter Fronius 2.0.x:

        das muss man sich natürlich selber errechnen.
        Gibt es adapter für die das automatisch machen

        Dachte, weil es in Tasmota diese Aktuell- und Tageswerte auch automatisch gibt bzw. angeboten werden.

        Welche "Adapter" sind das, die diese Werte anbieten?
        Zusätzlich oder als komplette alternative zum Fronius 2.0 Adapter?


        Anleitung zur Integration Enocean/Eltako in iobroker (Beta!)
        https://www.mmhaus.de/eltako-device-in-iobroker-integrieren-enocean

        jmeister79J 1 Antwort Letzte Antwort
        0
        • T topsurfer

          @jmeister79 said in Test Adapter Fronius 2.0.x:

          das muss man sich natürlich selber errechnen.
          Gibt es adapter für die das automatisch machen

          Dachte, weil es in Tasmota diese Aktuell- und Tageswerte auch automatisch gibt bzw. angeboten werden.

          Welche "Adapter" sind das, die diese Werte anbieten?
          Zusätzlich oder als komplette alternative zum Fronius 2.0 Adapter?

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

          @topsurfer

          VirtualPowermeter zB.

          Wenn du das Fronius Smartmeter hast ist es relativ simpel:

          Das soltlest Du im Fronius adapter unter Site sehen.
          Dann kannst Du dir den Energiezähler in einen eigenen Datenpunkt ziehen und bei änderung aufaddieren oder direkt erfassen.
          Dann brauchst du noch n Trigger, der Täglich (bzw wie bei mir stündlich, wöchentlich etc.) die werte abspeichert und in eine etnsprechende variable schreibt, die kannst du dann via History in eine db speichern.
          So erfasse ich zb. Tages,Wochen, Moants, Jahreswerte für PV, Wallbox, Verbraucher, Pumpen, Gas, einspeisung etc.

          Nils

          auf Wunsch kann ich dir das Programm geben, aber ich bitte um verständnis, dass ich hier ugnerne support leiste, da ich es für mich geschrieben habe und ggf. Deine Config nicht passt, ich hab es aber gut Dokumentiert, da ich quellcode abends direkt vergesse wenn ich ins Bett gehe 😄

          A 1 Antwort Letzte Antwort
          0
          • jmeister79J jmeister79

            @topsurfer

            VirtualPowermeter zB.

            Wenn du das Fronius Smartmeter hast ist es relativ simpel:

            Das soltlest Du im Fronius adapter unter Site sehen.
            Dann kannst Du dir den Energiezähler in einen eigenen Datenpunkt ziehen und bei änderung aufaddieren oder direkt erfassen.
            Dann brauchst du noch n Trigger, der Täglich (bzw wie bei mir stündlich, wöchentlich etc.) die werte abspeichert und in eine etnsprechende variable schreibt, die kannst du dann via History in eine db speichern.
            So erfasse ich zb. Tages,Wochen, Moants, Jahreswerte für PV, Wallbox, Verbraucher, Pumpen, Gas, einspeisung etc.

            Nils

            auf Wunsch kann ich dir das Programm geben, aber ich bitte um verständnis, dass ich hier ugnerne support leiste, da ich es für mich geschrieben habe und ggf. Deine Config nicht passt, ich hab es aber gut Dokumentiert, da ich quellcode abends direkt vergesse wenn ich ins Bett gehe 😄

            A Offline
            A Offline
            Alex4
            schrieb am zuletzt editiert von Alex4
            #159

            Gibt es beim Adapter eine Möglichkeit Zeitabhängige Batteriesteuerung (sregeln) zu erstellen bzw. zu löschen?

            Meine Idee wäre, die Prognose für die nächten Tage anzuschauen und wenn diese wieder eine volle Batterie ergibt, ich eine Zeit x bei meinem 4 Fronius eine minimale Batterieentladung festlege.

            Damit kann ich in die Energiegemeinschaft einspeisen und falls diese den Strom nicht brauchen zum möglichst höchsten Strompreis verkaufen.
            Damit verhindere ich außerdem, dass bei einem minus Strompreis, ich fürs Einspeisen am nächsten Tag drauf zahle.

            Hat das jemand schon mit dem Fronius Adapter gemacht?

            Dabei müsste man bei erfüllten Bedingungen zb. folgende Regel im Gen24 erstellen bzw ändert die Zeiten nach dem dynamischen Stromtarifen (da wird die Leitung im Netz auch gebraucht):

            f0da3468-b000-472d-a3b7-4e88a019a486-image.png

            Wird die Bedingung nicht erfüllt, löscht man alle vorhandenen Regeln raus oder stellt sie auf inaktiv.
            1ef4161f-51ec-483b-9e1f-404f7f2473e1-image.png

            Bei mehreren Gen24 muss man das natürlich auf allen gleich konfigurieren, sonst entlädt man eine Batterie und lädt damit die anderen.

            Die aktuellen Strompreise gibts über den Power Grid (APG) Info (AT+DE+CH) Adapter

            Für den Forcast der Sonnenstunden bzw. des zu erwartenden Ertrags hab ich noch nichts gefunden.

            nkleberN 1 Antwort Letzte Antwort
            0
            • A Alex4

              Gibt es beim Adapter eine Möglichkeit Zeitabhängige Batteriesteuerung (sregeln) zu erstellen bzw. zu löschen?

              Meine Idee wäre, die Prognose für die nächten Tage anzuschauen und wenn diese wieder eine volle Batterie ergibt, ich eine Zeit x bei meinem 4 Fronius eine minimale Batterieentladung festlege.

              Damit kann ich in die Energiegemeinschaft einspeisen und falls diese den Strom nicht brauchen zum möglichst höchsten Strompreis verkaufen.
              Damit verhindere ich außerdem, dass bei einem minus Strompreis, ich fürs Einspeisen am nächsten Tag drauf zahle.

              Hat das jemand schon mit dem Fronius Adapter gemacht?

              Dabei müsste man bei erfüllten Bedingungen zb. folgende Regel im Gen24 erstellen bzw ändert die Zeiten nach dem dynamischen Stromtarifen (da wird die Leitung im Netz auch gebraucht):

              f0da3468-b000-472d-a3b7-4e88a019a486-image.png

              Wird die Bedingung nicht erfüllt, löscht man alle vorhandenen Regeln raus oder stellt sie auf inaktiv.
              1ef4161f-51ec-483b-9e1f-404f7f2473e1-image.png

              Bei mehreren Gen24 muss man das natürlich auf allen gleich konfigurieren, sonst entlädt man eine Batterie und lädt damit die anderen.

              Die aktuellen Strompreise gibts über den Power Grid (APG) Info (AT+DE+CH) Adapter

              Für den Forcast der Sonnenstunden bzw. des zu erwartenden Ertrags hab ich noch nichts gefunden.

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

              @alex4 Mit dem Fronius Adapter ist das nicht möglich da die API nur ein lesen der Daten zulässt. Du kannst das aber natürlich mit dem Modbus Adapter machen. Ob dort direkt die Zeitabhänige Batteriesteuerung angepasst werden kann oder ob das Script direkt auf die Batterie Ladung/Entladung eingreifen muss, kann ich dir so nicht sagen. Die direkte Batteriesteuerung für Laden/Entladen geht aber auf jeden fall mit den Modbus adapter und Scripts...

              Siehe https://forum.iobroker.net/topic/65047/fronius-symo-gen24-minsoc-einstellen wo ein ähnliches Thema diskutiert wurde

              A 1 Antwort Letzte Antwort
              1
              • nkleberN nkleber

                @alex4 Mit dem Fronius Adapter ist das nicht möglich da die API nur ein lesen der Daten zulässt. Du kannst das aber natürlich mit dem Modbus Adapter machen. Ob dort direkt die Zeitabhänige Batteriesteuerung angepasst werden kann oder ob das Script direkt auf die Batterie Ladung/Entladung eingreifen muss, kann ich dir so nicht sagen. Die direkte Batteriesteuerung für Laden/Entladen geht aber auf jeden fall mit den Modbus adapter und Scripts...

                Siehe https://forum.iobroker.net/topic/65047/fronius-symo-gen24-minsoc-einstellen wo ein ähnliches Thema diskutiert wurde

                A Offline
                A Offline
                Alex4
                schrieb am zuletzt editiert von Alex4
                #161

                @nkleber Das Problem ist, dass ich zb. mit einer gewissen Leistung entladen will und wenn man von der Batterie eine Zwangsladung veranlasst, macht das der Gen24 mit 500Watt. Ich muss hier die Leistung mitgeben können. Das hätte ich beim Modbus nicht gefunden bis dato.

                Was ich rausgefunden habe ist, dass man die Requests den Webinterfaces vielleicht benutzen kann:

                http post http://xxx.xxx.xxx.xxx/config/timeofuse

                Content: {"timeofuse":[{"Active":true,"Power":3000,"ScheduleType":"DISCHARGE_MIN","TimeTable":{"Start":"20:00","End":"21:00"},"Weekdays":{"Mon":true,"Tue":true,"Wed":true,"Thu":true,"Fri":true,"Sat":true,"Sun":true}}]}
                

                result:

                {
                	"errors" : [],
                	"permissionFailure" : [],
                	"unknownNodes" : [],
                	"validationErrors" : [],
                	"writeFailure" : [],
                	"writeSuccess" : 
                	[
                		"timeofuse"
                	]
                }
                

                Löschen geht dann:

                http post http://xxx.xxx.xxx.xxx/config/timeofuse

                Content:

                {"timeofuse":[]}
                

                result:

                {
                	"errors" : [],
                	"permissionFailure" : [],
                	"unknownNodes" : [],
                	"validationErrors" : [],
                	"writeFailure" : [],
                	"writeSuccess" : 
                	[
                		"timeofuse"
                	]
                }
                

                Um die Werte abzufragen gibts folgendes http get http://10.10.13.211/config/timeofuse, dort kommt dann das array zurück, sofern die authentifzierung passt.

                Die Authentifzierung wird im Header unter

                authorization: Digest username="technician", realm="Webinterface area", nonce="xxxxxxxxxxx", uri="/config/timeofuse", response="xxxxxxxxxxx", qop=auth, nc=00000042, cnonce="xxxxxxxxxxx"
                

                Die Werte response und cnonce ändern sich bei jedem request dabei, der Wert nonce bleibt für einige Zeit gleich. Der Wert nc wird hochgezählt bei jeder Abfrage, sobald dieser bei mir gerade 61 erreicht hat, wird der counter resettet und gebinnt wieder bei 01 und nonce hat einen neuen tokken oder hash.

                im main.js am gen24 findet man auch die authentication berechnung.

                               key: "digestAuthHeader",
                                value: function(p, g, w, b) {
                                    for (var B = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], y = w.split(","), T = {}, L = 0; L < y.length; L++) {
                                        var S = y[L].match(this.AUTH_KEY_VALUE_RE);
                                        S && (T[S[1]] = S[2].replace(/["']/g, ""))
                                    }
                                    if (!T.realm || !T.nonce)
                                        return "";
                                    var k = T.qop || ""
                                      , R = _.splitCredentials(b)
                                      , Y = String(++this.NC);
                                    Y = this.NC_PAD.substring(Y.length) + Y;
                                    var U = this.randomBytes(8).join("")
                                      , X = B ? o.V8.hashStr(R.username + ":" + T.realm + ":" + R.password) : R.password
                                      , z = o.V8.hashStr(p.toUpperCase() + ":" + g)
                                      , H = X + ":" + T.nonce;
                                    k && (H += ":" + Y + ":" + U + ":" + (k = k.split(",")[0]));
                                    var se = o.V8.hashStr(H += ":" + z)
                                      , te = 'Digest username="' + R.username + '", realm="' + T.realm + '", nonce="' + T.nonce + '", uri="' + g + '", response="' + se + '"';
                                    return T.opaque && (te += ', opaque="' + T.opaque + '"'),
                                    k && (te += ", qop=" + k + ", nc=" + Y + ', cnonce="' + U + '"'),
                                    te
                                }
                

                Die funktion calcHash(User, realm, password)

                         key: "calcHash",
                                value: function(p, g, w) {
                                    return o.V8.hashStr(p + ":" + g + ":" + w)
                                }
                              key: "hashStr",
                                value: function(s) {
                                    var p = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
                                    return this.onePassHasher.start().appendStr(s).end(p)
                                }
                

                Wenn ich den Code richtig verstehe, wird in der respone der Username, realm und das Passwort per hash übertragen. Mittels einen ,,onePassHasher", dieser dürfte aus diesem Github Projekt stammen: https://github.com/cotag/ts-md5/tree/master/src

                ste_gleiS nkleberN 2 Antworten Letzte Antwort
                0
                • A Alex4

                  @nkleber Das Problem ist, dass ich zb. mit einer gewissen Leistung entladen will und wenn man von der Batterie eine Zwangsladung veranlasst, macht das der Gen24 mit 500Watt. Ich muss hier die Leistung mitgeben können. Das hätte ich beim Modbus nicht gefunden bis dato.

                  Was ich rausgefunden habe ist, dass man die Requests den Webinterfaces vielleicht benutzen kann:

                  http post http://xxx.xxx.xxx.xxx/config/timeofuse

                  Content: {"timeofuse":[{"Active":true,"Power":3000,"ScheduleType":"DISCHARGE_MIN","TimeTable":{"Start":"20:00","End":"21:00"},"Weekdays":{"Mon":true,"Tue":true,"Wed":true,"Thu":true,"Fri":true,"Sat":true,"Sun":true}}]}
                  

                  result:

                  {
                  	"errors" : [],
                  	"permissionFailure" : [],
                  	"unknownNodes" : [],
                  	"validationErrors" : [],
                  	"writeFailure" : [],
                  	"writeSuccess" : 
                  	[
                  		"timeofuse"
                  	]
                  }
                  

                  Löschen geht dann:

                  http post http://xxx.xxx.xxx.xxx/config/timeofuse

                  Content:

                  {"timeofuse":[]}
                  

                  result:

                  {
                  	"errors" : [],
                  	"permissionFailure" : [],
                  	"unknownNodes" : [],
                  	"validationErrors" : [],
                  	"writeFailure" : [],
                  	"writeSuccess" : 
                  	[
                  		"timeofuse"
                  	]
                  }
                  

                  Um die Werte abzufragen gibts folgendes http get http://10.10.13.211/config/timeofuse, dort kommt dann das array zurück, sofern die authentifzierung passt.

                  Die Authentifzierung wird im Header unter

                  authorization: Digest username="technician", realm="Webinterface area", nonce="xxxxxxxxxxx", uri="/config/timeofuse", response="xxxxxxxxxxx", qop=auth, nc=00000042, cnonce="xxxxxxxxxxx"
                  

                  Die Werte response und cnonce ändern sich bei jedem request dabei, der Wert nonce bleibt für einige Zeit gleich. Der Wert nc wird hochgezählt bei jeder Abfrage, sobald dieser bei mir gerade 61 erreicht hat, wird der counter resettet und gebinnt wieder bei 01 und nonce hat einen neuen tokken oder hash.

                  im main.js am gen24 findet man auch die authentication berechnung.

                                 key: "digestAuthHeader",
                                  value: function(p, g, w, b) {
                                      for (var B = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], y = w.split(","), T = {}, L = 0; L < y.length; L++) {
                                          var S = y[L].match(this.AUTH_KEY_VALUE_RE);
                                          S && (T[S[1]] = S[2].replace(/["']/g, ""))
                                      }
                                      if (!T.realm || !T.nonce)
                                          return "";
                                      var k = T.qop || ""
                                        , R = _.splitCredentials(b)
                                        , Y = String(++this.NC);
                                      Y = this.NC_PAD.substring(Y.length) + Y;
                                      var U = this.randomBytes(8).join("")
                                        , X = B ? o.V8.hashStr(R.username + ":" + T.realm + ":" + R.password) : R.password
                                        , z = o.V8.hashStr(p.toUpperCase() + ":" + g)
                                        , H = X + ":" + T.nonce;
                                      k && (H += ":" + Y + ":" + U + ":" + (k = k.split(",")[0]));
                                      var se = o.V8.hashStr(H += ":" + z)
                                        , te = 'Digest username="' + R.username + '", realm="' + T.realm + '", nonce="' + T.nonce + '", uri="' + g + '", response="' + se + '"';
                                      return T.opaque && (te += ', opaque="' + T.opaque + '"'),
                                      k && (te += ", qop=" + k + ", nc=" + Y + ', cnonce="' + U + '"'),
                                      te
                                  }
                  

                  Die funktion calcHash(User, realm, password)

                           key: "calcHash",
                                  value: function(p, g, w) {
                                      return o.V8.hashStr(p + ":" + g + ":" + w)
                                  }
                                key: "hashStr",
                                  value: function(s) {
                                      var p = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
                                      return this.onePassHasher.start().appendStr(s).end(p)
                                  }
                  

                  Wenn ich den Code richtig verstehe, wird in der respone der Username, realm und das Passwort per hash übertragen. Mittels einen ,,onePassHasher", dieser dürfte aus diesem Github Projekt stammen: https://github.com/cotag/ts-md5/tree/master/src

                  ste_gleiS Offline
                  ste_gleiS Offline
                  ste_glei
                  schrieb am zuletzt editiert von
                  #162

                  @alex4 sagte in Test Adapter Fronius 2.0.x:

                  @nkleber Das Problem ist, dass ich zb. mit einer gewissen Leistung entladen will und wenn man von der Batterie eine Zwangsladung veranlasst, macht das der Gen24 mit 500Watt. Ich muss hier die Leistung mitgeben können. Das hätte ich beim Modbus nicht gefunden bis dato.

                  Hier wurde das Thema behandelt

                  https://forum.iobroker.net/topic/77932/geklärt-mit-modbus-fronius-akku-aus-dem-netz-beladen

                  1 Antwort Letzte Antwort
                  0
                  • A Alex4

                    @nkleber Das Problem ist, dass ich zb. mit einer gewissen Leistung entladen will und wenn man von der Batterie eine Zwangsladung veranlasst, macht das der Gen24 mit 500Watt. Ich muss hier die Leistung mitgeben können. Das hätte ich beim Modbus nicht gefunden bis dato.

                    Was ich rausgefunden habe ist, dass man die Requests den Webinterfaces vielleicht benutzen kann:

                    http post http://xxx.xxx.xxx.xxx/config/timeofuse

                    Content: {"timeofuse":[{"Active":true,"Power":3000,"ScheduleType":"DISCHARGE_MIN","TimeTable":{"Start":"20:00","End":"21:00"},"Weekdays":{"Mon":true,"Tue":true,"Wed":true,"Thu":true,"Fri":true,"Sat":true,"Sun":true}}]}
                    

                    result:

                    {
                    	"errors" : [],
                    	"permissionFailure" : [],
                    	"unknownNodes" : [],
                    	"validationErrors" : [],
                    	"writeFailure" : [],
                    	"writeSuccess" : 
                    	[
                    		"timeofuse"
                    	]
                    }
                    

                    Löschen geht dann:

                    http post http://xxx.xxx.xxx.xxx/config/timeofuse

                    Content:

                    {"timeofuse":[]}
                    

                    result:

                    {
                    	"errors" : [],
                    	"permissionFailure" : [],
                    	"unknownNodes" : [],
                    	"validationErrors" : [],
                    	"writeFailure" : [],
                    	"writeSuccess" : 
                    	[
                    		"timeofuse"
                    	]
                    }
                    

                    Um die Werte abzufragen gibts folgendes http get http://10.10.13.211/config/timeofuse, dort kommt dann das array zurück, sofern die authentifzierung passt.

                    Die Authentifzierung wird im Header unter

                    authorization: Digest username="technician", realm="Webinterface area", nonce="xxxxxxxxxxx", uri="/config/timeofuse", response="xxxxxxxxxxx", qop=auth, nc=00000042, cnonce="xxxxxxxxxxx"
                    

                    Die Werte response und cnonce ändern sich bei jedem request dabei, der Wert nonce bleibt für einige Zeit gleich. Der Wert nc wird hochgezählt bei jeder Abfrage, sobald dieser bei mir gerade 61 erreicht hat, wird der counter resettet und gebinnt wieder bei 01 und nonce hat einen neuen tokken oder hash.

                    im main.js am gen24 findet man auch die authentication berechnung.

                                   key: "digestAuthHeader",
                                    value: function(p, g, w, b) {
                                        for (var B = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], y = w.split(","), T = {}, L = 0; L < y.length; L++) {
                                            var S = y[L].match(this.AUTH_KEY_VALUE_RE);
                                            S && (T[S[1]] = S[2].replace(/["']/g, ""))
                                        }
                                        if (!T.realm || !T.nonce)
                                            return "";
                                        var k = T.qop || ""
                                          , R = _.splitCredentials(b)
                                          , Y = String(++this.NC);
                                        Y = this.NC_PAD.substring(Y.length) + Y;
                                        var U = this.randomBytes(8).join("")
                                          , X = B ? o.V8.hashStr(R.username + ":" + T.realm + ":" + R.password) : R.password
                                          , z = o.V8.hashStr(p.toUpperCase() + ":" + g)
                                          , H = X + ":" + T.nonce;
                                        k && (H += ":" + Y + ":" + U + ":" + (k = k.split(",")[0]));
                                        var se = o.V8.hashStr(H += ":" + z)
                                          , te = 'Digest username="' + R.username + '", realm="' + T.realm + '", nonce="' + T.nonce + '", uri="' + g + '", response="' + se + '"';
                                        return T.opaque && (te += ', opaque="' + T.opaque + '"'),
                                        k && (te += ", qop=" + k + ", nc=" + Y + ', cnonce="' + U + '"'),
                                        te
                                    }
                    

                    Die funktion calcHash(User, realm, password)

                             key: "calcHash",
                                    value: function(p, g, w) {
                                        return o.V8.hashStr(p + ":" + g + ":" + w)
                                    }
                                  key: "hashStr",
                                    value: function(s) {
                                        var p = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
                                        return this.onePassHasher.start().appendStr(s).end(p)
                                    }
                    

                    Wenn ich den Code richtig verstehe, wird in der respone der Username, realm und das Passwort per hash übertragen. Mittels einen ,,onePassHasher", dieser dürfte aus diesem Github Projekt stammen: https://github.com/cotag/ts-md5/tree/master/src

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

                    @alex4 Wo hast du die Info bzgl. dem config/timeofuse her. Das klingt grundsätzlich interessant, funktioniert bei mir aber so noch nicht... Eventuell gibt es da ja noch mehr "config" parameter die nutzbar wären

                    A 1 Antwort Letzte Antwort
                    0
                    • nkleberN nkleber

                      @alex4 Wo hast du die Info bzgl. dem config/timeofuse her. Das klingt grundsätzlich interessant, funktioniert bei mir aber so noch nicht... Eventuell gibt es da ja noch mehr "config" parameter die nutzbar wären

                      A Offline
                      A Offline
                      Alex4
                      schrieb am zuletzt editiert von Alex4
                      #164

                      @nkleber Du kannst im Browser den developer Mode starten und dann den Netzwerk verkehr mit lauschen. Da siehst Du die Requests die abgesetzt werden von der GUI gegen die API für die Weboberfläche. Das ist natürlich keine API die vermutlich irgendwo dokumentiert ist, aber zumindest kann man diese so verwenden.

                      Man muss nur das Login via Script machen und sich die variablen / hashes irgendwo speichern und falls diese abgelaufen sind, das Login erneut anstoßen. Bei jedem Request muss der digestAuthHeader neu erstellt werden. Siehe oben.

                      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

                      726

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

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

                      • Du hast noch kein Konto? Registrieren

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