Hilfe bei MQTT set Befehl

Borkk

New member
Hallo Zusammen,

Ich bin auf der Suche nach einer Lösung für ein MQTT Problem auf dieses Forum gestoßen. Hier scheint es Hilfe aus vielen Bereichen der heimischen Technik zu geben. :)

Kurz zu meinem Setup, ich nutze seit über 10 Jahren FHEM als Heimautomatisierungs-Plattform und habe daran mittlerweile unzählige Systeme angeschlossen. Ich nutze zudem einen Mosquitto MQTT Broker mit NodeRed, InfluxDB und Grafana um meine vielfältigen Messwerte zu visualisieren. (alles auf Docker auf einer Synology DS220+) Nachdem ich seit ein paar Monaten ein Balkonkraftwerk mit SolarFlow Speicher betreibe, habe ich mich stärker mit MQTT beschäftigt. Ich bin begeistert, was man in Verbindung mit NodeRed damit alles so machen kann. Ich nutze darüber diverse ESP32 Anwendungen Shelly´s, die LogDaten aus FHEM usw.

Um Daten aus dem Zendure SolarFlow zu lesen, bietet der Hersteller einen eigenen MQTT Broker an. Den habe ich ebenfalls in NodeRed eingebunden und schiebe die Daten in die InfluxDB. Soweit so gut, klappt alles einwandfrei.

Ich möchte nun einen Wert in der Config meines SolarFlow Systems ändern. Es geht um das "outputLimit" des Speichers, darüber steuert man den Anteil der erzeugten Leistung, die ins heimische Stromnetz eingespeist wird. Der Rest geht in den Akku. Je nach Solar Leistung und Stromverbrauch macht es Sinn, die Schwelle dynamisch anzupassen.

Es gibt von Zendure eine kurze MQTT Beschreibung, aus der ich aber keine Lösung für mein Anforderung lesen kann. Es gibt auch eine API, die sei aber lt. Zendure readOnly. Ich habe keine Ahnung ob der MQTT Broker u.U. auch "readOnly" ist. Über die App kann man jedenfalls das outputLimit anpassen.

https://github.com/Zendure/developer-device-data-report

über den MQTT Explorer habe ich folgendes gefunden:

1690629451370.png

Das klingt für mich so als könne man über das command_topic "X1M3q1e9/7xy16mRr/outputLimit/set" einen Wert setzen. Leider bekomme ich aber scheinbar den richtigen Syntax nicht hin.

mit: X1M3q1e9/7xy16mRr/outputLimit/set 300 geht es auf jeden Fall schon mal nicht. Leider habe ich "programmier knowHow"

Hat jemand einen Tipp für mich? Vorab schon mal vielen Dank :)
 
Zuletzt bearbeitet:
Scheinbar kann hier auch keiner helfen. Dann suche ich mal weiter. Hab auf GitHub jemand gefunden, der genau das gleiche vor hat wie ich.

Sorry ich meine natürlich: Leider habe ich KEIN "programmier knowHow" :)
 
Mosquitto MQTT Broker mit NodeRed, InfluxDB
Balkonkraftwerk mit SolarFlow Speicher
diverse ESP32 Anwendungen Shelly´s, die LogDaten aus FHEM

Deine Anforderung ist vermutlich für etliche Mitglieder hier nicht "lösbar". Das geht schon weit über die Standard-Dinge
welche der Standard-User hat/nutzt hinaus. Wenngleich das Forum hier bestimmt von Deinem Fachwissen und Expertise profitiert.
 
Hallo Borkk, es freut mich, dass ich nicht alleine vor dem Problem stehe. ;) Haben Sie mittlerweile eine Lösung oder einen Ansatz für die Lösung der Aufgabe gefunden? Bin nun auch seit ein Paar Tagen mit der gleichen Problematik beschäftigt, komme allerdings nicht weiter.
 
Hallo Borkk,
kannst du mir bitte erklären wie du die Daten im Node Red abrufst? Verbindung bekomme ich hin, sehe aber keine Daten.
Danke dir,
ann-dee
 
Ich könnte auch einen Tipp gebrauchen wie ich die MQTT Abfrage vom ZendureServer mittels NodeRed mache. Zugangsdaten habe ich abgefragt, und Verbindung wird sowohl bei NodeRed als auch bei MQTT-Explorer als "verbunden" dargestellt. Aber es kommen keine Daten.
 
Anbei ein winziger Flow wie man den von einem Sensor per MQTT publizierten Wert extrahieren kann.

JSON:
[
    {
        "id": "b1b4001675da1ecb",
        "type": "tab",
        "label": "Extract MQTT value",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "57d6b295fe1ee086",
        "type": "function",
        "z": "b1b4001675da1ecb",
        "name": "selectValue \"visible\"",
        "func": "msg.payload=msg.payload.visible;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 660,
        "y": 240,
        "wires": [
            [
                "0a7251de60674cb7"
            ]
        ]
    },
    {
        "id": "77208f9618df31f0",
        "type": "json",
        "z": "b1b4001675da1ecb",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 380,
        "y": 240,
        "wires": [
            [
                "57d6b295fe1ee086"
            ]
        ]
    },
    {
        "id": "4404996311b64650",
        "type": "mqtt in",
        "z": "b1b4001675da1ecb",
        "name": "",
        "topic": "/dawn/sensor/3",
        "qos": "2",
        "datatype": "auto",
        "broker": "a94cecbd.51d108",
        "inputs": 0,
        "x": 200,
        "y": 240,
        "wires": [
            [
                "77208f9618df31f0"
            ]
        ]
    },
    {
        "id": "0a7251de60674cb7",
        "type": "debug",
        "z": "b1b4001675da1ecb",
        "name": "Visible",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 970,
        "y": 240,
        "wires": []
    },
    {
        "id": "a94cecbd.51d108",
        "type": "mqtt-broker",
        "name": "asterix",
        "broker": "192.168.0.12",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "compatmode": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "autoUnsubscribe": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]
 
Danke für die schnelle Rückmeldung, habe den Flow mal importiert. Mein Problem liegt allerdings vor der Datenverarbeitung. Ich bekomme keine Daten über MQTT rein.
Vermutlich habe ich den MQTT-in-Node oder deren Broker nicht korrekt implementiert, hast du hier eine Idee? Und muss ich bei Zendure irgendwo etwas freischalten/aktivieren?
 
Nutze doch mal den MQTT Explorer und pruefe ob ueberhaupt was an den MQTT Broker gesendet wird. Wenn nicht ist

1) das Senden ist nicht enabled
2) ein falscher MQTT Broker wurde konfiguriert
3) der Broker verlangt Authentifizierung die falsch ist
4) ...
... muss ich bei Zendure irgendwo etwas freischalten/aktivieren?
Keine Ahnung. Ich kenne das Teil nicht.
 
Mit dem MQTT Explorer habe ich es auch getestet. Auch dieser geht auf "connected" aber es kommt nichts rein. Eingeloggt bin ich hier mit dem Zedure AppKey und dem Secret.
Bildschirmfoto 2024-12-18 um 16.19.23.png
 
Dann scheint Dein Sensor nicht zu senden. Musst mal nachsehen was man tun muss um den zum Senden zu bringen. Ich kann Dir da aber nicht helfen.
 
Du musst noch „in deinem Screenshot“ auf ADVANCED klicken und deinen Appkey bzw. Username als Topic eintragen:

43mFqN36/#

und mit Add zu den Subscriptions Topics hinzufügen.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.661
Beiträge
63.891
Mitglieder
6.913
Neuestes Mitglied
djmicha68
Zurück
Oben