Hallo,
brauche ich zum auslesen mit einen PZEM auch einen Shunt ?
Grüße
Hallo,
brauche ich zum auslesen mit einen PZEM auch einen Shunt ?
Grüße
Ich denke mal schon. Aber wie gesagt, DC-seitig kenne ich mich nicht so aus, da ist das PVF sicher die bessere Adresse für solche Fragen. Viel Erfolg!
In deinem Screenshot sieht man die Information "Lade" und "Entlade".
Wäre das die Information ob er gerade ge- oder entladen wird? Oder wenn beide auf 0 sind passiert nichts?
Und ich vermisse diese Angaben im Skript aus dem ersten Post.
Danke!
Hallo BananaJoeX
Lade 1 : Laderrelais ist an
Lade 0: Laderrelais ist aus
Selbiges dann auch beim Entladerelais...
Die Steuerung der Relais ist erst im Beitrag 2 im Script ergänzt worden, oder welche Angaben meinst Du?
Ok, den 2. Beitrag hätte ich genauer lesen sollen, danke.
Guten Morgen opferwurst,
erstmal vielen vielen Dank für diesen "recht" einfachen Weg den Akku mit Tasmota auszulesen.
Mein Akku sagt zwar er wär Online aber zu meinem Bedauern werden mir keine Werte angezeigt.
Weißt du an was das liegen könnte?
PS:hab die Tasmotaversion 12.4.0.2 wie beschrieben. DIP-Schalter sind alle auf 0.
Beste Grüße Lexton
Hallo Lexton90
Kannst Du einen Fehler in der Verkabelung ausschliessen? Bei mir war dies immer der Fehler für keine Daten. Vielleicht mal RX un TX am Pylontech/RS232 tauschen.
Weiterhin sind im Script noch diverse print-Befehle aus kommentiert, diese eventuell von oben nach unten mal probeweise aus kommentieren und in der Konsole schauen was dann ausgegeben wird.
Gruss ow
Software:
Die Firmware muss mit dem Development branch von tasmota kompiliert werden! Ich denke, die meisten "Power-User" werden wissen was zu tun ist.
Ich bekomme das Projekt über die fertige Bin mit dem Einfügen nicht zum Erfolg.
Das Tasmota mit dem Script EInbinden scheint alles normal. Aber der RX Eingang am ESP8266-Board (Wemos D1 Mini) scheint nicht als wenn er als Eingang arbeitet? Bei mir ist auf RX am WEMOS dauerhaft 3.3 Volt So als wäre es ein Ausgang?
Welchen Modul Type muss ich den im Tasmota einstellen, das Auslesen des Pylontech US 5000 über die RX funktioniert?
Oder geht das mit den US 5000 noch nicht?
Hallo Schraubi
Der RX-Pin wird im Script definiert, musst also in der WebConfig nichts einstellen (None).
Welches bin und welches Script hast Du benutzt?
Und ich habe hier nur den 2000er. Ob der 5000er die gleiche seriellen Daten bereitstellt kann ich nicht sagen.
Ich nutze die Firmware aus Beitrag #1.
-> fimware (12.4.0.2) aus #1
-> Script. >UPDATE 27.02.2022 - Fix Stromanzeige aus #1
-> Hardware: ESP 8266 (D1 MINI) und den D1 Mini Pro probiert.
-> Pins siehe Bild unten. Also die wo RX und TX dran steht wurden benutzt.
-> Code
>D 64
;variablen für berechnungen
res=0
rstr=""
label=""
lraw=""
val=0
volt=0
curr=0
temp=0
coul=0
tag=0
;ggf. anpassen:
ladepin=4 ;gpio pin für Lade-Relais
entladepin=5 ;gpio pin für Entlade-Relais
socmax=98 ; maximale Ladeschwelle
socmin=20 ; minimale Entladeschwelle
>B
res=0
res=so(3 1 115200 8N1 1024)
;print open %res%
spinm(ladepin O) ; set GPIO to mode output
spin(ladepin 0) ; Switch off relais on boot
spinm(entladepin O) ; set GPIO to mode output
spin(entladepin 0) ; Switch off relais on boot
>F
res=sa()
if res>0
then
;print res=%res%
rstr=sr(10)
rstr=sb(rstr 1 sl(rstr))
;print read %rstr%
label=sb(rstr 0 7)
lraw=sb(rstr 0 10)
val=st(rstr : 2)
switch label
case "Voltage"
volt=val/1000
case "Current"
if lraw=="Current "
then
curr=val
endif
case "Tempera"
temp=val/1000
case "Coulomb"
coul=val
ends
endif
>S
if upsecs%5==0
then
res=sw("pwr 1\n")
;print write cmd
endif
;print %volt% %curr% %temp% %coul%
;tagberechnung
if time>sunrise
and time<sunset
then
tag=1
else
tag=0
endif
;ladebedingung
if tag==1
and
coul<socmax
then
spin(ladepin 1)
spin(entladepin 0)
else
spin(ladepin 0)
endif
;entladebedingung
if tag!=1
and
coul>socmin
then
spin(entladepin 1)
spin(ladepin 0)
else
spin(entladepin 0)
endif
;print lade %0pin[ladepin]%
;print entlade %0pin[entladepin]%
>T
; sende mqqt-Einzeltopis zusätzlich/anstatt json wie unter ">J)
=>publish iot/%topic%/Voltage %4volt%
=>publish iot/%topic%/Current %0curr%
=>publish iot/%topic%/Coulomb %0coul%
=>publish iot/%topic%/Tag %0tag%
>W
Spannung{m}%4volt% V
Strom{m}%0curr% mA
Temperatur{m}%3temp% C
Ladung{m}%0coul% %%
Lade {m}%0pin[ladepin]%
Entlade {m}%0pin[entladepin]%
>J
,"pylon":{"Voltage":%4volt%,"Current":%0curr%,"Coulomb":%0coul%,"Temperature":%3temp%}
Ich hab noch mal auf Github geschaut.
Aus Beitrag #1 wurde das ältere Projekt für das Tasmota benutzt.
alt: aus Beitrag Tasmota #1:
neuer hier:
Ich bin nun nicht so fit mit dem Integrieren von Libs ins Tasmota.
Es müsste nur jemand die neuere Lib vom Github da in Tasmota 12 rein machen.
Dann würden die Pylontech US 5000 auch gehen.
Ich denke, libs müssen da keine "rein".
Du kannst mal von oben nach unten im Script die print Befehle auskommentieren (das Semikolon davor löschen) und die Ausgabe(n) mal posten. Da sieht man eventuell ob der Pylontech antwortet. Bitte aber vorher bitte genau die Verkabelung durchgehen, da liegt oftmals der Fehler.
Ja, Lustig es geht nun!
Meine 3x Pylontech US 5000 funktionieren mit dem aus Beitrag #1 Tasmota V12.4.x nun doch
Der Fehler war kein Verdrahtungsfehler von mir mit RX TX oder so. Und die Tasmota ist auch OK.
An dem ganzen Problem ist nur der verwendete, bei Ebay gekaufte, RS232toTTL (MAX3232) Converter schuld.
Bild des Problem Converters:
Hab in meiner Bastel - Wühlkiste noch einen 15 Jahre alten Diskret aufgebauten MAX3232 Converter gefunden,
mit dem das ganze sofort ging.
Freut mich das es funktioniert! Ich hatte im 1.Betrag ja schon geschrieben, dass die "billigen" RS232 oft einen Layoutfehler haben und deshalb nicht funktionieren.
Und gut zu wissen, dass sich auch der 5000er auslesen lässt.
Danke Opferwurst, noch mal für deine Unterstützung
Möchte gar nicht erst wissen wieviel der faulen China MAX3232 hier bereits in DE die Leute zur Verzweiflung gebracht haben.
Von den Auslesewerten aus dem Pylontech per Tasmota benötige ich eigentlich nur den Füllstand der Akkus.
Diesen möchte ich gerne per HTTP an meinen Volkszäher Rasp in die Datenbank schreiben.
Bisher mache ich das für andere Sensoren mit ESPEASY und damit dem HTTP String: http://middleware.php/data/%valname%.json?operation=add&value=%value%
Kann ich den Tasmota irgendwie dazu bewegen den Füllstand per HTTP in den Volkszähler zu senden?
EDIT: Habs hinbekommen das die Daten aus Tasmota auch in der Volkszähler Datenbank per http ankommen.
Im Script unten folgendes ergänzt:
ws="WebSend [IP vom VZ]"
=>%ws% /http://middleware.php/data/%valname%.json?operation=add&value=%0coul%
Hat jemand das System am laufen mit dem MAX3232 und einen Poylontech 5000 ?
bekommen keine Daten.
habe den Memos geflasht der WEMOS läuft aber leider bekomme ich keine Daten.
Leitungen geprüft finde leider keinen Fehler.
Fehler gefunden RX und TX war vertauscht
Hat jemand die werte auch schon mal versucht übers Display auszugeben?
Hi,
vielleicht hat jemand noch eine Idee,
die ausgelesene Werte aus dem Pylontech US für die Temperatur haben mindestens 2 eher 3 Grad Abweichung.
Daher war ich auf die Idee gekommen an das Gehäuse der Pylontech einen GPIO1 am ESP 8266 einen DS18X20 zu erweitern.
Und damit die Gehäusetemperatur zu messen.
Messen tut der nun damit bestens.
Aber nun hätte ich gerne den Temperaturwert per WEBsend noch gerne in der Datenbank.
Hat jemand eine Idee wie ein entsprechender Befehl im Script aussehen könnte, damit ich den Wert des DS18X20 per WEBsend versenden kann?
Wenn ich das Webinterface des Tasmota aufrufe wird der WERT vom DS18X20 sogar schon angezeigt.
Es fehlt nur noch der WEBsend zum Controller Datenbank.
Mein verwendetes Script im Tasmota, ist das aus dem Thread #30.
Hallo und vielen Dank für das tolle Projekt.
Nach leichten Starschwierigkeiten (Verkabelungsfehler) hat`s auch bei mir mit der .bin und Skript geklappt. DANKESCHÖN!!!
Eine kurze Frage ... ich nutze (2) Pylontech US2000C in Verbinung mit dem Aufbau+BIN aus #1. Von Tasmota und der Programmierung hab ich leider wenig Ahnung. Kann mir jmd sagen, ob es in Tasmota und dieser Kombination auch irgendwie möglich ist, die Zellspannungen anzeigen zu lassen, bzw notfalls aus Platzgründen einfach die niedrigste, höchste Zelle und die größte Differenz dazwischen?... Und falls ja, wie der Befehl dazu aussehen müsste und wo ich ihn im Skript ergänzt werden muss. (wie im Beispielbild in rot eingefügt)
Danke.