REIZFLUT / ahoy-tasmota-solar-manager

A quick and dirty solution for measuring and optimizing your "Balkonkraftwerk"
2 stars 0 forks source link

OpenDTU #2

Open Garfs-Homassistant opened 1 year ago

Garfs-Homassistant commented 1 year ago

Könnte hier auch die Abfrage einer openDTU anstelle der AhoyDTU gemacht werden?

REIZFLUT commented 1 year ago

Klare Anwort Jein ;-) Man müsste halt einen openDTU-Adapter schreiben und einbinden. Das ist an sich kein großer Stress, da auch openDTU eine REST-API zur Verfügung stellt. Ich habe nur momentan keinen übrigen ESP32 rumliegen, den ich als Testgerät verwenden könnte. Das macht es dann grade doch etwas schwierig ;-)

Garfs-Homassistant commented 1 year ago

Ist ja nur ein Wunsch.

Hilft es, wenn ich die api Ausgabe poste?

VCW3D commented 1 year ago

Da ich auch die openDTU verwende, würde ich mich auch sehr freuen, wenn das vielleicht noch käme. Finde Dein Projekt nämlich echt klasse.

REIZFLUT commented 1 year ago

Hallo @Garfs-Homassistant und @VCW3D, ich habe einen neuen Zweig/Branch "withopendtu" hinzugefügt. Wenn ihr Lust habt, testet den doch mal. Der ist allerdings in absolutem Blindflug, rein aus der Doku unter https://github.com/tbnobody/OpenDTU/blob/master/docs/Web-API.md entstanden. Ich habe nach wie vor kein Testgerät.

REIZFLUT commented 1 year ago

image

Dateien neu installieren, oder wer sich auskennt patchen. Daten unter Settings anpassen und mal schauen, was er tut...

VCW3D commented 1 year ago

Vielen Dank! Ich muss mich da dann aber erst reinfuchsen. Ich habe generell keinen Plan davon. Nach langem lesen, bekam ich es damals hin, Marlin für meinen 3D Drucker zu ändern und zu kompilieren, das sind meine einzigen "Programmierkenntnisse". 😉

Garfs-Homassistant commented 1 year ago

Bekomme keine Werte. Mit Ahoy kommen die korrekt, bei open DTU kommt nichts an. Gibt es ggf. ein Log was ich ansehen könnte?

REIZFLUT commented 1 year ago

Ich habe ein Test-Script im Branch withopendtu hochgeladen (test_opendtu.php). Damit können wir die ersten Fehler beim LESEN mal ausschließen. Einfach in den Basis-Ordner (wo auch die index.php liegt) packen und im Browser aufrufen.

Wenn er an irgendeiner Stelle vorschlägt Änderungen an den Einstellungen zu machen, liegt wahrscheinlich ein Anwender-Fehler vor (falsche URL oder Seriennummer). Wenn er durchläuft und aktuelle Live Daten anzeigt, liegt der Fehler wo anders. Wenn er Programm-Fehlermeldungen ausspuckt (Warning / FatalError) bitte hier posten und nicht vergessen die Inverter-ID unkenntlich zu machen.

Bitte auch mal testen, ob die Route http://url-zu-deiner-opendtu/api/livedata/status funktionioniert. Im Zweifel bitte auch den Output mal hier posten.

Bei meinem Test mit der Fake-API sieht der Output so aus:

Versuche Verbindungsaufbau zu: http://fake_opendtu/api/livedata/status

Verbindung erfolgreich, Status 200.

Einstiegspunkt "inverters" gefunden.

Inverter mit der Seriennummer (serial) "123456789" gefunden.

Relevante Live Daten:

Relatives Limit: 100
Aktueller Output AC: 100
Aktuelle Temperatur: 50
Zählerstand Inverter (YieldTotal): 20
Inverter ist erreichbar: ja
REIZFLUT commented 1 year ago

PS: mir ist noch eingefallen, dass wenn es gestern Abend getestet wurde, der Wechselrichter evtl. aus war und dementsprechend der Wert für "reachable" auf "false" stand. In meinem Code war ein Logik-Fehler. Er soll ja die Messung aus durchführen, wenn der Inverter aus ist... Bitte Datei app/sensors/OpenDTU.php aus dem Branch "withopendtu" austauschen.

REIZFLUT commented 1 year ago

@VCW3D du brauchst eigentlich keine Programmierkenntnisse. Das ganze Projekt ist für Leute ohne Programmierkenntnisse ausgelegt, die das Ding auf einer NAS installieren wollen. Eine Beschreibung findest du hier im Wiki. Wenn das auf einem Raspi o.ä. laufen lassen willst, musst natürlich erstmal einen Basis-Webserver drauf installieren und die Cron-Jobs unter CronTab konfigurieren, statt über die Klick-Oberfläche des DSM. Für "Wie installiere ich einen Webserver auf einem Raspberry Pi" und "Cron Jobs unter Linux" gibt es massig Tutorials im Netz, deshalb hab ich mir das hier gespart ;-) Den Rest kannst du einfach unter "Einstellungen" eingeben :-)

VCW3D commented 1 year ago

@REIZFLUT vielen Dank. Dann sehe ich mal zu, mich damit auseinander zu setzen. Ich will es auf meiner Synology laufen lassen, da die ja eh da ist und läuft. Muss mir nur erstmal noch nen IR Lesekopf besorgen. Gibt es da was, worauf ich achten muss?

REIZFLUT commented 1 year ago

@VCW3D Gerne. Ich hab den IR Lesekopf einzeln gekauft und mir den selbst mit einem ESP8266 zusammengebaut, weil ich da noch einen übrig hatte. Die gibt es aber auch fertig zu kaufen (habe gehört, dass viele den Hichi IR Wifi verwenden - habe damit aber nichts zu tun). Wichtig ist nur, dass mein Projekt nur mit tasmota-basierten Geräten läuft (ist beim Hichi der Fall). Info gibt es hier: https://www.youtube.com/watch?v=pYC3AiunNLA&t=39s

PowerFox / Shelly3EM oder ähliches wird derzeit nicht unterstützt. Wenn jemand einen Adapter dafür schreibt, wäre das aber auch möglich.

Das Tasmota-Gerät stellt unter http://url-zu-deinem-smartmeter/cm?cmnd=status%208 dann die Werte maschinenlesbar bereit.

Ich habe bereits einen 2-Richtungs-Zähler, weshalb mein Zähler bereits einen Wert für Total_out (also wie viel ich eingespeist habe) bereit. Nicht alle modernen Messeinrichtungen liefern diesen Wert. Du kannst dann den virtuellen Einspeise-Zähler aus meinem Projekt verwenden. Der ist etwas ungenauer, aber zur Sichtüberprüfung (wie viel hab ich denn verschenkt) ausreichend.

VCW3D commented 1 year ago

@REIZFLUT 👍🏻 danke. Ja ich hatte Hichi auch ins Auge gefasst. Ich habe einen Logarex LK13BE Zähler. Der kann auch in zwei Richtungen zählen und tut das auch bereits. Dann werde ich mir mal den Hichi WiFi bestellen.

Garfs-Homassistant commented 1 year ago

Hier mal die Daten aus dem api:

{"inverters":[{"serial":"1141****","name":"HMAkku","order":0,"data_age":0,"poll_enabled":true,"reachable":true,"producing":true,"limit_relative":29.10000038,"limit_absolute":174.6,"AC":{"0":{"Power":{"v":180.5,"u":"W","d":1},"Voltage":{"v":234.6999969,"u":"V","d":1},"Current":{"v":0.769999981,"u":"A","d":2},"Power DC":{"v":189,"u":"W","d":1},"YieldDay":{"v":31640,"u":"Wh","d":0},"YieldTotal":{"v":409.9420166,"u":"kWh","d":3},"Frequency":{"v":49.95999908,"u":"Hz","d":2},"PowerFactor":{"v":1,"u":"","d":3},"ReactivePower":{"v":0.200000003,"u":"var","d":1},"Efficiency":{"v":95.5026474,"u":"%","d":3}}},"DC":{"0":{"name":{"u":"Akku1"},"Power":{"v":94.5,"u":"W","d":1},"Voltage":{"v":26.20000076,"u":"V","d":1},"Current":{"v":3.619999886,"u":"A","d":2},"YieldDay":{"v":15827,"u":"Wh","d":0},"YieldTotal":{"v":205.4080048,"u":"kWh","d":3},"Irradiation":{"v":42,"u":"%","d":3}},"1":{"name":{"u":"Akku2"},"Power":{"v":94.5,"u":"W","d":1},"Voltage":{"v":26.10000038,"u":"V","d":1},"Current":{"v":3.630000114,"u":"A","d":2},"YieldDay":{"v":15813,"u":"Wh","d":0},"YieldTotal":{"v":204.5339966,"u":"kWh","d":3},"Irradiation":{"v":42,"u":"%","d":3}}},"INV":{"0":{"Temperature":{"v":46.09999847,"u":"°C","d":1}}},"events":15}],"total":{"Power":{"v":180.5,"u":"W","d":1},"YieldDay":{"v":31640,"u":"Wh","d":0},"YieldTotal":{"v":409.9420166,"u":"kWh","d":3}},"hints":{"time_sync":false,"radio_problem":false,"default_password":false}}

Garfs-Homassistant commented 1 year ago

Die test liefert auch Daten

Versuche Verbindungsaufbau zu: http://192.168.2.115/api/livedata/status

Verbindung erfolgreich, Status 200.

Einstiegspunkt "inverters" gefunden.

Inverter mit der Seriennummer (serial) "1141****" gefunden.

Relevante Live Daten:

Relatives Limit: 29.10000038 Aktueller Output AC: 180.5 Aktuelle Temperatur: 45.79999924 Zählerstand Inverter (YieldTotal): 409.9500122 Inverter ist erreichbar: ja

———

abends ist nicht das Problem, inverter hängt an einem Akku.

———-

die Datei unter Sensoren habe ich auch getauscht. Ohne Erfolg.

REIZFLUT commented 1 year ago

Ok, das muss ich dann genauer anschauen. Dazu brauche ich ein Testgrät.

Ich sehe es nur grade nicht ein ohne Not einen neuen ESP zu kaufen. Wie sieht es aus? Jeder 5€ via Paypal gespendet? Funkmodule hab ich noch rumliegen. Dann bestelle ich mir nen ESP32 teste das und läuft. Ich will da nix verdienen... seht ihr ja... Entwicklung geschenkt...

VCW3D commented 1 year ago

Ist für mich okay. Zu dem haben wir ja nicht nur die Früchte Deiner Entwicklungsarbeit, sondern Du leistest ja noch Support.

REIZFLUT commented 1 year ago

Ich hab mir das jetzt nochmal angeschaut, war nochmal ein relativ banaler Fehler. Bitte Dateien cron.php, app/config.php, app/sensors/SmartMeter.php und app/sensors/OpenDTU.php austauschen (aus dem Branch withopendtu).

Dann sollten zumindest mal Zählwerte kommen. Ob die Anpassung der Leistung dann funktioniert, kann ich grade leider nicht verifizieren, da ich wie oben bereits erwähnt kein Testgerät habe. Aber mit etwas Glück tut er...

Garfs-Homassistant commented 1 year ago

So, mit den neuen Dateien funktionieren die Zählwerte richtig. Limit setzt er aber noch nicht.

Bei Aktion steht auch offline.

Ich kann gerne 2,50 spenden, wenn das hilft, mehr ist aktuell nicht drin.

REIZFLUT commented 1 year ago

Kurzes Update: der ESP32 ist angekommen, ich hoffe, dass ich am Wochenende dazu komme die OpenDTU zusammen zu bauen, und zu testen.