NEWS
openDTU per MQTT auslesen und steuern
-
@mickym ich versuche es mal dort:
-
@laser Ne mach mal den Ordner mit der Zahl auf, ob da status topic sind.
-
@mickym ja, dort ist "status":
so? Dort wird auch richtig gelesen. -
@laser Nein auf der Ebene vom status - also den cmd Ordner direkt unter der Nummer - das ist die serial Nummer
Siehst Du ja - grün lesen (R), orange (W) schreiben.
Also cmd Ordner direkt unter dem 1121... Ordner.
Wie gesagt die topics auf die ein Gerät hört, sind in der Firmware fest definiert.
Gilt auch für den absoluten Wert:
-
@mickym cmd rutscht immer wieder nach unten. "Ordner" heißt bei mir aber "Kanal"?
Der Text "limit_..." muß natürlich absolut richtig geschrieben sein. -
@laser Ja das passt aber so. Das mit dem Kanal - das hat mit admin5 eingeführt, ist aber für mqtt Schall und Rauch und ohne Bedeutung. Müsste so funktionieren.
Ich weiss zwar nicht, ob der Name angepasst werden muss - aber im Prinzip muss dann das mqtt topic wohl
solar/112183818346/cmd/limit_nonpersistent_absolute
heißen.
Wenn du den mqtt Adapter als Broker verwendest, gibts da auch manchmal Probleme. Ich nutze immer mosquitto und den mqtt Adapter immer als Client.
-
Es tut sich einfach nichts im Umrichter- Limit. Ich benutze den mqtt Adapter.
-
Der 2. Datenpunkt ist definitiv verkehrt nur der Name des 1. Datenpunktes mal anpassen.
Normalerweise steht im Namen - das originäre Mqtt topic
Ich glaube auch in den Objektdaten unter native
{ "_id": "mqtt.1.shellies.licht.wohnzimmer.decke.light.0.command", "common": { "name": "shellies/licht/wohnzimmer/decke/light/0/command", "write": true, "read": true, "role": "variable", "desc": "mqtt client variable", "type": "string" }, "native": { "topic": "shellies/licht/wohnzimmer/decke/light/0/command" }, "type": "state", "from": "system.adapter.mqtt.1", "user": "system.user.admin", "ts": 1670870062801, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Wie gesagt, wenn Du mehr mit mqtt machen willst, empfehle ich Dir wirklich mosquitto als mqtt Broker zu nutzen, da der Adapter in meinen Augen als Broker manche Merkwürdigkeiten aufweist.
-
@mickym eigentlich wollte ich ja den openDTU- Adapter verwenden. Aber dort gibt es auch Probleme. Unter Anderem wird die openDTU vom Router nicht gefunden. Aber dann geht mqtt auch bloß nicht.
Heute packe ich das nicht mehr. Danke für die Hilfe. Evtl. löst sich über Nacht ein Knoten in mir. Ich schalte meine Akku-Entladeregelung erst mal auf den openDTU- Adapter um. -
@laser Wie gesagt, ich benutze mosquitto als Broker für die gesamte mqtt Kommunikation ist easy und den Client/Broker mqtt Adapter als Client. Das funktioniert prima und einfach.
Ich habe kein openDTU, aber Du siehst, bei mir läuft alles mqtt von tasmota, shelly, zigbee2mqtt und owntracks alles über natives mqtt.
-
@mickym "mosquitto" ist wieder ein absolutes Neuland für mich. Da muß ich mich mit beschäftigen.
-
@laser Das ist easy.
Mitsudo apt install mosquitto
installieren (wenn es ein LINUX System) ist. Und dann in der Konfigurationsdatei nur Port und ggf. ein Passwort mit User erstellen.
Ich verlinke Dir gleich noch eine Anleitung. Aber im Prinzip ist das easy und läuft immer unauffällig parallel.
-
@mickym Das läuft bei mir auf einem Raspi4. Ich werde das morgen in Angriff nehmen.
Wenn die Kiste natürlich mal abschmiert (hatte immer mal Defekte in der SSD), habe ich ein Installationsproblem von Null an anzufangen. -
@laser sagte in openDTU per MQTT auslesen und steuern:
@mickym Das läuft bei mir auf einem Raspi4. Ich werde das morgen in Angriff nehmen.
Ok - ich such Dir noch eine Anleitung raus, ist aber easy. Ist englisch auch OK?
-
@mickym englisch ist zwar holprig, aber muß gehen.
-
@laser sagte in openDTU per MQTT auslesen und steuern:
@mickym Das läuft bei mir auf einem Raspi4. Ich werde das morgen in Angriff nehmen.
Wenn die Kiste natürlich mal abschmiert (hatte immer mal Defekte in der SSD), habe ich ein Installationsproblem von Null an anzufangen.Ja ich bin bei den Micro-SDs geblieben und ziehe mir regelmäßig Images und wenn dann so eine Micro SD kaputt geht, dann halt eine neue. Wenn die nicht so groß sind (bei mir auch ein PI4 - dann kommst mit 16 GB ohne Backups wunderbar aus).
Bei den SSDs ist es halt schwierig bei großen Kapazitäten Imagesicherungen zu machen.
-
@mickym ich mache immer mal ein Image mit einer Kopierstation. Dauert zwar, ist aber sicher.
Mein IO Broker System war eine Zeit lang sehr zuverlässig. Aber zur Zeit stolpere ich von einer Katastrophe in die Andere. -
Also hier nochmal eine kleine Anleitung von mir.
Installieren mosquitto:
sudo apt install mosquitto
dann Konfiguration erstellen. Eine eigene Datei im Verzeichnis /etc/mosquitto/conf.d erstellen. Ich mach mal eine mit Benutzer und Passwort, um es nicht ganz offen zu machen.
cd /etc/mosquitto/conf.d
Dann eine eigene Konfigurationsdatei mit conf als Dateityp. Ich nenne sie mal laser.conf.
Also nachdem Du in das Verzeichnis gewechselt bist:
sudo nano laser.conf
In die Datei kopierst Du folgende Zeilen.
allow_anonymous false password_file /etc/mosquitto/pwfile listener 1883
In der 1. Zeile legen wir fest, dass kein anonymer Zugang (also ohne Benutzername und Passwort) möglich ist.
In der 2. Zeile wo die Passwortdatei liegt, die wir aber noch erstellen müssen.
in der 3. Zeile auf den Port, auf den der Broker hören soll. 1883 ist Standard, aber Du musst halt einen Port wählen, der noch nicht von Deinen anderen Instanzen belegt ist und den Du dann auf openDTU und shellies und was weiß ich einstellen willst. Der darf auch nicht mit Adaptern kollidieren, die mqtt Broker emulieren (wie Shellie Adapter etc.).Nun legst Du noch Benutzer und Passwort an. Da wir die Passwortdatei pwfile in der Konfiguration genannt haben und in das Verzeichnis /etc/mosquitto legen, erstellen wir folgenden <benutzer> (wie auch immer Du ihn nennen willst) .
sudo mosquitto_passwd -c /etc/mosquitto/pwfile <benutzer>
Also nehmen wir mal an Dein Benutzer heißt laser.
Dann gibtst Du ein
sudo mosquitto_passwd -c /etc/mosquitto/pwfile laser
und wirst 2 mal nach Deinem Passwort gefragt.
Password: Reenter password:
Überprüfen kannst Du die Passwortdatei einfach mit
cd /etc/mosquitto cat pwfile laser:$7$101$9+FBgF4Rgcv8wANN$zzcWWzIBRYx6BaJ9yo5tGhPV5iMIgjKrxkxpRB+iuPiKy4cvzdjUCaGCNxN6AMOk5s3mcFoqJQsiPoqIvpbaAA==
Da steht dann Dein mqtt Benutzername mit Doppelpunkt mit einem verschlüsselten Passwort.
Dann startest Du mosquitto nochmal hoffentlich erfolgreich mit:
sudo systemctl restart mosquitto
mit
sudo systemctl status mosquitto
schaust Du ob der mosquitto sauber läuft. Die Ausgabe sollte dann so ähnlich wie folgt aussehen:
● mosquitto.service - Mosquitto MQTT Broker Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; preset: enabled) Active: active (running) since Wed 2024-08-21 21:48:12 CEST; 4 days ago Docs: man:mosquitto.conf(5) man:mosquitto(8) Process: 119 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS) Process: 122 ExecStartPre=/bin/chown mosquitto:mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS) Process: 123 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS) Process: 124 ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto (code=exited, status=0/SUCCESS) Main PID: 125 (mosquitto) Tasks: 1 (limit: 9190) Memory: 5.0M CPU: 12min 42.300s CGroup: /system.slice/mosquitto.service └─125 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf Aug 21 21:48:12 mwmqtt systemd[1]: Starting mosquitto.service - Mosquitto MQTT Broker... Aug 21 21:48:12 mwmqtt mosquitto[125]: 1724269692: Loading config file /etc/mosquitto/conf.d/default.conf Aug 21 21:48:12 mwmqtt mosquitto[125]: 1724269692: Loading config file /etc/mosquitto/conf.d/mwhome.conf Aug 21 21:48:12 mwmqtt systemd[1]: Started mosquitto.service - Mosquitto MQTT Broker.
Nun konfigurierst Du nur noch den mqtt Adapter als Client:
in die URL gibst localhost oder die IP Deines Raspies ein. Benutzername ist der den Du in mosquitto angelegt hast und Passwort entsprechend. Über die Schaltfläche die Verbindung testen.
in den Client-Settings gibst Du mit dem # an, dass Du alle topics abonnieren (subscriben) willst.
die Client - ID musst Du nicht angeben.
Bei den mqtt- Einstellungen ist weniger mehr.
Also alle Haken wegmachen.
Das wars schon.
-
@mickym Danke! Ich werde mich daran machen...
-
@laser sagte in openDTU per MQTT auslesen und steuern:
@mickym Danke! Ich werde mich daran machen...
Mir ist noch eingefallen, hast Du eigentlich in Deinem Inverter den Port geändert auf den mqtt Adapter, nicht dass da noch der Port von dem openDTU Adapter drin stand?