NEWS
Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication
-
EDIT:
Auch der Solar-Flow Adapter läuft mit Authentication
Alle Daten kommen rein, am Adapter muss NICHTS geändert werden.Wenn man einen MQTT-Server verwendet der nur "user mit password" zulässt, wie z. B. mosquitto.
Beispiel: HUB2000 und ACE1500
mit Blockly von mir für HUB2000-DeviceID und ACE1500-DeviceID je Passwort generieren lassen.
user: DeviceID
Passwort: <das generierte Passwort>Zusätzlich für den Solar-Flow-Adapter ein user und ein Passwort wählen
Die 3 neuen user mit Passwörtern bei mosquitto in die Passwortliste aufnehmen (verschlüsseln, wie bei mosquitto üblich).
Beim Solar-Flow-Adapter in der Instanz dann den user und password für den Solar-Flow-Adapter einfach mit in die URL übergeben.
Wenn die lokale Server-IP z. B. 192.177.80.250 ist und man für den Adapter
user: solarflow
password: secret
verwenden möchte
dann einfach bei "lokale MQTT Server URL/IP":
solarflow:secret@192.177.80.250siehe:
Mit mosquitto-Server ausführlich getestet.
Die Geräte melden sich an und funktionieren mit den generierten Passwörtern auch i. V. mit dem iobroker solar-flow-Adapter.
Zendure Geräte (HUB2000, Hyper2000, ACE1500, HUB1200) ohne Cloud auf einem eigenen, lokalen MQTT Broker mit Authentication verwenden.
Bisher konnten Viele den lokalen MQTT Broker nur ohne Authentication verwenden.
z. B. in Verbindung des guten Solar-Flow-Adapters.Grund: man kann die Zugangsdaten der Geräte nicht ändern.
Die Geräte senden hardcoded Zugangsdaten.User: DeviceID (von z.B. HUB2000 bekannt)
password: ein generiertes Passwort aus der DeviceIDHier nun ein Blockly, das aus der DeviceID das benötigte Passwort generiert.
Für den lokalen MQTT Broker (z. B. mosquitto) mit Authentication.
user: DeviceID
password: <das generierte Passwort>Bei mehreren Zendure Geräte (HUB2000, ACE1500, Hyper2000, Solarflow HUB1200 usw.)
Für jede DeviceID ein Passwort generieren lassen.
Einfach die DeviceID eingeben, Script kurz ausführen und im debug output ist das Passwort.
Beim eingeben/kopieren der DeviceID darauf achten, dass keine Leerzeichen mit übergeben werden.
EDIT: Blockly vom DIESEM Beitrag verwenden.
Habe es in JS neu geschreiben, damit es bei iobroker Installationen unter Linux und Windows funktioniert. -
@maxclaudi Kannst du mir dazu kurz den Zusammenhang von Zendure-Geräten (gut ich hab nur eins) mit der MQTT-Authentication erklären?
Im 'normalen' Umfeld haben zig Teilnehmer die gleiche Kombination User/Passwort für meinen MQTT-Broker mit Passwortabsicherung. -
@rene55 sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:
@maxclaudi Kannst du mir dazu kurz den Zusammenhang von Zendure-Geräten (gut ich hab nur eins) mit der MQTT-Authentication erklären?
Im 'normalen' Umfeld haben zig Teilnehmer die gleiche Kombination User/Passwort für meinen MQTT-Broker mit Passwortabsicherung.@rene55
der iobroker mqtt Server-Adapter lässt nur 1 User und 1 Passwort zu.
Zumindest soviel ich weiß.Normal ist eher, dass einem Server (hier Broker) unterschiedliche Clients mit Passwörtern und Berechtigungen vergeben werden können.
Das macht der iobroker mqtt-Broker-Adapter nicht.
mqtt Broker können normal zig beliebige, verschiedene User mit unterschiedlichen Passwörtern verwalten.
Zendure macht das mit den mqtt-fähigen Geräten auch.
DeviceID= user
und ein Passwort dazu.Weil der mqtt-Adapter keine Passwortlisten zulässt und damit auch nur 1 User mit 1 Passwort verwaltet werden kann, müssen alle anderen Teilnehmer sich als 1 User mit dem einem Passwort verbinden.
Vereinfacht erklärt.
Für den Privatgebrauch mag das ausreichen.
Eine 2te Instanz als Broker lässt sich nicht anlegen, weil der Port nicht identisch sein darf.Sollte man keine anderen Zendure Geräte verwenden, dann kann man auch den iobroker-mqtt-Adapter verwenden.
Auf den ACE1500 könnte man verzichten, weil er über den Hub gesteuert wird.
Kann es leider nicht ändern, dass user und Passwort bei Zendure hardcoded und nicht veränderbar sind.
Evtl. wäre es möglich den Port zu verändern (für eine 2te Instanz)?
Aber das ist für mich nicht wichtig.Würde eher zu einem richtigen mqtt Broker raten.
wie z. B. dem schlanken mosquitto
Wenn auch nicht fachlich ganz korrekt, müsste man verstehen wie ich es beschrieben habe(?).
-
@maxclaudi Um noch ein wenig aufzuklären: Ich habe (warum auch immer) einen zentralen MQTT-Broker mit Standardport und User/Passwort laufen. Dahin verbinden sich einige esp-Devices, der Smartmeter-Lesekopf, Wasseruhr usw. und bringen die Daten in den ioBroker.
Für den cloudless Zendure habe ich einen separaten MQTT ohne User/Passwort laufen. Jetzt mag die nächste Frage unsinnig erscheinen, aber, da ich (derzeit) nur einen Solarflow 1200 habe brauche ich das ganze? Oder erst beim Eintreffen eines ACE? -
@rene55
wenn der Server(Broker) für Zendure läuft, dann muss er ja schon Port 1883 dafür haben.
Andere Geräte werden nicht mit dem verbunden sein.Du musst gar nix
Bis jetzt ist der Broker ohne Anmeldedaten eben "ungeschützt" für jeden oder jedes Gerät in Deinem (W)Lan zugänglich.
Wenn jetzt die Zugangsdaten dazu machst, dann nicht mehr.
Liegt an Dir ob Du eine kleine Sicherheit zufügen möchtest oder den Broker komplett offen lässt
-
@maxclaudi Ja, jetzt wird es klarer. Kann ich das gefahrlos testen? Heißt, wenn es nicht funzt wieder ohne User/Password.
-
@rene55
natürlich, einfach user und passwort wieder löschen und speichern.
So wie es bisher war.
Geht nichts defekt. -
@maxclaudi Danke, dann werde ich das mal in einer ruhigen Minute testen.
-
@rene55
DeviceID ist klar denke ich?Nennt sich beim Solar Flow Adapter: Device Key
-
@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.
-
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. -
@maxclaudi
IOB läuft hier unter Windows.
Hast Du dafür auch eine Lösung ? -
@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
-
@maxclaudi
Komisch, es kommt keine Ausgabe.
Im script Adapter ist "enable command "exec" angehackt.
Log nach Ausführung:
-
@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. -
@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 -
@bernd1967
nodered unter windows führt linux commands aus oder hat md5 intergiert?
Blockly nimmt unter windows also das windows eigene cmd. -
@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. -
@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. -
@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:-
Du hast extern einen mosquitto (Broker) laufen mit port 1883.
-
Am mosquitto bist Du mit iobroker-mqtt-Adapter-Client mit user und passwort (Authentication) verbunden.
-
vermutlich sind Deine weiteren Geräte wie Wasseruhr, Stromzähler etc. auch mit dem msoquitto verbunden? Wahrscheinlich tasmota oder ähnliches.
-
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:
-
Zendure noch 1x disconnecten und IP vom mosquitto eintragen.
neustarten usw., weißt ja. -
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 KlasseMan 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
-