@suslik1987 Also Node-Red auf den Raspberry läuft seit Oktober durchgehend ohne irgendwelche Probleme. Ich bin echt begeistert wie zuverlässig der Raspberry läuft.
Ansonsten ist es bei mir im Moment noch etwas anders. Ich habe noch nichts aktiv laufen um Nulleinspeisung zu erreichen. Soll aber kommen.
Deswegen mache ich das aktuell anders. Ich habe so zum Beispiel eine Klima an einem Shelly 1 PM hängen, die andere Klima an einen Shelly Plug S. Theoretisch kann man Wasserkocher, Waschmaschine usw... alles an die Shellys hängen und sobald die einschalten kann man über Node-Red die Signale an den Hoymiles schicken. Der Hoymiles reagiert innerhalb von wenigen Sekunden.
Aber das ist nur für den Übergang. Ich habe ein EnergyMeter das noch eingebaut werden muss. Dann werde ich das definitiv darüber steuern.
Ich denke mal 10 Sek. sind doch super. Wenn du dann einen starken Verbraucher an machst, schaltet der Hoymiles maximal 10 Sekunden später hoch, aber dafür schaltet er ja auch max. 10 Sekunden später runter.
Komplett auf 0 wirst nicht möglich sein, aber ich denke du kommst selbst mit den 10 Sek. ziemlich nah an die 0 Einspeisen ran. Also so weit wie im machbaren der Wechselrichterleistung.
Aber hier kann ich nicht aus Erfahrung sprechen.
Danke für deine schnelle Antwort
@stiech82 Kannst du darüber den Hoymiles eine Wattzahl vorgeben die er einspeisen soll oder muss man die Werte in % zu den max. 600 Watt eingeben?
Danke,
Gruß
Was für ein SmartMeter hast du? Gab es da Probleme bei der Konfiguration?
Ich bade auch so einen nodemcu/d1 Mini Pro mit Phototransistor und versucht meine "intelligente Messeinrichtung oder wie der Zähler heißt" auszulesen.
Im debug-Modus werden auf dem Sensor keine Daten angezeigt. Hatte einen anderen Phototransistor getestet, auch dort werden keine Daten angezeigt. (in der Konsole von Tasmota auf dem ESP/Nodemcu).
Der Zähler (LTRON) ist freigeschaltet und wenn ich mit der Handykamera auf die Diode halte seh ich das auch blinken.
Danke.
Gruß
@suslik1987 du kannst beides machen.
Wenn ich den Wert an diese Adresse schicke: Hoymiles/ctrl/limit_persistent_absolute/0
Dann schickst er an Inverter 0, also den ersten in der Liste von AhoyDTU, den Wert und durch das "absolute" ist das in Watt.
Wenn man statt "absolute" "relative" nimmt, dann in Prozent.
Moses hatte das hier mal verlinkt und da siehst du die ganzen Befehle bzw. Adressen: https://github.com/lumapu/ahoy/blob/main/User_Manual.md
cool danke dir
Hallo,
ich habe ne Frage zu der Anbindung Ahoy-DTU -> Mqtt in Home Assistant.
Bei open-DTU wird alles sauber erkannt. die 2 Wechselrichter , die über open-DTU verbunden sind, kommen in Mqtt als 2 Geräte an.
Ich habe zeitgleich ein Ahoy-DTU laufen. eine andere IP-Adresse als Ahoy-DTU vergeben. Aber ich sehe das nicht in Home Assistant. Ahoy-DTU meldet, dass eine Verbindung zu Mqtt besteht. Wie kann ich das prüfen bzw. Mqtt dazu bringen, nach Ahoy-DTU zu scannen und da auch die 2 Wechselrichter als Geräte hinzu nehmen.
Sollten die Geräte über die Seriennummern verwaltet werden, kann es natürlich keine 4 Geräte geben. Vielleich weis einer von euch, wwas ich da testen kann.
@alter-hase MQTT sucht nach nichts. Das ist eine Datenbank und die Sammelt die Daten welche zu ihr geschickt werden.
Bei Ahoy-DTU kannst du MQTT einrichten. Da muss die die Adresse deiner Datenbank angeben. Dann schickt Ahoy-DTU die Daten an MQTT.
Am Computer dann, kann man z.B. mit dem MQTT-Explorer einsehen wo die Datenbank welche Daten sendet. So kannst du dann die Adresse der einzelnen Daten abrufen. Keine Ahnung ob das HA braucht, ich mag HA überhaupt nicht. Ausprobiert und mehrmals hat es mich im stich gelassen, obwohl es auf dem Raspberry läuft auf dem auch MQTT und Node-red laufen und die mich noch nie im stich gelassen haben.
Deswegen kann ich zu HA nicht viel sagen.
Ich sehe home assistant mittlerweile auch kritisch. Weil mir das ganze total abgestürzt ist. Ich habe ja mehrere Backup. Aber wer denkt, man hat mit Restore gleich alles wieder, irrt. Ich musste am ende auf partitiell gehen und einige addon quasi manuell restore machen. Das hat mega gezickt.
Zurück zum Thema.
Ich habe ahoy-dtu eine andere IP gegeben. Schlauer weise diesmal auch die Namen der zwei wechselrichter verschieden genannt. Jetzt kommen in mqtt die Entitäten der wechselrichter von akoy-dtu. Aber es sind zur Zeit nur 2 Geräte erkannt. Habe gerade gesehen, jetzt ist 1 gerät/wechselrichter von open-dtu erkannt und der andere von ahoy-dtu. Sehe ich am Namen. Das wird wohl über die Seriennummern verwaltet. Dann kann es nur 2 Geräte geben.
Das ist für mich im Grunde alles nicht nötig, das doppelt zu machen. Aber so lerne ich Stück für Stück was. Ich sehe das ganze als Hobby. Andere kleben mit Streichhölzer den Eiffelturm im Keller.
Ich hab das bisher so verstanden , dass das core-mosquitto scannt und Geräte bzw. Entitäten erkennt.klar fragt ahoy-dtu und open-dtu iwie an. Ich gebe ja da die Adresse von mqtt an. Wie das aber genau abläuft ? Stochern im Nebel. Vielleicht kann das ein er hier erklären.
@alter-hase Wie geschrieben ist MQTT eine Datenbank. Die erkennt keine Geräte oder sucht nach Geräten bzw. Daten. Sie bekommt die Daten und das was sie bekommt nimmt sie auf.
Deswegen muss man ja wie z.B. bei Ahoy-DTU MQTT einrichten und die Adresse von der Datenbank eingeben. Dann werden die Daten von Ahoy-DTU zur Datenbank geschickt.
Das ist wie wenn dein Briefkasten, z.B. diese komischen Röhren mit diesen Fähnchen dran, MQTT ist und Ahoy-DTU ist z.B. das Amt. Die kennen deine Adresse, weil du dich bei denen gemeldet hast (Eingabe bei Ahoy-DTU der MQTT-Daten). Dann schickst das Amt dir einen Brief z.B. weil sie noch Infos von dir brauchen. Du weißt also nichts von diesem Brief, du wartest auch nicht auf dem Brief. Demnach suchst du ja auch nicht danach oder erkennst ob dir jemand einen Brief schicken will.
Die Post ist dann dein Netzwerk. Die sorgen dafür, dass dieser Brief bei dir ankommt. Werfen die bei dir diesen Brief ein, setzen sie das Fähnchen am Briefkasten nach oben und du als MQTT dann: Hey es gibt Informationen für mich.
So funktioniert das eigentlich mit einer Datenbank.
Die IP von Ahoy-DTU ist da eigentlich egal. Denn es ist ja egal welche Adresse das Amt hat, wenn die deine Adresse haben, dann kommt der Brief bei dir an.
Dadurch das dann auf dem Brief der Absender steht, weiß du als Datenbank woher die Daten kommen und dann steht ja auch noch auf dem Brief welche Art von Daten das sind. Also sowas wie "Rechnung". Dann weißt du als Datenbank, du musst den Brief unter Rechnungen vom Amt abspeichern. Das ist dann sozusagen der Ort der Datenbank wo die Daten abgelegt werden um sie dann jederzeit wieder abrufen zu können.
Der Inverter wird bei AhoyDTU und vermutlich auch OpenDTU nur über die Seriennummer verwaltet. Du kannst da mehrere Inverter eingeben. Inverter 1 hat die Position 0 in der Datenbank, Inverter 2 dann die 1 usw....
So weit ich weiß, kannst du bei Ahoy-DTU weitaus mehr als 2 Geräte eingeben. Aber du musst sie halt angeben.
Wenn du jetzt von Open-DTU und Ahoy-DTU beide Inverter eingegeben hast und bei beiden DTUs denen die selbe Adresse für MQTT gegeben hast. Ich habe so zum Beispiel "Hoymiles" als MQTT-Adresse (Topic) angegeben. Wenn du dieses Topic bei AhoyDTU und OpenDTU eingegeben hast. Dann wäre das wie wenn dir zwei verschiedene Ämter von verschiedenen Adresse einen Brief schicken, aber beide den selben Absender auf den Brief schreiben. Dann denkst du als Empfänger du hast beide Briefe vom gleichen Amt erhalten.
Vielleicht liegt da der Fehler, dass du bei Ahoy und Open das gleiche Topic für MQTT angegeben hast?
Danke für deine Erklärungen, stiech82.
So ähnlich wird es sein, dass alles über die Seriennummern der wechselrichter verwaltet wird. Schon komisch. Ich hab weiterhin 2 geräte in mqtt, jetzt je dtu ein Gerät. Entitäten kommen von 3 wechs3lrichtern. Ich habe die topic verschieden. Macht aber eh kein Sinn, das doppelt laufen zu lassen. Mach ich auch nur zu Testzwecken um zu sehen ob die dtu auch funktionieren.
Ist auf jeden Fall eine interessante Sache, wechselrichter, dtu und mqtt und home assistant. Iwann wird jeder son schlaues smart home System haben. Ist net schlecht, da so langsam schlau zu werden.
Hallo zusammen,
wie sehen eure Nodes aus?
Habe eine Funktion in node red mit der ich aber garnicht zufrieden bin. Mein Grundbedarf liegt bei ca 170W sobald ich z.B. den Laptop anstecke steigt dieser und der Wechselrichter gibt die ganze Leistung frei dadurch steigt wieder die Einspeisung ..... das gibt ein unendliches hin und her geregel.
Hier mal meine Funktion:
@dima2241 Ich peile ja eher Nulleinspeisung an, deswegen ist mein Skript anders.
Aber ich habe so ein ähnliches Problem weil ich die Anlage ab einem gewissen Akkustand drossle. Wenn aber die Drossel greift, dann steigt der Akkustand ja wieder etwas weil nichts gezogen wird und dann geht der Akkustand wieder hoch und die Drossel geht wieder aus und schon sinkt der Akkustand wieder.
Also auch ein hin und her.
Ich habe dafür dann eine Zeitverzögerung (delay) mit Node-Red eingebaut. So wartet er noch etwas bis die Drossel greift und das hin und her ist deutlich weniger geworden.
Wichtig: Beim Delay das Kontrollkästchen mit den Zwischennachrichten löschen aktivieren. Sonst sendet er dir nach und nach die alten Nachrichten durch.
Hallo, leider kann ich nicht erkennen ob es euch jetzt über den Ahoy V0.5.66 mittels mqtt gelungen ist die Inverter zu limitieren?
Egal wie und was ich versuche, es klappt einfach nicht. Allerdings verwende ich iobroker, sollte aber was die mqtt Nachricht betrifft egal sein.
Ich habe schon viele verschiedene Varianten versucht und komme nicht ans Ziel. Im Moment versuche ich es wie eigentlich beschrieben.
Allerdings führt das immer dazu das die Payload ignoriert und als 0Watt interpretiert wird.
Das gibt der Ahoy Server in der Console aus:
13:53:46 I: MQTT got topic: inverter/ctrl/limit_nonpersistent_relative/1 13:53:47 I: resetPayload: id: 2 13:53:47 I: (#2) enqueuedCmd: 11 13:53:47 I: (#2) sendTimePacket 13:53:47 I: sendTimePacket b 13:53:47 I: TX 27B Ch61 | 15 82 94 52 26 85 30 07 35 80 0b 00 63 fb 56 5b 00 00 00 04 00 00 00 00 c4 9e b0 13:53:48 I: procPyld: cmd: 11 13:53:48 I: procPyld: txid: 0x95 13:54:17 I: resetPayload: id: 0
@xfreak
Ich sehe die "1" hinten an der Adresse. Hast du denn 2 Inverter bei Ahoy-DTU eingetragen?
Denn der erste Inverter hat die "0" und der zweite Inverter die "1" usw....
Wenn du also nur einen Inverter bei Ahoy-DTU eingetragen hast, dann muss da eine 0 stehen.
Ich bin mir nicht ganz sicher, aber du hast da "_relative" stehen. Ist das nicht die Angabe in Prozent? Den Wert 300 kann es da sowieso nicht geben.
Ich bin mir nicht mehr sicher, aber ich meine "absolute" ist die Angabe in Watt und "relative" die Angabe in Prozent.
Ob persistent oder nonpersistent sollte hier erst einmal egal sein.
Bei mir sieht das so aus:
19:37:26 I: MQTT got topic: Hoymiles/ctrl/limit_persistent_absolute/0
19:37:27 I: resetPayload: id: 0
19:37:27 I: sendControlPacket cmd: 11
19:37:27 I: TX 19B Ch40 | 51 82 91 13 04 85 76 67 00 81 0b 00 0a 8c 01 00 c3 c2 cd
19:37:27 I: clearCmdQueue
19:37:27 I: (#0) enqueuedCmd: 5
19:37:27 I: Inverter 0 has accepted power limit set point 270 with PowerLimitControl 256
19:37:28 I: resetPayload: id: 0
Hier wurde der Wert 270 gesendet. Diese 256 steht da immer. Keine Ahnung was die bedeutet.
Aber diese Antwort "Inverter 0 has accepted....." muss kurz später nach dem "MQTT got topic" kommen. Ich denke ich brauche nicht erklären was das bedeutet. Der Text ist ja eindeutig.
Gestern habe ich mir node red plugin in home assistant installiert. Für mich ist das alles total neu, ich muss erst mal die Grundlagen erarbeiten. Ich habe auch appDaemon installiert. Mit phyton kann man eine komplexe Regelung programmieren. Node Red scheint mir da weniger geeignet zu sein. Aber auch appdaemon/Python ist Neuland für mich. Ne gute Regelung zu programmieren ist schwer, egal mit welcher Plattform man das macht.
Eine gute Regelung der Leistung des HM600 muss die Parameter relativ setzen. Was ich mir dabei vorstelle: Es gibt einen Wert aktuelle Ausgangsleistung des HM600. Dann wird eine Änderung des aktuellen Verbrauches erfasst. Dies muss auch in Leistung umgerechnet werden. Also wenn ich den Strom erfasse, rechne ich über P = U*I in Leistung um. Die Spannung einfach mit 230V annehmen. So erhält man die aktuelle Verbrauchsleistung. Der HM600 steht z.B. auf 300 W. Die Verbrauchsleistung wäre idealerweise auch 300 W. Wenn sich jetzt die Verbrauchsleistung auf 350 W erhöht, reicht es, den Wechselrichter auf 350 W + x zu setzen. Das x ist ne relative grösse der aktuellen Ausgangsleistung, eine Art Vorhalt. Bei kleinen Änderungen sollte sowas funtionieren. Aber wenn z.B. der Herd zugeschaltet wird, kann der HM600 das gar nicht bringen. Er kann nicht auf 3.000 W hoch gefahren werden. Auch die Ausgangsleistung des HM600 kann sich ändern, die Sonne geht weg. Wer dann den Wechselrichter auf volle 600W hoch regelt, weil auf einmal viel Strom vom Netz gezogen wird, macht mehr kaputt als gut. Das alles gilt es zu berücksichtigen. Das sind meine Überlegungen, wie ich das angehen werde. Wie gut das funtioniert wird sich erst noch heraus stellen. Vielleicht gibt es ja in Python schon was, was man auf seine Zwecke umstricken kann. Ich brauche auch erst einmal nur die Regelung für eine optimale Grundversorgung nachts über die Akku.
Du weist aber schon, dass die Übertragung von der DTU an die Hoymiles sehr träge ist und nicht wirklich zum dynamisch regeln taugt.
@stromsparer99 was ist deine Definition von sehr träge?
Ich bin bei einem Abrufen von allen 3 Sekunden und das funktioniert super. Wobei vermutlich mit OpenDTU das noch schneller geht. So meinten das zumindest einige, da AhoyDTU da unzuverlässiger sein soll.
So zum Beispiel kommen nur bedingt alle Befehle bei weniger als 3 Sekunden an. Deswegen bin ich bei 3 Sekunden.
Wenn ich mir überlege wie der Aufbau ist, dann sind 3 Sekunden definitiv was anderes als "sehr träge" für mich. Wenn jemand erwartet, dass das System instant reagiert, der hat nicht verstanden was hinter dem System steckt.
PS: Achja, von Abschicken des Befehls mit Node-Red bis Anpassung des Wertes vom Hoymiles vergehen etwa 2 Sekunden wenn ich maximal alle 3 Sekunden die Werte schicke. Öfter kommt es zu starken Verzögerungen.
Aber wie erwähnt, soll das mit OpenDTU zuverlässiger laufen. Daher sollte es sogar möglich sein unter 3 Sekunden Reaktionszeit hinzubekommen.
@alter-hase Das ist mit Node-Red alles super einfach. Ich wüsste nicht was man da mit Phyton komplexer machen kann als bei Node-Red. Man muss sich halt in Node-Red einarbeiten, wenn man Phyton schon kann, dann ist das natürlich etwas komplizierter am Anfang. Wenn man beides nicht kann, ist Node-Red deutlich einfacher.
Denn du sagst über Node-Red nur welche Funktionen gebaut werden sollen und die eigentlichen Programmierung übernimmt dann Node-Red. Mit Phyton musst du halt die komplette Programmierung inkl. Funktionen selbst bauen.
Ich denke das mit dem relativ und absolute hat hast du falsch verstanden. Der Hoymiles kennt nur "absolute = Watt" und "relativ = Prozent".
Denn ich mache das so wie du geschrieben hast. Daher ist deine Überlegung der Funktion in meinen Augen super.
Ich nehme den aktuellen Limit-Wert vom Hoymiles und Wert vom Shelly3EM. Der Wert vom Hoymiles ist in Prozent, aber den in Watt umzurechnen ist ja einfach. Dann addiere ich den Wert in Watt vom Hoymiles mit dem Shelly3EM-Wert.
Aktueller Limiter-Wert von Hoymiles in Watt + Wert von Shelly 3EM = Neuer Sollwert für Hoymiles in Watt.
Ich selbst habe einen HM-600 und deswegen gleiche ich nach dem addieren der 2 Werte ab ob der Wert GrößerGleich 600 ist. So lange der Wert kleiner als 600 ist, soll genau der errechnete Wert an den Hoymiles geschickt werden. Ist der Wert >=600 dann soll der Wert 599 an den Hoymiles geschickt werden.
Wenn ich jetzt in Watt an den Hoymiles schicke, dann muss ich "absolute" schicken. Wenn ich in "relative" schicke, dann muss der Wert in Watt in Prozent umgerechnet werden. Was in meinen Augen unnötig ist, wenn man doch einfach mit "absolute" in Watt schicken kann.
Alles habe ich so mit Node-Red ohne zusätzliches Programmieren von Skripten realisiert.
ich stimme mit stiech82 überein, das muss nicht enger geregelt werden. im gegenteil, ich glaube, dass man mit ner regelung, die alle 10 Sekunden regelt, gute Ergebnisse erzielen kann. wenn Python, dann nicht wegen der schnelligkeit der Regelung, sondern wegen der intelligenz der Regelung. im Augenblick weis ich gar nix, ich bin am lernen. Das sind alles nur Vorstellungen von mir.
Mit geht es auch nicht darum, das letzte quentchen raus zu holen. Wenn ich so gut es geht (mit verhältnissmäßig geringem Aufwand) meine Stromrechnung runter drücken kann, bin ich zufrieden. muss nicht total perfekt laufen.