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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

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

Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

Geplant Angeheftet Gesperrt Verschoben Blockly
29 Beiträge 3 Kommentatoren 3.0k Aufrufe 3 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.
  • maxclaudiM maxclaudi

    @rene55 sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:

    @maxclaudi Das wird wohl so nicht funktionieren. Ich hab den iobroker-mqtt-client ja bereits auf Port 1883 im Einsatz. Natürlich mit User/Passwort gegen den externen Mosquitto.

    ?
    Ist folgendes richtig:

    1. Du hast extern einen mosquitto (Broker) laufen mit port 1883.

    2. Am mosquitto bist Du mit iobroker-mqtt-Adapter-Client mit user und passwort (Authentication) verbunden.

    3. vermutlich sind Deine weiteren Geräte wie Wasseruhr, Stromzähler etc. auch mit dem msoquitto verbunden? Wahrscheinlich tasmota oder ähnliches.

    4. Du benutzt den Solarflow-Adapter als Client und hast dafür extra einen iobroker-mqqt-Broker-(Server)-Adapter ohne Anmeldedaten.

    Ja?

    Dann wäre ein Umstieg schnell möglich und könntest auf den iobroker-mqtt-Adapter verzichten.
    a) Passwort zum Solarflow 1200 DeviceID generieren.
    b) Beim mosquitto in die Passwortliste -> DeviceID:passwort
    c) am besten gleich noch ein user:passwort für solarflow mit in die mosquitto Passswordliste.
    Das könntest (schon jetzt) für die Zukunft machen.
    Muss ja noch nicht benutzt werden.


    Wenn dann irgendwann Lust/Zeit hast:

    1. Zendure noch 1x disconnecten und IP vom mosquitto eintragen.
      neustarten usw., weißt ja.

    2. Solarflow-Adapter Instanz:
      Wenn dafür nicht extra einen zusätzlichen user in der Passwortliste hast, dann kannst auch einen vorhanden nehmen z.B. von der Wasseruhr.
      wasserUhruser:wasserUhrPasswort@ip_von_mosquitto


    Geht alles schnell :-)

    Bei uns und Freunden (4 Zendure Systeme) läuft alles einwandfrei.
    Lokal, mit den Passwörtern und Solar-Flow-Adapter.

    Wenn Alles so lassen möchtest, ist auch ok.


    Danke Dir, dass Du wenigstens interessiert bist und kommunizierst.
    Finde ich Klasse :+1:

    Man bekommt ja fast kein Feedback.
    Ist ein wenig traurig.
    Scheinbar ist kein großes Interesse vorhanden.
    Da überlegt man seine Erfolge zu teilen, wenn weder ein Daumen hoch, noch Kritik, Mitarbeit oder sonst was kommt.

    c'est la vie

    Rene55R Offline
    Rene55R Offline
    Rene55
    schrieb am zuletzt editiert von
    #21

    @maxclaudi Deine Annahmen 1 - 4 sind so korrekt. Passwort zum SF1200 hab ich mir schon generiert, Passwortliste für den Mosquitto (zum testen) noch nicht.
    Mir ist nur nicht klar, wieso ich dann auf den iobroker-mqtt-Adapter (spielt Client/Subscriber) verzichten kann.

    UND: Mach dir keine Gedanken zum mangelnden Interesse. Bisher tolle Arbeit und gut erklärt. Ich vermute, dass nach einer gewissen Zeit sich noch mehr Zendure-Nutzer hier versammeln und deine Arbeit würdigen werden.

    Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
    ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
    Wetterstation: Froggit WH3000SE V1.6.6

    maxclaudiM 1 Antwort Letzte Antwort
    0
    • Rene55R Rene55

      @maxclaudi Deine Annahmen 1 - 4 sind so korrekt. Passwort zum SF1200 hab ich mir schon generiert, Passwortliste für den Mosquitto (zum testen) noch nicht.
      Mir ist nur nicht klar, wieso ich dann auf den iobroker-mqtt-Adapter (spielt Client/Subscriber) verzichten kann.

      UND: Mach dir keine Gedanken zum mangelnden Interesse. Bisher tolle Arbeit und gut erklärt. Ich vermute, dass nach einer gewissen Zeit sich noch mehr Zendure-Nutzer hier versammeln und deine Arbeit würdigen werden.

      maxclaudiM Offline
      maxclaudiM Offline
      maxclaudi
      schrieb am zuletzt editiert von
      #22

      @rene55 sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:

      Mir ist nur nicht klar, wieso ich dann auf den iobroker-mqtt-Adapter (spielt Client/Subscriber) verzichten kann.

      Auf den Client nicht.

      Meinte die andere mqqt-Broker-Instanz für den solarflow-Adapter.
      Wenn man schon einen guten Broker hat, dann benötigt man keinen 2ten.

      Recourcenschonender und vor allem: sicherer.

      Einen nicht geschützten Zugang (auch intern) möchte ich nicht.
      Auch wenn der Schutz nicht so hoch ist: besser als keinen.

      Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

      Rene55R 1 Antwort Letzte Antwort
      0
      • maxclaudiM maxclaudi

        @rene55 sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:

        Mir ist nur nicht klar, wieso ich dann auf den iobroker-mqtt-Adapter (spielt Client/Subscriber) verzichten kann.

        Auf den Client nicht.

        Meinte die andere mqqt-Broker-Instanz für den solarflow-Adapter.
        Wenn man schon einen guten Broker hat, dann benötigt man keinen 2ten.

        Recourcenschonender und vor allem: sicherer.

        Einen nicht geschützten Zugang (auch intern) möchte ich nicht.
        Auch wenn der Schutz nicht so hoch ist: besser als keinen.

        Rene55R Offline
        Rene55R Offline
        Rene55
        schrieb am zuletzt editiert von
        #23

        @maxclaudi Ah, du meintest den extra für Solarflow aufgesetzten, ungeschützen Mosquitto. Klar, der kann dann weg!
        Aber dann möchte ich doch, dass sich @nograx meiner erbarmt und die von mir gewünschten Änderungen irgendwann einbaut. Ich hab nicht so gerne Passworte im Klartext - mein persönliches Empfinden. Du hast natürlich recht: wenn jemand unbefugtes dort hinkommt habe ich ein anderes Problem.

        Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
        ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
        Wetterstation: Froggit WH3000SE V1.6.6

        1 Antwort Letzte Antwort
        0
        • maxclaudiM maxclaudi

          @bernd1967
          :+1:
          nodered unter windows führt linux commands aus oder hat md5 intergiert?
          Blockly nimmt unter windows also das windows eigene cmd.

          Bernd1967B Offline
          Bernd1967B Offline
          Bernd1967
          schrieb am zuletzt editiert von
          #24

          @maxclaudi sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:

          @bernd1967
          :+1:
          nodered unter windows führt linux commands aus oder hat md5 intergiert?
          Blockly nimmt unter windows also das windows eigene cmd.

          Ich denke das hängt davon ab wie Blockly und node-red integriert wurden.
          In IOB wird wohl immer das Host Betriebsssystem verwendet.
          In node-red hab ich über den Palettenmanager die Erweiterung "node-red-contrib-md5" installiert der den MD5 Hash erstellt.
          Dann über ein Function Node in Großbuchstaben umgewandelt und den relevanten Teil ausgeschnitten.

          maxclaudiM 2 Antworten Letzte Antwort
          1
          • Bernd1967B Bernd1967

            @maxclaudi sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:

            @bernd1967
            :+1:
            nodered unter windows führt linux commands aus oder hat md5 intergiert?
            Blockly nimmt unter windows also das windows eigene cmd.

            Ich denke das hängt davon ab wie Blockly und node-red integriert wurden.
            In IOB wird wohl immer das Host Betriebsssystem verwendet.
            In node-red hab ich über den Palettenmanager die Erweiterung "node-red-contrib-md5" installiert der den MD5 Hash erstellt.
            Dann über ein Function Node in Großbuchstaben umgewandelt und den relevanten Teil ausgeschnitten.

            maxclaudiM Offline
            maxclaudiM Offline
            maxclaudi
            schrieb am zuletzt editiert von maxclaudi
            #25

            @bernd1967
            Es liegt eher daran, dass Windows nicht den awk interpreter hat.
            Auf die Idee, mit node-red was zu versuchen, wäre ich nicht gekommen.

            Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

            maxclaudiM 1 Antwort Letzte Antwort
            0
            • maxclaudiM maxclaudi

              @bernd1967
              Es liegt eher daran, dass Windows nicht den awk interpreter hat.
              Auf die Idee, mit node-red was zu versuchen, wäre ich nicht gekommen.

              maxclaudiM Offline
              maxclaudiM Offline
              maxclaudi
              schrieb am zuletzt editiert von maxclaudi
              #26

              Zur Überprüfung und Vergleich, dass das generierte Passwort stimmt, kann folgende Liste verwendet werden.


              Wenn man diese DeviceID verwendet, muss das darunterstehende Passwort ausgegeben werden.

              BaSD4hsK
              FF2F20666EA30FC8
              
              EaTJ4htU
              D64BF3C7EFD8FD4F
              
              BcDH6dcK
              400E9010DAFD311A
              
              AgCV7bdX
              6A8CE3072CD9FDDA
              
              YAyxgHs8
              CE9B58EA45CEE5D2
              
              YZyxbKs7
              779F8DE0835E4E38
              
              YLbcbMt3
              2B6C02D9F20F845F 
              

              Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

              maxclaudiM 1 Antwort Letzte Antwort
              0
              • maxclaudiM maxclaudi

                Zur Überprüfung und Vergleich, dass das generierte Passwort stimmt, kann folgende Liste verwendet werden.


                Wenn man diese DeviceID verwendet, muss das darunterstehende Passwort ausgegeben werden.

                BaSD4hsK
                FF2F20666EA30FC8
                
                EaTJ4htU
                D64BF3C7EFD8FD4F
                
                BcDH6dcK
                400E9010DAFD311A
                
                AgCV7bdX
                6A8CE3072CD9FDDA
                
                YAyxgHs8
                CE9B58EA45CEE5D2
                
                YZyxbKs7
                779F8DE0835E4E38
                
                YLbcbMt3
                2B6C02D9F20F845F 
                

                maxclaudiM Offline
                maxclaudiM Offline
                maxclaudi
                schrieb am zuletzt editiert von maxclaudi
                #27

                Wer wissen möchte, wie das Passwort generiert wird:

                1. aus der DeviceID wird ein MD5 Hash generiert.
                2. die Buchstaben vom generierten MD5 Hash werden in Großbuchstaben umgewandelt.
                3. die ersten 8 Zeichen und die Zeichen 25+ werden entfernt.
                  Das Passwort besteht aus 16 Stellen des MD5 Hash.

                Man kann auch online (oder offline mit einem md5-Tool) das Paswort selbst generieren.
                Oder überprüfen ob es richtig ist:

                online-Beispiel:


                DeviceID: BaSD4hsK
                gesuchtes noch unbekanntes Passwort: FF2F20666EA30FC8


                Ein md5-hash-online-generator z. B.:
                md5hashgenerator

                Dort die DeviceID: BaSD4hsK eingeben und auf "Generate" klicken.

                Dann bekommt man den "MD5 Hash" angezeigt der kopiert werden kann.


                In dem Beispiel ist das:

                e302c909ff2f20666ea30fc85db6d2cc
                

                Jetzt kann man den md5 hash in ein Text-File kopieren.


                In dem Textfile
                entfernt ihr Alle Zeichen ab und inkl. der Stelle(n) 25-32:

                e302c909ff2f20666ea30fc8
                

                Danach werden die Stellen 1-8 entfernt:

                ff2f20666ea30fc8
                

                Am Ende noch Kleinbuchstaben zu Großbuchtstaben konvertieren:

                FF2F20666EA30FC8
                

                Fertig, das (16 stellige) funktionierende Passwort ist generiert.

                Damit ist es für jeden möglich unabhängig vom Betriebsystem sein Passwort zu erfahren/überprüfen.

                Offline für Windows:

                Windows-User die die DeviceID nicht online eingeben möchten, können auch bei Microsoft das
                "Hash Tool" downloaden.

                Dann alles offline:...

                Hash_tool_deviceID.png

                Woher die Info über das Passwort?


                Wie kann ich wissen, dass die hier gemachten Angaben über das Passwort stimmen?
                Selbst testen:

                Mit tcp dump und Wireshark.

                Vorgehensweise:
                Zuerst einen dump erstellen.

                tcpdump -i eth0 src host <IP_solarflow> -w capture.pcap

                mqtt-Broker stoppen.
                tcpdump ausfüren.
                mqtt-Broker starten.
                Eine Weile warten, bis einige Pakete empfangen wurden.
                tcpdump abbrechen mit ^C
                capture.pcap mit Wireshark öffnen.
                Dort wird die DeviceID und das 16-stellige Passwort angezeigt.

                Weil es sehr nach einem md5 hash aussah: einfach mal aus der DeviceID ein MD5 Hash erzeugt.
                Von mehreren DeviceID und mit dem Dump verglichen.
                Lösung lag auf der Hand.

                Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

                1 Antwort Letzte Antwort
                0
                • Bernd1967B Bernd1967

                  @maxclaudi sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:

                  @bernd1967
                  :+1:
                  nodered unter windows führt linux commands aus oder hat md5 intergiert?
                  Blockly nimmt unter windows also das windows eigene cmd.

                  Ich denke das hängt davon ab wie Blockly und node-red integriert wurden.
                  In IOB wird wohl immer das Host Betriebsssystem verwendet.
                  In node-red hab ich über den Palettenmanager die Erweiterung "node-red-contrib-md5" installiert der den MD5 Hash erstellt.
                  Dann über ein Function Node in Großbuchstaben umgewandelt und den relevanten Teil ausgeschnitten.

                  maxclaudiM Offline
                  maxclaudiM Offline
                  maxclaudi
                  schrieb am zuletzt editiert von maxclaudi
                  #28

                  Danke @bernd1967 fürs testen.

                  EDIT:
                  Bitte folgendes Blockly zum Passwort generieren verwenden.
                  Funktioniert bei iobroker-Installationen unter Linux und Windows.

                  pwd-generator.png

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <variables>
                      <variable id="h$iZ|CSW:{Pr^|WIq{p%">DeviceID</variable>
                    </variables>
                    <block type="comment" id="mw0N05!:C@0|7*%x8IQW" x="-87" y="-88">
                      <field name="COMMENT">Zendure&amp;#10;DeviceID password generator&amp;#10;for local MQTT broker</field>
                    </block>
                    <block type="comment" id="KrSsJXm)i*V^NIyaU[Cn" x="388" y="-12">
                      <field name="COMMENT">DeviceID</field>
                    </block>
                    <block type="variables_set" id=")#vJ+ToaSJ#Kj21zn(:%" x="137" y="37">
                      <field name="VAR" id="h$iZ|CSW:{Pr^|WIq{p%">DeviceID</field>
                      <value name="VALUE">
                        <block type="text" id="O`ZL5-wOs6gRliGk!sVy">
                          <field name="TEXT">BaSD4hsK</field>
                        </block>
                      </value>
                      <next>
                        <block type="procedures_callcustomnoreturn" id="9skFy%%N*E(L1uQC#%S{">
                          <mutation name="pwdGenerate"></mutation>
                        </block>
                      </next>
                    </block>
                    <block type="procedures_defcustomnoreturn" id=":2{*ZgWdN@M;.U0:0I)$" x="563" y="113">
                      <mutation statements="false"></mutation>
                      <field name="NAME">pwdGenerate</field>
                      <field name="SCRIPT">Y29uc3QgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyksIGhhc2ggPSBjcnlwdG8uZ2V0SGFzaGVzKCk7DQp4ID0gRGV2aWNlSUQ7DQpoYXNoUHdkID0gY3J5cHRvDQouY3JlYXRlSGFzaCgnTUQ1JykNCi51cGRhdGUoeCkuZGlnZXN0KCdoZXgnKQ0KICAgLnRvVXBwZXJDYXNlKCkNCiAgICAuc2xpY2UoOCwgMjQpOw0KbG9nKCJEZXZpY2VJRDogIiArIERldmljZUlEICsgIiBQYXNzd29yZDogIiArIGhhc2hQd2QpOw==</field>
                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                    </block>
                  </xml>
                  

                  Ich schreibe meistens sehr direkt – bitte nicht falsch verstehen, es ist nie böse gemeint. Das ist einfach mein Stil und niemals abwertend gemeint.

                  Bernd1967B 1 Antwort Letzte Antwort
                  0
                  • maxclaudiM maxclaudi

                    Danke @bernd1967 fürs testen.

                    EDIT:
                    Bitte folgendes Blockly zum Passwort generieren verwenden.
                    Funktioniert bei iobroker-Installationen unter Linux und Windows.

                    pwd-generator.png

                    <xml xmlns="https://developers.google.com/blockly/xml">
                      <variables>
                        <variable id="h$iZ|CSW:{Pr^|WIq{p%">DeviceID</variable>
                      </variables>
                      <block type="comment" id="mw0N05!:C@0|7*%x8IQW" x="-87" y="-88">
                        <field name="COMMENT">Zendure&amp;#10;DeviceID password generator&amp;#10;for local MQTT broker</field>
                      </block>
                      <block type="comment" id="KrSsJXm)i*V^NIyaU[Cn" x="388" y="-12">
                        <field name="COMMENT">DeviceID</field>
                      </block>
                      <block type="variables_set" id=")#vJ+ToaSJ#Kj21zn(:%" x="137" y="37">
                        <field name="VAR" id="h$iZ|CSW:{Pr^|WIq{p%">DeviceID</field>
                        <value name="VALUE">
                          <block type="text" id="O`ZL5-wOs6gRliGk!sVy">
                            <field name="TEXT">BaSD4hsK</field>
                          </block>
                        </value>
                        <next>
                          <block type="procedures_callcustomnoreturn" id="9skFy%%N*E(L1uQC#%S{">
                            <mutation name="pwdGenerate"></mutation>
                          </block>
                        </next>
                      </block>
                      <block type="procedures_defcustomnoreturn" id=":2{*ZgWdN@M;.U0:0I)$" x="563" y="113">
                        <mutation statements="false"></mutation>
                        <field name="NAME">pwdGenerate</field>
                        <field name="SCRIPT">Y29uc3QgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyksIGhhc2ggPSBjcnlwdG8uZ2V0SGFzaGVzKCk7DQp4ID0gRGV2aWNlSUQ7DQpoYXNoUHdkID0gY3J5cHRvDQouY3JlYXRlSGFzaCgnTUQ1JykNCi51cGRhdGUoeCkuZGlnZXN0KCdoZXgnKQ0KICAgLnRvVXBwZXJDYXNlKCkNCiAgICAuc2xpY2UoOCwgMjQpOw0KbG9nKCJEZXZpY2VJRDogIiArIERldmljZUlEICsgIiBQYXNzd29yZDogIiArIGhhc2hQd2QpOw==</field>
                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                      </block>
                    </xml>
                    
                    Bernd1967B Offline
                    Bernd1967B Offline
                    Bernd1967
                    schrieb am zuletzt editiert von
                    #29

                    @maxclaudi
                    Ja, funktioniert hier unter Windows.

                    1 Antwort Letzte Antwort
                    2
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    622

                    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
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe