NEWS
Photovoltaik - Hoymiles HM-1200 Balkonkraftwerk Daten
-
@a200
Es wird irgendwie der 2.7.0 Wert des Smartmeters nicht übernommen.
Weiters übernimmt ahoy den Wert nicht.
Man müsste einen String in hmLimit schreiben.
Kann auch sein, dass das Ganze zu schnell passiert. Besser wäre es man sendet nur alle 60 Sekunden einen Wert an hmLimit -
var cronRun = "* * * * *"; var ueberprod = "mqtt.3.SHRDZM.4C7525364D1E.4C7525364D1E.sensor.2.7.0"; var hmProd = "mqtt.4.ahoy1.HM1500.ch0.P_AC"; var hmLimit = "mqtt.4.ahoy1.devcontrol.0.11"; var ueprod, aktprod; function anpassen() { ueprod = getState(ueberprod).val; aktprod = getState(hmProd).val; if (ueprod = 0) setState(hmLimit, 65535, true); else setState(hmLimit, paseInt(aktprod - ueprod), true); log("Überproduktion: " + ueprod + " - Produktion: " + aktprod + " - Limit: " + getState(hmLimit).val); } schedule(cronRun, function () { anpassen(); });
Wird minütlich ausgeführt und als Limit wird ein Integer gesetzt.
-
@a200
Danke dir für deine Hilfe!
Ich habe nun das Problem, die Überproduktion ist 0, es wird aber trotzdem ein Limit gesetzt.
Weiters habe ich folgende Fehlermeldungen:
-
@m-h-0 sagte in Photovoltaik - Hoymiles HM-1200 Balkonkraftwerk Daten:
@a200
Danke dir für deine Hilfe!
Ich habe nun das Problem, die Überproduktion ist 0, es wird aber trotzdem ein Limit gesetzt.Die Zeile 10 sollte lauten:
if (ueprod == 0)
-
@a200
Super es klappt soweit. Die Formel muss ich noch etwas verbessern. Da muss ich schauen wie es am besten praktikabel ist.
Problem habe ich nun noch, dass der hmLimit Wert nicht als String übergeben wird.
Es sollte da wohl eine ganze Zahl als String übergeben werden, ohne Komma. -
@m-h-0 sagte in Photovoltaik - Hoymiles HM-1200 Balkonkraftwerk Daten:
@a200
Problem habe ich nun noch, dass der hmLimit Wert nicht als String übergeben wird.
Es sollte da wohl eine ganze Zahl als String übergeben werden, ohne Komma.Also String oder Zahl (Integer) ? Eigentlich wird in der Zeile 13 der Wert "(aktprod - ueprod)" in Integer (ganze Zahl) umgewandelt und als Integer an hmLimit übergeben.
Schick mir mal die DP-Definition von hmLimit, dann kann ich sehen, was rein soll. Aus meiner Sicht soll da Int rein:
dein Datenpunkt erwartet aber String. -
Ist als String definiert. Ändere ich den Datenpunkt, ändert er sich automatisch wieder zurück zu string.
-
@m-h-0 Dann versuche mal mit der Zeile 13:
setState(hmLimit, paseInt(aktprod - ueprod).ToString(), true);
Damit wird der Wert in Integer (also ohne Komma) und dann in String umgewandelt und übergeben.
-
@a200
bekomme ich leider noch immer den Fehler
Aber das ist nun der Fehler in Zeile 11.
Dort muss ich das auch noch in String umwandeln.habe es hinbekommen.
Super danke dir!Jetzt muss ich noch überlegen, wie man es abfängt, wenn die Überproduktion 0 ist, der Gesamtverbrauch aber nur zb. 10 ist und die momentane Limitierung zb. 800.
Dann würde diese Formel die Limitierung gleich komplett aufheben und man hätte dann in diesem Fall 690W Einspeisung.Aber das sind nun Kleinigkeiten
-
@a200
Du hast Recht, der Datenpunkt ist mit String falsch.
Funktionierte bei mir aber bis jetzt, wenn ich im VIS einfach die Zahl auf den Datenpunkt schreibe.
Jetzt habe ich den Datenpunkt auf number geändert, und das Script ohne dem toString gestartet.
Es wird zwar kein Fehler im log angezeigt. Es wird auch die Zahl im mqtt Datenpunkt geschrieben, aber ahoy ignoriert das nun.
Irgendwie habe ich einen Wurm mit der Formatierung drinnen -
Ich hatte auch meine Probleme mit dem Datentyp um das Limit zu setzen. Hatte dazu auch gefragt (siehe meine Posts von 23. Aug. 2022, 14:21 ff.)
aber es wurde nie richtig beantwortet.
Seit ihr da inzwischen weiter gekommen? Ich habe aufgrund Urlaub seitdem nicht mehr weiter gemacht, steht aber demnächst auch wieder an. -
@netfriend
Mit meinem VIS kann ich die Limits setzen.
Jetzt mit dem Script passt es irgendwie nicht -
Ahoy 0.5.17 / g5402e9b
per JS einmal ausgeführt :
sendTo('mqtt.0', 'sendMessage2Client', {topic: 'inverter/devcontrol/0/11/0', message: '100'});
mit Mqtt Explorer Datenpunkt erstellt, DP ist automatisch Number
Topic: inverter/devcontrol/0/11/0 Payload:150
Reboot
Test mit 100:
-
@Ralla66
Ich habe mir gerade auch die 0.5.17 installiert. Läuft soweit.
Mit JS das Powerlimit senden geht auch, ich sehe es auch im hterm. Soweit schon mal primaHast Du den MQTT-Datenpunkt nun selbst angelegt oder wird der inzwischen angelegt. Ich meine mich zu erinnern, dass dies kürzlich aufgrund eines Feature-Requests von @BananaJoe hinzugekommen ist.
Einen devcontrol-Eintrag gibt es bei mir nach wie vor nicht nicht. Weder nach Neustart des ESP8266 noch nach dem einmaligem Senden per JS.
Wie ist das bei Dir? -
devcontrol per Mqtt Explorer selbst angelegt.
-
@sky bin auch erst letzte Septemberwoche wieder in Deutschland. Also ich würde dir dann gerne 2 abnehmen. Gib mir einfach Bescheid wie es für dich dann am besten ist.
Grüße -
Mqtt Explorer ist bei mir die MqttBox, die zum Ordner erstellen ein publish macht.
Bild dazu.
-
Eine blöde Frage wo finde ich die fertigen bins um sie auf einen ESP12 zuflashen.
Gibt es eigentlich auch alternativen für den esp32?? -
@basti97 Ich mache es Dir mal einfach.....
-
@jack01 Vielen Dank ich habe bis jetzt noch nie irgendwelche bins komplim. Irgendwie checke ich das nicht so richtig . Updates können dann ota aktualisert werden oder muss ich sie immer wieder neu auf den ESP flashen.
Muss ich bei den 32 den Bootloader mit flashen oder nur die einzelne Datei?