NEWS
Traking von Pylontech Batterien
-
@klassisch
Danke für diese Infos, eventuell werde ich dies noch mal probieren.Was ich gerade noch multisibcontrol gelesen habe.... Man kann HTML basierende Befehle ausführen.
Kam erst mit Version 1.6 mit.Damit kann ich den Shelly steuern.
http://192.168.178.xx/relay/0?turn=on
http://192.168.178.xx/relay/0?turn=OffDas ist so zu sagen der Shelly, der den WR bei Batt Leer abschaltet und ab 52% SOC wieder ins Rennen nimmt. Wenn das morgen klappt, dann komm ich erst Mal entspannt über den Winter.
Natürlich wäre eine iobroker Lösung noch besser.
-
@marco-3 kann dieses Programm in den html string auch den SoC stecken und kann man den String auch beeinflussen? Dann könnte man den Wert an simpleApi des ioBrokers schicken
-
Das müsste ich mal prüfen.
-
@marco-3
Scheinbar geht da was zu machen.Added functionality to send actual inverter/pylontech values with the URLs in Device control. This can be achieved by using one of the following placeholders in the URLs:
{INV_ERR} {PYL_ERR} {INV_MODE} {INV_SOC} {INV_LOAD_W} {INV_LOAD_%} {INV_GRID_W} {INV_PV_W} {INV_BATTERY_W} {INV_BATTERY_A} {PYLON_SOC} {PYLON_W} {PYLON_A} {PYLON_V} {PYLON_TEMP} {PYLON_REMAIN_AH} {PYLON_REMAIN_KWH}Jetzt muss ich mich noch deiner genannten simpleAPI Funktion einlesen.
-
@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 Umschreibung -
@klassisch
Danke für die fixe Erklärung, damit werd ich mich demnächst beschäftigen. Klingt einfach.... -
@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