Modul für Victron BMV600 / BMV602 / BMV700 / BMV702 / MPPT / Inverter

Begonnen von Askie, 25 Januar 2016, 11:19:14

Vorheriges Thema - Nächstes Thema

duke-f

@Askie
Ich habe erst jetzt gesehen, es gibt was neues - und ich habe seit langem noch die Version namens BMV600. Die mit kleinen Anpassungen, weil die Leerzeichen in den Readings störten.
Jetzt hatte ich mal spaßeshalber die neue Version eingespielt und festgestellt, dass sie nicht so läuft, wie ich gewohnt bin. Offensichtlich gibt es eine ganz neue Definition die Readings betreffend. Habe jetzt wieder die alte Version aktiviert und die neuen Readings gelöscht. Ich nutze ein MPPT 75/15. Gibt es irgend einen Vorteil für mich durch einen Umstieg, oder soll ich besser alles beim alten lassen, wenn es da funktioniert?
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Askie

Moin duke-f,
das musst du natürlich selbst entscheiden.
Gerade für den MPPT ist die neue Version interessant, da dieser unterstützt wird (mit Historie etc,).
Ausserdem ist es mit der neues Version möglich mehrere Geräte an einer FHEM-Instanz laufen zu lassen.
Bei mir werkeln derzeit ein MPPT75/15, ein Phönix Inverter und ein BMV700 an einer FHEM Installation herum.
Die Readings haben sich aber in der Tat ein wenig geändert, was im wesentlichen an Anpassungen an das VE.direct-Protokoll liegt.
In beschränktem Maße sind auch set-Funktionen implementiert (z.B. zum ein-/ausschalten eines Inverters oder zum Abrufender Historie beim MPPT)
VG..
3x FHEM, CUL(Schaltsteckdosen), Jeelink (8 *Temp.-/Hygro, Z-Wave (Thermostat, Fenster- und Multisensoren, 2 Dimmer Steckdosen, Schaltaktor(Lüfter)), 4 Squeezeboxen, FritzBox (Schaltsteckdose f. Kühlschranküberwachung, Heizungssteuerung),  Batteriemonitor (BMV600), MPPT75/15, Phönix Inverter ...

duke-f

Besten Dank,

ja, die Entscheidung liegt klar bei mir. Da hast Du recht. Für mich ist es aber so, dass ich auf weiteres bestimmt nur ein einziges Gerät betreibe. Weiter habe ich das innerhalb eines virtuellen Debian auf meinem NAS, da ich an der Position des Victron keinen direkten USB-Anschluss habe und diesen durch einen USB-WLAN-Server realisiere, für den es wiederum zwar Linux-Treiber gibt, dies aber leider nur für x86-Systeme. Also weder für den Cubie noch für einen Raspie. Hat jetzt aber wieder den Vorteil, dass ich auf diesem Mini-FHEM erst die Daten etwas ausmiste und mir 5-Minuten-Mittelwerte FHEM-intern berechne (in Analogie zu meinen anderen Energiezählern), und diese dann an das Haupt-FHEM per FHEM2FHEM übermittle.

So, war nun etwas ausführlich. Aber ich denke, es ist nun verständlich, dass aufgrund der Änderungen der Readings meine Zwischerechnungen entsprechend angepasst werden müssten, was ich wiederum nur dann machen möchte, wenn es sich für mich ein Vorteil ergibt. Set-Befehle sind für mich wahrscheinlich dauerhaft nicht von Bedeutung. Aber das Auslesen der Historie bietet doch einen Anreiz. Gerade jetzt hatte ich diesen USB-WLAN-Server einige Tage außer Betrieb nehmen müssen und es fehlt ein gutes Teil der Daten. Ist nicht wichtig, im Moment scheint eh fast keine Sonne. Aber wenn es die Möglichkeit gibt, die 30 Tage des internen Speichers doch noch zu bekommen in solchen Fällen, werde ich den Umstieg nochmal angehen.

Leider hatte ich beim ersten Versuch heute morgen aber das Gefühl, dass seltsamerweise zwar die neuen Readings alle schnall auftauchten, jedoch die Werte danach nicht aktualisiert wurden. Deshalb werde ich besser ein neues Gerät einfügen statt das alte BMV600 zu ändern.

Die beiden Attribute CBatt1 und Unominal gibt es nicht mehr, richtig?
Bin die Tage etwas gebunden - typisch Vorweihnachtszeit - werde aber von Erfolg/Mißerfolg berichten.

EDIT: Nach set StatusRequest läuft die kontinuierliche Aktualisierung. nun muss ich mich nur noch in die neuen Readings und Attribute einlesen. Vor der endgültigen Umstellung werde ich nur noch meine Funktionen anpassen müssen.
Ich danke auf jeden Fall für dieses sehr nützliche Modul!
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Askie

Das klingt doch gut...
Nein, die beiden Attribute gibt es nicht mehr - die machen auch keinen Sinn mehr...
Sehr gerne... und frohes Fest an ALLE!
3x FHEM, CUL(Schaltsteckdosen), Jeelink (8 *Temp.-/Hygro, Z-Wave (Thermostat, Fenster- und Multisensoren, 2 Dimmer Steckdosen, Schaltaktor(Lüfter)), 4 Squeezeboxen, FritzBox (Schaltsteckdose f. Kühlschranküberwachung, Heizungssteuerung),  Batteriemonitor (BMV600), MPPT75/15, Phönix Inverter ...

hanami

Zitat von: Askie am 13 Dezember 2018, 09:22:39
Moin duke-f,
das musst du natürlich selbst entscheiden.
Gerade für den MPPT ist die neue Version interessant, da dieser unterstützt wird (mit Historie etc,).
Ausserdem ist es mit der neues Version möglich mehrere Geräte an einer FHEM-Instanz laufen zu lassen.
Bei mir werkeln derzeit ein MPPT75/15, ein Phönix Inverter und ein BMV700 an einer FHEM Installation herum.
Die Readings haben sich aber in der Tat ein wenig geändert, was im wesentlichen an Anpassungen an das VE.direct-Protokoll liegt.
In beschränktem Maße sind auch set-Funktionen implementiert (z.B. zum ein-/ausschalten eines Inverters oder zum Abrufender Historie beim MPPT)
VG..
Moin Askie,

ich habe nun seit längerem auch Dein Modul mit einem Victron MPPT 100/20 im Einsatz und bin begeistert. Danke für die Arbeit.

Was ich jedoch vermisse, ist die angesprochene "Historien" Funktion.
Leider habe ich unter den set Befehlen nur ein set Status Request.
Wie komme ich an die Historie? Derzeit lasse ich alles in ein Log schreiben, ist natürlich nicht so toll.

Vielen Dank vorab.

TK67

@Askie

zunächst mal vielen Dank für das Modul.
Habe über ein USB Kabel den Victron SmartSolar MPPT Laderegler 100/50 am Raspi angeschlossen.
Ich plane jetzt mir den BMV-712 Smart zu holen. Brauche ich dann dazu ein weiteres USB Kabel oder ist es möglich die beiden Geräte über Bluetooth zu koppeln,
so das ich dann über ein Kabel die Daten von beiden Geräten bekomme ?

FHEM auf Raspberry Pi 3 Model B+

Askie

Moin zusammen...
@hanami: die history sollte eigentlich als reading auftauchen. Mehr habe ich leider bislang nicht einbauen können.

@TK67:  Koppeln über bt wäre zwar schön, aber das funktioniert leider nicht. Du benötigst ein 2. Kabel.
Allerdings ist es ausreichend z. B. Einen günstigen USB to rs232 Konverter zu kaufen und den mit der Schnittstelle des bmv zu verbinden... (muss also kein original Kabel sein...)
Oder falls noch frei kann auch direkt die Schnittstelle des raspi benutzt werden.
Btw: die Schnittstelle ist in der Regel 3,3v... Also drauf achten!

Grüße Askie
3x FHEM, CUL(Schaltsteckdosen), Jeelink (8 *Temp.-/Hygro, Z-Wave (Thermostat, Fenster- und Multisensoren, 2 Dimmer Steckdosen, Schaltaktor(Lüfter)), 4 Squeezeboxen, FritzBox (Schaltsteckdose f. Kühlschranküberwachung, Heizungssteuerung),  Batteriemonitor (BMV600), MPPT75/15, Phönix Inverter ...

hanami

@Askie, vielen Dank für Dein Feedback
ZitatAutor: Askie
« am: Gestern um 17:20:44 » Zitat einfügen
Moin zusammen...
@hanami: die history sollte eigentlich als reading auftauchen. Mehr habe ich leider bislang nicht einbauen können.
Nicht das wir hier aneinander vorbeireden. Mit History Funktion denke ich an die Victron typische 30 Tage History.
Oder meinst Du die Readings? Maximale_Leistung_gestern; Maximale_Leistung_heute; kWh_Ausbeute_gesamt; kWh_Ausbeute_gestern; kWh_Ausbeute_heute

Hier mal ein List des Reglers und der Readings:
defmod VE.MPPT.100_20 VEDirect /dev/ttyUSB0@19200
attr VE.MPPT.100_20 Darstellung_Ertrag Wh
attr VE.MPPT.100_20 berechneteWerte On
attr VE.MPPT.100_20 group Photovoltaik
attr VE.MPPT.100_20 icon measure_photovoltaic_inst
attr VE.MPPT.100_20 room KaWa,Serverroom
attr VE.MPPT.100_20 sortby 01

setstate VE.MPPT.100_20 disconnected
setstate VE.MPPT.100_20 2019-02-24 10:40:12 B_Leistung 3.93 W
setstate VE.MPPT.100_20 2019-02-24 10:40:12 B_LeistungLast 8.13 W
setstate VE.MPPT.100_20 2019-02-24 10:40:12 B_Wattstunden_entnommen -0.00 Wh
setstate VE.MPPT.100_20 2019-02-24 10:40:12 B_Wattstunden_geladen 0.24 Wh
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Betriebsart Bulk
setstate VE.MPPT.100_20 2019-02-24 10:40:12 BetriebsartValue 3
setstate VE.MPPT.100_20 2019-02-24 10:40:12 DaySequenceNumber 155
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Fehlermeldung kein Fehler
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Firmware 1.39
setstate VE.MPPT.100_20 2019-02-24 10:40:12 LastStrom_A 0.60 A
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Lastausgang eingeschaltet
setstate VE.MPPT.100_20 2019-02-24 10:40:12 LeistungPanel_W 13.00 W
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Maximale_Leistung_gestern 29.00 W
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Maximale_Leistung_heute 27.00 W
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Product_Name SmartSolar MPPT 100|20
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Seriennummer HQXXXXXX
setstate VE.MPPT.100_20 2019-02-24 10:40:12 SpannungPanel_V 19.41 V
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Spannung_V 13.55 V
setstate VE.MPPT.100_20 2019-02-24 10:40:12 Strom_A 0.29 A
setstate VE.MPPT.100_20 2019-02-24 10:40:12 kWh_Ausbeute_gesamt 4780.00 Wh
setstate VE.MPPT.100_20 2019-02-24 10:40:12 kWh_Ausbeute_gestern 80.00 Wh
setstate VE.MPPT.100_20 2019-02-24 10:40:12 kWh_Ausbeute_heute 40.00 Wh
setstate VE.MPPT.100_20 2019-03-05 14:17:15 state disconnected



Beste Grüße
hanami

Askie

Halllo Hanami,

wenn du einen get Befehl abgibst ("get VE.MPPT.100_20 History_data All") dann sollten  (log-level 4)
die History werte als Reading "History_*datum*Werte*" erscheinen. In dem von Dir bereitgestellten Auszug fehlen diese Reading allerdings.


Gruß Askie
3x FHEM, CUL(Schaltsteckdosen), Jeelink (8 *Temp.-/Hygro, Z-Wave (Thermostat, Fenster- und Multisensoren, 2 Dimmer Steckdosen, Schaltaktor(Lüfter)), 4 Squeezeboxen, FritzBox (Schaltsteckdose f. Kühlschranküberwachung, Heizungssteuerung),  Batteriemonitor (BMV600), MPPT75/15, Phönix Inverter ...

Matthias76

#39
Wieso muss denn ein BMV712 über ein serielles Datenkabel (ggf. adaptiert auf USB) für die Verbindung mit einem FHEM-Server verwendet werden?
Victron wirbt doch produktreihen-intern damit, dass dank ,,Smart" (Bluetooth) die VE.Bus-Anschlüsse frei bleiben und so nun x Geräte vollständig miteinander sprechen können, wo vorher dann bei 2 schluss war, weil Buchsen=belegt.
Und da Bluetooth ja eigentlich nur anders verpackte serielle Kommunikation ist?!?

Also im Fall FHEM mit BMV würde ich annehmen, ein Bluetooth-Dongle am Server, gekoppelt mit dem BMV müsste die gleichen Möglichkeiten bieten, wie die direkte Verkabelung.
Ich meine, Victron bietet auch SDKs.

Oder geht das nicht, weil via BT was fehlt, doch anders läuft usw. ?

---

Nachtrag:
Ich werde die Verbindung nun halt doch via RS232/UART machen.
Softwaresweitig habe ich das Modul schon mal in FHEM eingebaut,
aber nach dem DEFINE ...VEDirect.pm ... habe ich immer Fehler-Log-Einträge.
Ist das normal, wenn das Modul integriert/aktiviert ist, aber kein Kabel/Gerät dran steckt?
Das Skript kann ja nicht voller Fehler sein, wenn es von euch allen erfolgreich eingesetzt wird?!?

2019.04.01 23:07:52 0: syntax error at ./FHEM/00_VEDirect.pm line 506, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 515, near "%ARtext{"
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 518.
Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 520.
Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 520.
syntax error at ./FHEM/00_VEDirect.pm line 520, near "%ARtext{"
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 520.
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 521.
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 521.
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 523.
Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 525.
Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 525.
syntax error at ./FHEM/00_VEDirect.pm line 525, near "%ARtext{"
./FHEM/00_VEDirect.pm has too many errors.

Matthias76

Inzwischen habe ich Daten am seriellen UART0 meines Cubietrucks anliegen, aber das ändert nichts daran...

Hat denn keiner eine Idee, warum das Modul so rein gar nicht (mehr) funktioniert?
Also zumindest das Hinzufügen in FHEM (Web) mittels der Zeile:
"define BMV VEDirect /dev/ttyS0@19200" gelingt nicht!
Es folgt prompt diese Meldung in FHEM:
"Cannot load module VEDirect"

Im Log dann:
2019.04.06 01:00:06 0: syntax error at ./FHEM/00_VEDirect.pm line 506, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 515, near "%ARtext{"
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 518.
Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 520.
Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 520.
syntax error at ./FHEM/00_VEDirect.pm line 520, near "%ARtext{"
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 520.
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 521.
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 521.
Global symbol "$AR" requires explicit package name at ./FHEM/00_VEDirect.pm line 523.
Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 525.
Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 525.
syntax error at ./FHEM/00_VEDirect.pm line 525, near "%ARtext{"
./FHEM/00_VEDirect.pm has too many errors[/quote]


Mittels "sudo cu -s 19200 -l /dev/ttyS0" bekomme ich diese Infos:
Zitat
H1      -59840
H2      -29474
H3      0
H4      1
H5      0
H6      -394132
H7      13001
H8      14234
H9      33523
H10     7
H11     0
H12     0
H15     0
H16     0
H17     5
PID     0xA381
V       13038
T       11
I       -2489
P       -32
CE      -29474
SOC     824
TTG     1150
Alarm   OFF
Relay   OFF
AR      0
BMV     712 Smart
FW      0401
Checksum

duke-f

Scheint doch so zu sein, dass auf Linux-Ebene das Modul schon da ist, aber nicht zu FHEM durch kommt. Das erinnert mich zumindest ansatzweise an mein Systemverhalten: Ich habe den Victron ja über einen USB-WLAN-Konverter angebunden, der gelegentlich mal eine Trennung für mehr oder weniger kurze Zeit hat, woher auch immer. Aber nach jeder Trennung und nach jedem Neustart muss ich zu allererst auf Linuxebene die Daten einmal abrufen, dann kommten sie anschließend auch bei FHEM an. Aber ich kann Dir jetzt nicht sagen, ob ich dann genau Deine Meldung habe.

Daher habe ich mir folgendes DOIF angelegt:

defmod DI_VICTRON_reopen DOIF ([VICTRON] eq "opened")({system ("/opt/fhem/restart_watchdog_s")})


mit dem zugehörigen Skript:

#!/bin/bash
sleep 10
/opt/fhem/PV-SysReader -i /dev/Victron_DC -d mppt
sleep 10
/opt/fhem/PV-SysReader -i /dev/Victron_DC -d mppt
date >> /var/log/watchdog_s


Entsprechendes wird beim Neustart auch per Cronjob aufgerufen. Das ist wegen dem erwähnten Konverter bei mir dann noch etwas umfangreicher.
Allerdings nutze ich nach wie vor das Vorgänger-Modul BMV600. Das läuft bei mir und liefert mir auch alles, was ich brauche. Wollte mal testweise umsteigen, hatte dann aber erst noch Probleme dabei, dann mit dem Konverter und bin im Moment froh, dass es überhaupt wieder läuft.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Matthias76

#42
War das jetzt auf meine Frage bzw. Problematik die Antwort?
Weil klar, ich habe die Modul-Datei in das entsprechende Verzeichnis FHEM reinkopiert, deshalb ist sie (1x) auch da.
Nun will ich es in FHEM benutzen und das Perl-Script wird von FHEM verwendet, bricht es dann aber ab, weil zu viele Fehler im Programm sind?!? Also wie man sieht, kommen die Logeinträge mit Verweis auf Fehler im Perl-Modul schon beim nötigen DEFINE setzen (Versuch) des VEDirekt-Moduls, wobei es auch gleich deaktiviert wird.
Leider bin ich kein Programmierer. Mir fehlt es an Erfahrungen mit Perl u.ä., da liegen meine Stärken in anderen IT-Sektoren.  ;) 

duke-f

War halt ein Ansatz, mit dem ich mir beholfen habe. Wenn Du ein eine "mundgerechte" Lösung suchst, muss ich mich wieder ausblenden, da ich auch nicht so ein Experte bin. Meine Stärken liegen nicht mal im gesamten IT-Bereich sondern wo ganz anders.

Bestimmt gibt es da andere, die da tiefer drin stecken. Wenn durch mein Post nun das Thema auch nur etwas gepuscht wurde und damit Aufmerksamkeit geweckt wird, ist Dir ja vielleicht schon damit geholfen. ;)
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Matthias76

Hey, ja dann danke für den Push.
Ich versuche mich als "0<ich<Perl-Anfänger" eben gerade an der Analyse, was da schief läuft.
Gehe ich strikt nach "Google-Art" vor, so sind im 00_VEDirekt.pm einige Variabeln nicht wie nötig mit "my" deklariert worden und ob sinnhaft oder nicht, habe ich diese mal am Anfang mit Nichts "" deklariert:
my %attr = ""; #Matthias-K-AddIn
my $readingFnAttributes = ""; #Matthias-K-AddIn
my %ARtext = ""; #Matthias-K-AddIn
my $ARtext = ""; #Matthias-K-AddIn
my $AR_text = ""; #Matthias-K-AddIn
my $AR = ""; #Matthias-K-AddIn

Dadurch fielen schon mal alle Meldungen in der Art "Global symbol "$AR_text" requires explicit package name at ./FHEM/00_VEDirect.pm line 531." weg:
Zitat2019.04.06 13:57:34 0: syntax error at ./FHEM/00_VEDirect.pm line 513, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 522, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 527, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 532, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 537, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 542, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 547, near "%ARtext{"
syntax error at ./FHEM/00_VEDirect.pm line 549, near "}"
syntax error at ./FHEM/00_VEDirect.pm line 554, near "}"
syntax error at ./FHEM/00_VEDirect.pm line 560, near "}"
./FHEM/00_VEDirect.pm has too many errors.

Es ist anscheinend immer der gleiche Syntaxfehler im Perl-Programm, an wiederkehrenden Stellen.

Dabei frage ich mich nur, wie das Modul jemals bei irgendwem funktioniert haben konnte.
Oder anders - doch, klar weiß ich das - Linux lebt, Perl lebt, die Comm. lebt und täglich ändern sich so die Basics.  :P ;D

Naja, ich habe immer noch "Ubuntu 14.04 LTS" auf dem Cubietruck.
Dieses jedoch (wie auch FHEM) tagesaktuell durchgepatcht.

Perl:
This is perl 5, version 18, subversion 2 (v5.18.2) built for arm-linux-gnueabihf-thread-multi-64int
(with 41 registered patches)