NEWS
Traking von Pylontech Batterien
-
@klassisch said in Traking von Pylontech Batterien:
@marco-3 https://github.com/ioBroker/ioBroker.simple-api
Adapter installieren.
http://ipaddress:8087/help
bringt dann die Erklärung
Einen Wert übertragen
"set": "http://ipaddress:8087/set/stateID?value=1&prettyPrint",
Mehrere Werte
"setBulk": "http://ipaddress:8087/setBulk?stateID1=0.7&stateID2=0&prettyPrint"Anführungszeichen weg und &prettyPrint kann man auch weglassen.
stateID ist die Adresse in den ioBroker Objekten
Also Adapter einrichten, iregendwo, zB. unter 0_userdata .. einen Datenpunkt anlegen und dann mal probehalber so eine Zeile manuell zusammenstellen und per Browserzeile an den ioBroker schicken.
Dann muß die Zahl im Datenpunkt sein.
Erst mal keine Blanks und Sonderzeichen in den Namen verwenden, sonst braucht es UTF8 UmschreibungEs geht! Werte landen im iObroker
Kleine Zusammenfassung:
*Ich benutze eine Pylontech US3000C mit RS485 Auslesung über ein Windows 10 Rechner.
*iObroker in VM Debian laufend --> dort simple API unter den Adaptern eingerichtet und die Datenpunkte unter "Objekte" --> 0_userdata..... als stateSoftware unter Windows. http://www.multisibcontrol.net/ Version 1.6
--> unter "Device Control"
Da es keinen direkten Punkt gibt, um die Befehlssendung zu initiieren, habe ich unter Conditions den "Mode" --> Grid genommen und die Übermittlung aller 5min eingestellt.Diesen Befehl nutze ich zur Zeit, Fett gedruckte Zeichen, sind für mein System zutreffende Anpassungen.
http://192.168.178.83:8087/set/Aktueller_SOC?value={PYLON_SOC}
Ein Problem besteht noch.
Der übertragene Wert wird mit Komma und % übertragen, kann oder muss man dies im ioBroker zurecht filtern, damit es als Auslöser für andere Sachen im iobroker genutzt werden kann? Bsp.: 51,9% kommen im iobroker an. -
@marco-3 klasse, daß es klappt! Wo trägst Du den Sendestring in dem Multisibcontrol ein?
Wahrscheinlich wird da einfach ASCII übertragen, incl. Einheit.
Wirst Du mit JS oder Blockly auseinander frickeln und in einen neuen Datenwert als Zahl richtig reinschreiben müssen.
Stehen da irgendwelche geschweifte Klammern {}? -
http://192.168.178.83:8087/set/Aktueller_SOC?value={PYLON_SOC}
ja geschweifte Klammern.
ich dachte man könnte eventuell bei den ankommenden Daten im iobroker gleich eine Art Filter setzen können....
damit das % wegfällt. -
@marco-3 Mit den geschweiften Klammern meinte ich im Eingangsfeld des ioBrokers. Dann hätte das ein JSON sein können.
Mit dem Wegfall des % ist es nicht getan. Dann ist es immer noch ein String.
Und dann gibt es noch ein Komma?? statt des Dezimalpunkts. Was aber sehr seltsam ist. Gefühlt die ganze Welt verwendet den Dezimalpunkt. UNd ich habe meine Systeme auch so eingestellt. -
@marco-3 sagte in Traking von Pylontech Batterien:
ich dachte man könnte eventuell bei den ankommenden Daten im iobroker gleich eine Art Filter setzen können....
damit das % wegfällt.Vielleicht, so genau kenne ich mich damit nicht aus. Habe jedenfalls noch nichts derartiges gefunden. Notfalls halt händisch, in etwa so.
var inputString ='63,5%'; var outputNumber = 0.0; var helperString = ''; helperString = inputString.replace(',','.'); outputNumber = parseFloat(helperString); console.log('outputNumber: ' + outputNumber);
Sicher nicht elegant, geht aber.
Im Log steht dann bei mir(10680) script.js.tests.testStringReplace: outputNumber: 63.5
Scheint also zu funktionieren
-
Aktuell bekomme ich es hin, daß alle Werte mit einer Zeile einflattern.
http://192.168.178.83:8087/setBulk/PYLON_A?PYLON_A={PYLON_A}&PYLON_SOC={PYLON_SOC}&PYLON_REMAIN_AH={PYLON_REMAIN_AH}&PYLON_REMAIN_KWH={PYLON_REMAIN_KWH}&PYLON_TEMP={PYLON_TEMP}&PYLON_V={PYLON_V}&PYLON_W={PYLON_W} -
@klassisch
Meinst du, daß man diese gleich bei den Objektdaten bearbeiten lassen kann? -
@marco-3 Ich bin auch kein JS Spezialist und mache da nur, was ich brauche und fresse mich entsprechend durch, ohne das je richtig durchgeackert zu haben.
Aber ich denke, daß man das bei den Objekten nicht einstellen kann.
Dort wird festgelegt, welche Art von Variable drin zu stehen hat. Wenn eine andere Art kommt gibt es eine Warnung im log und der Datentyp wird verändert, soweit ich weiß.Deshalb ein kleines Progrämmchen oder Blockly(was ich gar nicht kenne), welches bei einem neuen Datum getriggert wird, die Daten einlist, konvertiert und woanders wieder hinschreibt.
Aber vielleicht kennt jemand einen besseren Weg? -
@marco-3 Ja, ganau, setBulk ist dann der nächste Schritt. so liefern einiger meiner selbstgefrickelten ESPs die Daten ein.
Klasse, daß das von diesem Progrämmchen unterstützt wird! -
Problem gelöst --> Alias Manager ist notwendig
Endlich kann ich die US3000C Werte im iobroker verarbeiten! Danke an Alle!!
@marco-3 said in Zahlenwerte mit Einheiten in Werte mit Punkt umwandeln:
@paul53 said in Zahlenwerte mit Einheiten in Werte mit Punkt umwandeln:
@marco-3 sagte: Wo muss ich diese Zeile mit eintragen?
Im Alias(-Manager)
Danke es Funktioniert.
Alias Manager installieren und dann die neuen Daten im Alias Ordner suchen. Klasse! Natürlich alle zu verändernen Werte vorher mit deiner Zeile parsen....
DANKE DANKE DANKEGelöst, mal sehen ob ich das hier irgend wo markieren kann.
-
@marco-3 Vielen Dank für die RM. Cool, daß der Alias-Manager das kann. Wußte ich auch nocht nicht.
-
@klassisch sagte in Traking von Pylontech Batterien:
@marco-3 Vielen Dank für die RM. Cool, daß der Alias-Manager das kann. Wußte ich auch nocht nicht.
Da geht`s dir wie mir
unser guter Paul wusste es mal wieder -
@homoran sagte in Traking von Pylontech Batterien:
unser guter Paul wusste es mal wieder
Tja, wenn wir den nicht hätten..... Ein komplexes System ist nur so gut wie das zugehörige Forum und das nur so gut wie die User.
-
@marco-3
Hi,
hat jemand schon Kontakt mit SUN2000 aufnehmen können?
Hab bis jetzt nur ein WEMOS D1 mit Herzschlag bespielt der SOYO seine Daten anzeigen/weiterschicken kann... hab aber noch nicht getestet da der Soyosource noch nicht da. Den Sun2000 hab ich gerade bekommen und suche nach Soft...jarek
-
@marco-3
hi,
ich habe meine beiden US2000 über RS-485 am Raspberry Pi - am USB-RS485 Adapter.
über Python lese ich ein paar werte aus und sende sie an meinen MQTT Server...
heute hab ich ein plugin für Wireshark begonnen, damit kann man auf RS-485 mitschneiden (am Raspberry mit einem 2. Adapter)
=> hochgeladen auf https://github.com/Tomcat42/pylontech-python
Dort ist auch eine Protokollbeschreibung zu von Pylontech zu finden.
Ggf. ist auch das projekt hier interessant: https://github.com/Frankkkkk/python-pylontech
das habe ich nach dem hochladen meines Codes gefunden - und verwende ich, bis mein Projekt noch etwas mehr funktionsumfang hat ist.
Daniel Schramm arbeitet an einer Anbindung an HA.. - https://github.com/danielschramm/pylontech-python/tree/decoder
hoffe mal, jemand kann davon etwas gebrauchen... -
@marco-3
Ich heb das nochmal nach oben.Frage:
Kannstdumir so ein ding bauen?
Meine augen sind inzwischen so kaputt, das löten gar nicht mehr geht.
Wichtig ist für mich der ladezustand der usc3000c um nötigenfalls das netz über e io-broker automatisch zuschalten zu können.
Und nein, ich will das nicht umsonst.
mqtt-daten dann per pn.
Danke schon mal -
Hi leute,
bin jetzt über das Thema gestolpert. habe letztes Jahr die Anbindung per RS485 eines US2000 in NodeRed nachgebaut.
Ich muss mal suchen wo ich die Daten noch habe, aber im Endeffekt war es relativ einfach.
Ansprechen per RS485 -> Interpretieren -> Ausgabe per MQTT oder direkt in IOBroker.Was ich aktuell am Tisch habe ist die Umsetzung von Pylontech auf Modbus RTU/TCP damit der Pylontech auch als Modbus Slave mit anderen Slaves an einer Leitung hängen kann.
Gruß
Billy