Ahoy-DTU keine Steuerung über MQTT möglich

Einen wunderschönen Abend wünsche ich. Ich habe HA mit einer Ahoy-DTU (mit HM-600) und diese auch schon per MQTT am Laufen und sehe alle Werte in HA. Jedoch habe ich heute gefühlt 3 Stunden versucht den Wechselrichter mit meinem aller ersten einfach Node red Flow nur mit einem Button einmal auf 120 Watt zusetzen und einmal auf 100% Leistung umzuschalten. Soweit so gut sehe ich auch irgend etwas in der Konsole in der ahoy ankommen aber es tut sich einfach nichts. Als Vorlage hatte ich mir den Flow zur Nulleinspeisung aus dem Forum genommen und versucht anzupassen bzw. Unbenutzte Teile raus zu dokumentieren. Jetzt denke ich das es nur noch an der topic liegt und sehe auch einen Unterschied zu allen anderen Anleitungen. Bei mir sieht es folgendermaßen aus in der Ahoy-DTU:


Könnte es sein das “ahoy-dtu/system” das Problem ist als Topic da dort ein zusätzlicher “/” drinn ist. Wo bei die Anzeige im HA ja funktioniert nur vielleicht kommt er mit dem Befehl nicht klar auf so einen langen Pfad.

Wenn mir jemand erklärt wie ich meinen Flow hier Posten kann dann könnte ich das gerne tun. :wink: Ist mein erstes Forum/Beitrag seit 20 Jahren.:rofl:

Moin Neoxx2 und willkommen an Bord.
Wie man einen Flow postet hatte ich hier mal beschrieben. Um den Flow zu anonymisieren solltest du ihn vorher durch den Scrubber scheuchen.
Ich hoffe das klappt.

Grüße
LL

[{"id":"6757043e04a06fba","type":"tab","label":"BKW drosseln","disabled":false,"info":"","env":[]},{"id":"8e68eb81f24ac7e0","type":"function","z":"6757043e04a06fba","name":"BKW auf 120W","func":"// MAX generation of the inverter Watts\nvar maxPower = 20;\nvar minPower = 10;\n\n\n// Get current power limit or default\n//var power =  minPower;\n//power += msg.payload;\n\n// clamp power between 0 and max\n//if (power > maxPower) power = maxPower;\n//if (power < 0) power = 1;\n\n\n// store current powerlimit and update message\n//context.set('power', power);\nmsg.payload = minPower;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":640,"y":120,"wires":[["b95e0e5a2f3c8cb2","2f95c2a85be3bb83"]]},{"id":"b95e0e5a2f3c8cb2","type":"mqtt out","z":"6757043e04a06fba","name":"WR MQTT","topic":"ahoy-dtu/system/ctrl/limit/0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"87b2d138566ff5cc","x":890,"y":160,"wires":[]},{"id":"f829f80ffc5ff6c8","type":"function","z":"6757043e04a06fba","name":"BKW auf 600W","func":"// MAX generation of the inverter Watts\nvar maxPower = 20;\nvar minPower = 10;\n\n\n// Get current power limit or default\n//var power =  minPower;\n//power += msg.payload;\n\n// clamp power between 0 and max\n//if (power > maxPower) power = maxPower;\n//if (power < 0) power = 1;\n\n\n// store current powerlimit and update message\n//context.set('power', power);\nmsg.payload = maxPower;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":640,"y":180,"wires":[["b95e0e5a2f3c8cb2","2f95c2a85be3bb83"]]},{"id":"2f95c2a85be3bb83","type":"debug","z":"6757043e04a06fba","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":920,"y":280,"wires":[]},{"id":"1de11edbc6a09133","type":"server-state-changed","z":"6757043e04a06fba","name":"Switch Drossel BKW","server":"","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.drossel_bkw","entityidfiltertype":"exact","outputinitially":false,"state_type":"habool","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":160,"y":160,"wires":[["f901c56573a56a6a"]]},{"id":"f901c56573a56a6a","type":"switch","z":"6757043e04a06fba","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":370,"y":160,"wires":[["8e68eb81f24ac7e0"],["f829f80ffc5ff6c8"]]},{"id":"6f4b6c2363afbcc8","type":"comment","z":"6757043e04a06fba","name":"","info":"","x":120,"y":60,"wires":[]},{"id":"87b2d138566ff5cc","type":"mqtt-broker","name":"","broker":"192.168.16.254","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Nachtrag1:
danke dir habs mal versucht

Nachtrag2:
ich hab jetz mal inject nodes drann gehangen am mqqt out doch leider auch dies ohne Erfolg wenn man sie betätigt.


Screenshot 2023-07-18 221006
Screenshot 2023-07-18 221039

:crayon:by HarryP: Zusammenführung Mehrfachposting

Moin Neoxx2,
du hast in der AhoyDTU im MQTT Setting Username und Password eingetragen, hast du dies in NodeRed im MQTT out (WR MQTT) ebenfalls gemacht?
Weiterhin benötigst du keine function node wenn du feste Werte übergeben willst.

Grüße
LL

Danke für deine Antwort. Ja das habe ich. Oben steht connected und in der Konsole von der Ahoy-DTU sehe ich auch das topic eintrudeln. Und im Mqtt-Explorer kann ich auch sehen das es angelegt wird und der Wert drinn steht. Ahoy dtu hab ich Mal die aktuellste auch installiert. Leider immer noch ohne Funktion.

Wie gesagt die Funktion hatte ich geklaut und an meine Werte angepasst wie ich es verstanden hatte. Ist bestimmt bloß eine Kleinigkeit die fehlt oder falsch ist.

Auch wenn am MQTT out “verbunden” oder “connected” steht heißt das nicht, dass die Werte auch übermittelt werden (war zumindest bei mir mal so).
Ich habe deinen Flow bei mir eingefügt, den MQTT out auf meine Werte angepasst und einen booleschen Auslöser gewählt. Bei mir funktioniert’s.
Welche Hardware nutzt du (ESP8266 oder ESP32)? Falls du den 8266 hast bitte die Ahoy-Version v0.6.0 flashen, mit der last stable v0.6.9 hatte ich Probleme mit MQTT.

Grüße
LL

Hab 0.69 und 8266 wäre ja schonmal ein Tipp. Danke dir. Einen Kondensator habe ich ebenfalls noch nicht drann aber übers Webinterface von Ahoy-DTU lässt er sich ohne Probleme regeln darum denke ich nicht das es daran liegt.

Hab jetzt die 0.6.0 mal ausprobiert. Leider gleiches Ergebnis. Kannst du mir Mal genau sagen wie dein topic bei Ahoy-DTU heißt und wie es im nodered angesprochen wird? Gerne mit paar Screenshots. Hab jetzt schon alle Schreibweisen durch. Ich Dreh hier bald durch. :exploding_head:

Moin Neoxx2,
die grundsätzliche Funktion deines Flows hatte ich bei mir ja erfolgreich getestet und über die GUI kannst du den WR steuern.
Weiter schreibst du:

also ist die Verbindung zu HA via MQTT hergestellt.
Wie ich das sehe bleibt nur das Problem das der WR keine Befehle von deinem NodeRed Flow annimmt, korrekt?
Was steht denn bei den System Infos wenn du in der GUI ganz oben auf AhoyDTU klickst?

Grüße
LL

Die DTU sendet also fleißig ihre Pakete, empfängt aber nichts.
Ist die DTU in der HA MQTT Integation als Gerät sichtbar (Einstellungen - Geräte und Dienste - im Reiter Geräte filtern nach MQTT)?

Grüße
LL

es steht was drinn…

Die Vorgabe für die Befehlszeile lautet ja “TOPIC/ctrl/limit/INVERTER_ID”, ich nehme mal an den Befehl ohne /system bei deinem Topic hast du schon mal versucht?

Grüße
LL