Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

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

      @maxclaudi Danke, dann werde ich das mal in einer ruhigen Minute testen. 🙂

      maxclaudi 3 Replies Last reply Reply Quote 0
      • maxclaudi
        maxclaudi @Rene55 last edited by maxclaudi

        @rene55
        👍
        DeviceID ist klar denke ich?

        Nennt sich beim Solar Flow Adapter: Device Key

        1 Reply Last reply Reply Quote 1
        • maxclaudi
          maxclaudi @Rene55 last edited by maxclaudi

          @rene55
          und Alle:

          Die generierten Passwörter wurden getestet, sind richtig und funktionieren.

          Aber:
          Der iobroker SolarFlow-Adapter hat keine Zugangsdaten für den lokalen Betrieb!
          Deshalb funktioniert der Adapter von @nograx NUR wenn mann die Anmeldedaten mit in die URL übergibt.

          Es wäre schön, wenn @nograx irgendwann in der Instanz des solarflow-Adapters eine Möglichkeit zum abspeichern von User und Password für einen lokalen MQTT-Server einpflegen würde.
          Geht aber auch so!

          Mit mosquitto-Server ausführlich getestet.

          Wenn ein mosquitto-Server läuft verbinden sich die Zendure Geräte mit Passwörtern lokal einwandfrei.

          maxclaudi 1 Reply Last reply Reply Quote 1
          • maxclaudi
            maxclaudi @maxclaudi last edited by

            Problem gelöst, siehe EDIT vom ersten Post 🙂
            Alles funktioniert einwandfrei.

            Zum Betrieb muss ein MQTT-Broker verwendet werden der mehrere user mit Passwörtern zulässt, wie z. B. mosquitto oder EMQX etc.

            Der iobroker mqtt-Adapter geht aus diesem Grund NICHT.
            Lässt nur 1 user und 1 password zu.

            B 1 Reply Last reply Reply Quote 0
            • B
              Bernd1967 @maxclaudi last edited by

              @maxclaudi
              IOB läuft hier unter Windows.
              Hast Du dafür auch eine Lösung ?

              maxclaudi 1 Reply Last reply Reply Quote 0
              • maxclaudi
                maxclaudi @Bernd1967 last edited by

                @bernd1967
                die Lösung steht doch hier 🙂
                das blockly von mir funktioniert im iobroker auch unter Windows.

                Der mosquitto lässt sich auch unter Windows installieren: mosquitto-2.0.21a-install-windows-x64.exe download

                B 1 Reply Last reply Reply Quote 0
                • B
                  Bernd1967 @maxclaudi last edited by Bernd1967

                  @maxclaudi
                  Komisch, es kommt keine Ausgabe.
                  Im script Adapter ist "enable command "exec" angehackt.
                  Log nach Ausführung:
                  Unbenannt.jpg

                  maxclaudi 1 Reply Last reply Reply Quote 0
                  • maxclaudi
                    maxclaudi @Bernd1967 last edited by

                    @bernd1967
                    ok, ich kann's nicht gegentesten.
                    Hab hier kein Windows mit iobroker zur Verfügung.
                    Heute ist es für mich zu spät sorry.

                    B 1 Reply Last reply Reply Quote 0
                    • B
                      Bernd1967 @maxclaudi last edited by Bernd1967

                      @maxclaudi
                      Ja Okay
                      Ich denke es liegt daran das der Exec Befehl hier unter Windows im Windows command Fenster ausgeführt wird.
                      Und dieser kennt kein Befehl "md5sum"

                      P.S.: Hab es mal mit node-red nachgebaut, funktioniert.
                      Hat sich also erledigt

                      maxclaudi 1 Reply Last reply Reply Quote 0
                      • maxclaudi
                        maxclaudi @Bernd1967 last edited by

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

                        B 1 Reply Last reply Reply Quote 0
                        • maxclaudi
                          maxclaudi @Rene55 last edited by

                          @rene55
                          Wenn Du nur den solarflow HUB 1200 benutzt, kannst Du auch den iobroker-mqtt-Server-Adapter benutzen.
                          Dann gibst einfach beiden (Solarflow-Adapter+HUB 1200) DeviceID als user und das Passwort dazu.
                          Mehr Zendure-Geräte gehen dann nicht mehr.

                          Rene55 1 Reply Last reply Reply Quote 0
                          • Rene55
                            Rene55 @maxclaudi last edited by

                            @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.
                            Ich lass mal erst alles so, wie es jetzt ist.

                            maxclaudi 1 Reply Last reply Reply Quote 0
                            • maxclaudi
                              maxclaudi @Rene55 last edited by 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 👍

                              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

                              Rene55 1 Reply Last reply Reply Quote 0
                              • Rene55
                                Rene55 @maxclaudi last edited by

                                @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.

                                maxclaudi 1 Reply Last reply Reply Quote 0
                                • maxclaudi
                                  maxclaudi @Rene55 last edited by

                                  @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.

                                  Rene55 1 Reply Last reply Reply Quote 0
                                  • Rene55
                                    Rene55 @maxclaudi last edited by

                                    @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.

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      Bernd1967 @maxclaudi last edited by

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

                                      @bernd1967
                                      👍
                                      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.

                                      maxclaudi 2 Replies Last reply Reply Quote 1
                                      • maxclaudi
                                        maxclaudi @Bernd1967 last edited by 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.

                                        Eine este Idee wäre gewesen...
                                        (unwichtig)


                                        Habe immer einen USB-Boot-Stick mit Ubuntu-Standard Version parat.
                                        Kann man schnell bei jedem Rechner / Notebook mit Windows verwenden.
                                        Booten ins Ram (ohne Installation) und schon kann man vernünftig arbeiten.

                                        Wäre kurz ein booten, Terminal öffnen, Befehlszeile eingeben.

                                        Oder:
                                        vorher Befehlszeile in ein Textfile x.txt kopieren.
                                        Das file auf den USB-Boot-Stick kopieren.
                                        Mit USB-Stick Linux starten.
                                        Datei öffnen, Terminal öffnen -> copy paste

                                        edit/Gelöst: Habe nun ein Javascript für Blockly erstellt, das auch mit iobroker unter Windows funktioniert. Siehe Hier

                                        maxclaudi 1 Reply Last reply Reply Quote 0
                                        • maxclaudi
                                          maxclaudi @maxclaudi last edited by 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 
                                          

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

                                            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.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            894
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            29
                                            630
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo