VBus in fhem

Begonnen von sweetie-pie, 15 Januar 2013, 12:27:34

Vorheriges Thema - Nächstes Thema

flashman

Hallo,

ich benötige mal hilfe bitte,

-fhem auf Raspberry pi
-Solarregler Sonnenkraft SKSC2
-Lanadapter vbus Resol

ich habe die module 21_VBUSDEV und 20_VBUSLAN aus dem Thread ausprobiert leider werden bei mir keine Werte übertragen oder angezeigt.

die cfg
define vbus VBUSLAN 192.168.2.45:7053
attr vbus room SOLAR
#attr vbus verbose 4

define solarregler VBUSDEV 4211
attr solarregler IODev vbus
attr solarregler model SKSC1/2
attr solarregler room SOLAR
#attr solarregler verbose 4
define FileLog_solarregler FileLog ./log/solarregler-%Y.log solarregler
attr FileLog_solarregler logtype text
attr FileLog_solarregler room SOLAR
#attr FileLog_solarregler verbose 5
ich habe das mit define erzeugt und es wird auch alles angelegt in der cfg.
in der Anzeige dann :
Clients :VBUSDEV:
DEF  192.168.2.45:7053
DeviceName 192.168.2.45:7053
FD 12
NAME vbus
NR 39
PARTIAL aa1000134210000109003a00110200320c023100043c00000000007f74021701056c1c030f02044b00000000007f
RAWMSG aa15001342100001077d0108000000000000020a00003a001102b4010a00010b000000000000
STATE opened
TYPE VBUSLAN
vbus_MSGCNT 769
vbus_TIME 2015-03-10 21:30:21

die VBUSDEV ist die im Anhang
wo ist mein Problem?

Danke



flashman

Hallo, kurzes Update!
im Resolservicecenter hab ich gesehen das mein Regler auf 0x4213 steht.
nach dem ändern der VBUSDEV.pm für mein Regler 4213 werden jetzt werte angezeigt allerdings im wechsel falsche und richtige werte.
Ich denke ich hab das probl. was weiter vorn auch jemand hatte allerdings weis ich nicht was man wo ändert.
2. Problem beim start von fhem wird im log ein fehler angezeigt.
PERL WARNING: substr outside of string at ./FHEM/21_VBUSDEV.pm line 165.
PERL WARNING: Use of uninitialized value $val in hex at ./FHEM/21_VBUSDEV.pm line 176.
könnte mir bitte jemand helfen bin nicht mit Perl bewandert. im Anhang meine files 20_VBUSLAN und 21_VBUSDEV

chris

Brun

Hallo Chris,

Es gibt mehrere Arten von Messeges von deinen vbus device. Sogenannte Broadcast und Messeges an ein anderes device. Was in den broadcasts alles so drin steht kann ich dir nicht sagen. Du brauchst also die anderen Messeges. Da sind dann deine Werte enthalten.

Weiter vorne hatte ich auch schon mal eine vbusdev gepostet wo die broadcasts rausgefiltert werden. Schau dir die mal an.


Gruß Brun

flashman

Hallo,

ja ich hab es hinbekommen es werden alle werte angezeigt. Das mit der Anzeige der Falschen werte hab ich gelesen ,aber als Dachklemptner wäre eine genaue Beschreibung hilfreich gewesen wo man was ändert.
Danke für die hilfe.

Brun

Hallo Chris,

leider gibt es inzwischen hier im Thread mehrere Versionen vom VBUS Modul. So ist es recht schwierig genau sagen zu können wo genau was geändert werden muss.
Scheinbar läuft der VBus auch bei den anderen, so das hier nur noch wenige rein schauen. Wenn du genau sagst was für Probleme du hast, dann kann ich versuchen mit meinen bescheidenen Perl Kentnissen weiter zu helfen.


Gruß Brun

afreof

Hallo

Vielen Dank an alle, die bis jetzt an der VBUS-Unterstützung gearbeitet haben.

Ich denke auch, dass es langsam zu viele Code-Varianten gibt und dass der Thread langsam eine Länge erreicht hat, die es für einen Neueinsteiger (wie mich vor zwei Wochen) komplizierter als nötig macht. Deshalb habe ich mal einen Versuch gestartet um etwas Ordnung in die Sache zu bringen. Unter https://github.com/afreof/fhem-mirror/tree/vbus gibt es ein Repository, das den aktuellen Stand von FHEM enthält. Zusätzlich gibt es einen branch mit dem Namen vbus. Der branch sollte eine Zusammenfassung aller Beiträge dieses Forums enthalten. Die beiden Dateien sind hier:
https://github.com/afreof/fhem-mirror/blob/vbus/fhem/FHEM/19_VBUSIF.pm
https://github.com/afreof/fhem-mirror/blob/vbus/fhem/FHEM/20_VBUSDEV.pm
Mit dieser Version sollte folgendes möglich sein:

  • Verbindung mit dem Resol LAN Adapter (noch nicht getestet, am Code wurde aber nichts geändert)
  • Verbindung mit einem seriellen Adapter (getestet mit home brewed Adapter gemäss Schema von Resol)

Diese Konfiguration läuft bei mir soweit gut:

define vbusif VBUSIF /dev/ttyUSB0@9600
attr vbusif room Solaranlage
define solar VBUSDEV 7421
attr solar IODev vbusif
attr solar event-min-interval .*:10
attr solar model DeltaSol_BX
attr solar room Solaranlage
define FileLog_solar FileLog ./var/log/fhem/solar-%Y.log solar:.*
attr FileLog_solar logtype text
attr FileLog_solar room Solaranlage


Anstellen der ersten Zeile sollte aber auch sowas funktionieren:

define vbusif VBUSIF 192.168.1.69:7053


Bei der Inbetriebnahme habe ich noch ein Problem festgestellt. Meine Solaranlage sendet abwechlungsweise zwei verschiedene Frames. Das eine bringt alles durcheinander. Für die DeltaSol_BX habe ich daher den Code so erweitert, dass auch die destination Adresse geprüft wird. Nun funktioniert alles einwandfrei. Ich hoffe, dass dies eine generische Lösung ist, die nicht auf anderen Anlagen zu Problemen führt.

Es würde mich freuen, wenn vbus Unterstützung bald Teil des offiziellen FHEM sein würde. Es wäre also hilfreich, wenn ich von euch Feedback zu dieser zusammengefassten Code-Variante erhalten würde. Dann könnten wir den Code vielleicht eines Tages für das Mainlining vorschlagen.
Durch die vielen Code-Varianten war es nicht einfach, das Copyright aller Beteiligten in den Header aufzunehmen. Bitte melden, wer vergessen gegangen ist. (In Zukunft wird dann wohl die Versionsverwaltung diese Aufgabe zuverlässig übernhemen.)

Knuffioda

Hallo,

darf ich fragen, wie Dein zusammengebrauter Adapter gem. RESOL Schema aussieht? ich bekomm meine RS485 Lösung noch nicht ans Rennen.

Gruß Olaf
Debian Stretch mit FHEM auf
Intel(R) Atom(TM) CPU N280 @ 1.66GHz 3GB Ram
MapleCUN mit HM,MAX,IT, Dreambox DM900, Fritzbox 7580, 5x Logo8 & 1xKTP400, Resol Deltasol MX+2 EM an VBUS_LAN, 2x EPever AN & 4x Pylontech US2000c RS485

pejonp

Zitat von: afreof am 24 Mai 2015, 20:31:05
Hallo

Vielen Dank an alle, die bis jetzt an der VBUS-Unterstützung gearbeitet haben.

Ich denke auch, dass es langsam zu viele Code-Varianten ......

Hallo,

ich habe eine Viessmann Vitosolic200 mit einem  RESOL VBUS/LAN Adapter im Einsatz. Ich habe heute auf 19_VBUSIF.pm umgestellt und kann bis jetzt keinen Unterschied/Fehler feststellen. Läuft. Vielen Dank.

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

afreof

@Jörg: Danke für den Test und das Feedback

@Olaf: Schau dir mal dieses Dokument hier an. Auf Seite 6..7 hat es Schemas. USB Slave, galvanisch getrennt, funktioniert. Die Variante auf Sheet 4/4, nur RX ist eine gute Wahl für FEHM. Wenn du das Dokument liest, wird du feststellen, dass der Bus mit RS485 nichts zu tun hat...
https://drive.google.com/file/d/0B4wMTuLGRPi2RnU0Vm1tTG5wM1k/edit

Eine Anmerkung möchte ich aber trotzdem noch anfügen. Ich empfehle den LAN-Adapter von Resol zu verwenden. Das Problem bei einem seriellen Adapter ist, dass ein solcher eine sehr hohe Last auf dem FHEM-Rechner erzeugt. Ich setze einen 64Bit AMD-Rechner mit Dual-Core@1GHz ein. Dieser ist mit 10% ausgelastet! Das Problem ist, dass die serielle Schnittstelle pro Byte einen Interrupt erzeugt, der bis in den perl-Code hinauf verarbeitet wird. Bei einem LAN-Adapter gibt es pro Frame einen Interrupt, was um Potenzen effizienter ist. Natürlich könnte man einen speziellen Linux-Kernel-Treiber für VBUS über die serielle Schnittstelle schreiben, der das Problem massiv entschärfen würde. Sowas ist aber schlicht nicht wartbar. Gerne hätte ich den LAN-Adapter gekauft. Die Vertriebskanäle von Resol in unser Land sind aber leider nicht so, dass man das einfach und zu klaren Konditionen bestellen könnte. So habe ich das einfach mal so versucht. Es ist zu schlecht um es weiter zu empfehlen, aber doch zu gut um es sofort zu ersetzen.
Gruss Adrian

phh

#294
Vielen Dank für all diese Arbeit, die es mir ermöglicht hat, meine DeltaSol SL einzubinden.

Hier die entsprechende Ergänzung für die VBUSDEV:


"2251" => {"name" => "DeltaSol_SL", "cmd" => "0100", "fields" => [
# { "offset" => 0, "name" => "Systemzeit", "bitSize" => 31, "timeRef" => 1 },
{ "offset" => 4, "name" => "1_Kollektortemperatur", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
{ "offset" => 6, "name" => "2_Kesseltemperatur", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
{ "offset" => 8, "name" => "Temperatur_Sensor_3", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
{ "offset" => 10, "name" => "Temperatur_Sensor_4", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
{ "offset" => 12, "name" => "Temperatur_Sensor_5", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
# { "offset" => 14, "name" => "Temperatur_VFS/RPS", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
# { "offset" => 20, "name" => "Volumenstrom_V40", "bitSize" => 31, "factor" => 1, "unit" => "1/h" },
# { "offset" => 24, "name" => "Volumenstrom_VFS", "bitSize" => 31, "factor" => 1, "unit" => "1/h" },
# { "offset" => 28, "name" => "Volumenstrom_Flowrotor", "bitSize" => 31, "factor" => 1, "unit" => "1/h" },
# { "offset" => 32, "name" => "Druck_RPS", "bitSize" => 15, "factor" => 0.01, "unit" => "bar" },
{ "offset" => 34, "name" => "3_Drehzahl_Relais_1", "bitSize" => 7, "factor" => 1, "unit" => "%" },
{ "offset" => 35, "name" => "Drehzahl_Relais_2", "bitSize" => 7, "factor" => 1, "unit" => "%" },
# { "offset" => 36, "name" => "Drehzahl_Relais_3", "bitSize" => 7, "factor" => 1, "unit" => "%" },
# { "offset" => 37, "name" => "Drehzahl_Relais_4", "bitSize" => 7, "factor" => 1, "unit" => "%" },
{ "offset" => 38, "name" => "PWM_A", "bitSize" => 7, "factor" => 1, "unit" => "%" },
{ "offset" => 39, "name" => "PWM_B", "bitSize" => 7, "factor" => 1, "unit" => "%" },
# { "offset" => 40, "name" => "Wärmemenge", "bitSize" => 31, "factor" => 1, "unit" => "Wh" },
{ "offset" => 44, "name" => "SW-Version", "bitSize" => 7, "factor" => 0.01 },
{ "offset" => 48, "name" => "Betriebsstunden_Relais_1", "bitSize" => 31, "factor" => 1, "unit" => "h" },
{ "offset" => 52, "name" => "Betriebsstunden_Relais_2", "bitSize" => 31, "factor" => 1, "unit" => "h" },
# { "offset" => 56, "name" => "Betriebsstunden_Relais_3", "bitSize" => 31, "factor" => 1, "unit" => "h" },
# { "offset" => 60, "name" => "Betriebsstunden_Relais_4", "bitSize" => 31, "factor" => 1, "unit" => "h" },
{ "offset" => 64, "name" => "Urlaubsfunktion", "bitSize" => 1, "factor" => 1 },
{ "offset" => 65, "name" => "Blockierschutz_1", "bitSize" => 7, "factor" => 1, "unit" => "%" },
{ "offset" => 66, "name" => "Blockierschutz_2", "bitSize" => 7, "factor" => 1, "unit" => "%" },
# { "offset" => 67, "name" => "Blockierschutz_3", "bitSize" => 7, "factor" => 1, "unit" => "%" },
{ "offset" => 68, "name" => "Initialisieren", "bitSize" => 31, "factor" => 1 },
{ "offset" => 72, "name" => "Füllung", "bitSize" => 31, "factor" => 1 },
{ "offset" => 76, "name" => "Stabilisieren", "bitSize" => 31, "factor" => 1 },
{ "offset" => 80, "name" => "Pumpenverzögerung", "bitSize" => 7, "factor" => 1 },
{ "offset" => 81, "name" => "Überwärmeabfuhr", "bitSize" => 1, "factor" => 1 },
{ "offset" => 82, "name" => "Nachlauf", "bitSize" => 7, "factor" => 1 },
{ "offset" => 83, "name" => "Thermische_Desinfektion", "bitSize" => 7, "factor" => 1 },
{ "offset" => 84, "name" => "Speicherkühlung", "bitSize" => 1, "factor" => 1 },
{ "offset" => 85, "name" => "Systemkühlung", "bitSize" => 1, "factor" => 1 },
{ "offset" => 86, "name" => "Spreizung", "bitSize" => 7, "factor" => 1 },
{ "offset" => 87, "name" => "Frostschutz", "bitSize" => 7, "factor" => 1 },
{ "offset" => 88, "name" => "Kollektorkühlung", "bitSize" => 1, "factor" => 1 },
# { "offset" => 89, "name" => "Einheit_Temperatur", "bitSize" => 1, "factor" => 1 },
# { "offset" => 90, "name" => "Einheit_Durchfluss", "bitSize" => 1, "factor" => 1 },
# { "offset" => 91, "name" => "Einheit_Druck", "bitSize" => 1, "factor" => 1 },
# { "offset" => 93, "name" => "Einheit_Energie", "bitSize" => 1, "factor" => 1 },
{ "offset" => 94, "name" => "Speichermaximaltemperatur", "bitSize" => 1, "factor" => 1 },
{ "offset" => 95, "name" => "Neustarts", "bitSize" => 1, "factor" => 1 },
{ "offset" => 96, "name" => "4_Fehlermaske", "bitSize" => 31, "factor" => 1 },
]},


- Werte, die ich nicht brauche, sind mit # herausgenommen.
- Den Namen von 4 Werten habe ich Zahlen vorweggestellt, damit diese im FhemWEB ganz nach oben kommen; sind bei mir die Wichtigsten.
- Resol gibt in der xml-Datei die bitSize für die Softwareversion mit 1 an. Das ist falsch, wenn man es macht wie ich (7), wird die Version korrekt angezeigt.
- Resol spricht von Betriebssekunden der einzelnen Relais, tatsächlich werden aber Betriebsstunden angezeigt (hier und auch im Display des Geräts selbst).

Die Systemzeit (offset 0 lt. xml-Datei) würde ich gerne anzeigen lassen. BitSize gibt Resol mit 31 an. Hier wird dann eine enorm große Zahl angezeigt, die sich (nachvollziehbar) auch im Sekundentakt ändert; Wie man daraus eine lesbare Zeitanzeige macht, weiß ich leider nicht. Wenn jemand einen Tip hat, wäre ich sehr dankbar.

Knuffioda

#295
Hallo zusammen,

dank dieses Forums bin ich jetzt soweit, dass bei mir jetzt die Datenübertragung via VBusLAN funktioniert. Ich hatte anfänglich ähnliche Probleme wie auf Seite 11 beschrieben. Jetzt bekomm ich es seit Tagen nicht hin, meinen Deltasol E V2 [Regler] (0x1050)auszulesen. Das Auslesen vom Deltasol E V2 [WMZ] (0x1051) klappt einwandfrei.
Ich habe jetzt so den Verdacht das da etwas mit dem SYNC Byte nicht klappt, da bei dem Paket anscheinend aaa gesendet wird und nicht aa! (Siehe Bildanhang) Hat jemand sowas schon mal gesehen oder gar eine Lösung dafür?
Desweiteren habe ich das Pech, das dieser Regler und seine Software von RESOL wohl nicht mehr weiter entwickelt wird, so schrieb mir ein RESOL Mitarbeiter. Somit klappt die Parametrierung über RSC auch nicht 100%ig. Das macht den Regler trotz seiner guten Funktionen etwas unattraktiver.

Achso, falls noch Jemand den Teil der VBUSDEV dieses Regler benötigt, den könnte ich zur Verfügung stellen.

Gruß Olaf
Debian Stretch mit FHEM auf
Intel(R) Atom(TM) CPU N280 @ 1.66GHz 3GB Ram
MapleCUN mit HM,MAX,IT, Dreambox DM900, Fritzbox 7580, 5x Logo8 & 1xKTP400, Resol Deltasol MX+2 EM an VBUS_LAN, 2x EPever AN & 4x Pylontech US2000c RS485

aschy

Hallo,

habe jetzt auch ein bisschen rumexperimentiert.
Bekomme diese Fehlermeldung:

2015.08.02 11:50:03 0: ERROR: Cannot autoload VBUSDEV
2015.08.02 11:50:03 3: vbus: Unknown code aa1500117e1000010a40020a00000a03480200000000010b0000000000000408000064000000000000640064000064640000, help me!
Subroutine VBUSDEV_Initialize redefined at ./FHEM/21_VBUSDEV.pm line 395.
2015.08.02 11:50:03 1: reload: Error:Modul 21_VBUSDEV deactivated:
Too many arguments for main::AssignIoPort at ./FHEM/21_VBUSDEV.pm line 442, near "$iodev) "

2015.08.02 11:50:03 0: Too many arguments for main::AssignIoPort at ./FHEM/21_VBUSDEV.pm line 442, near "$iodev) "

woran kann das liegen ?
mfg aschy

Knuffioda

Hallo Aschy,

hast Du schon hier einige Seiten zurückgeblättert? Schau mal bei Antwort 214 ff ob Du da ggfs. ein ähnliches Problem haben könntest.  VBUSDEV evtl. Fehlerhaft?
Sonst Poste dochmal entsprechende Sequenzen, vielleicht kann jemand was damit anfangen.

Gruß
Debian Stretch mit FHEM auf
Intel(R) Atom(TM) CPU N280 @ 1.66GHz 3GB Ram
MapleCUN mit HM,MAX,IT, Dreambox DM900, Fritzbox 7580, 5x Logo8 & 1xKTP400, Resol Deltasol MX+2 EM an VBUS_LAN, 2x EPever AN & 4x Pylontech US2000c RS485

Burny4600

Hallo zusammen!

Habe soweit die Resol Einbindung hier im Forum verfolgt.
Bin aber trotzdem noch nicht ganz schlau aus dem ganzen geworden.
Ich habe einen DeltaSol M Regler mit einem Datenlogger 2 im Einsatz und möchte diesen in das FHEM einbinden um das System zu erweitern.

Ich habe aber irgend wie nichts passendes gefunden die beiden Komponenten in meinen Raspy einzubinden.
Welche Dateien werden hierfür wirklich benötigt und wie aktiviere ich diese am Raspy.

Hoffe hier ein paar nützliche Tipps zu finden.
MfG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Knuffioda

Hi Chris,

hier im Forum wurde bisher wirklich gute Arbeit geleistet und eigentlich sind die Module recht ausgereift.
ich habe die Tage jetzt auch noch meine Deltasol M in Betrieb genommen, eigentlich ist es gar nicht soo schwer. (Bis zur zufriedenstellenden Funktion hab ich auch nur 3 Monate gebraucht ;D , aber viel gelernt).

Erstens brauchst Du ein Gerät um FHEM mit dem VBUS zu verbinden, wobei hier der RESOL Schnittstellenadapter VBUS-LAN die einfachste (aber nicht günstigste) Lösung ist. Alternativ gibt es einige serielle Lösungen. Der RESOL VBUS-USB Schittstellenadapter hat bei mir und meinem Raspi nicht so prikelnd funktioniert. Wenn du elektrisch fit bist, gibt es hier im Forum noch den einen oder anderten Hinweis auf serielle Sebstbaulösungen.

Du benötigst weiterhin lediglich die VBUSIF.pm und die VBUSDEV.pm, wobei die VBUSDEV.pm die Protokollspezifikationen für den Deltasol M enthalten muss.
Soweit ich weiss, ist die Protokollspazifikation für den Deltasol M, in der hier im Forum umgehenden Version noch nicht enthalten, aber ich kann Dir bzw. allen die gerne zur Verfügung stellen.

Diese Dateien packst Du in dein FHEM Verzeichnis, und definierst einfach das Modul z.B. beim VBUSLAN-Schnittstellenadapter so:

define vbus VBUSIF xxx.xxx.xxx.xxx:7053

Sollte das soweit geklappt haben sollte Autocreate dann die entsprechenden VBUSDEV Geräte erstellen, und dann kanns losgehen.

Wenn Du noch Fragen hast, immer heraus damit.

Ich wünsche Dir viel Erfolg!

Olaf
Debian Stretch mit FHEM auf
Intel(R) Atom(TM) CPU N280 @ 1.66GHz 3GB Ram
MapleCUN mit HM,MAX,IT, Dreambox DM900, Fritzbox 7580, 5x Logo8 & 1xKTP400, Resol Deltasol MX+2 EM an VBUS_LAN, 2x EPever AN & 4x Pylontech US2000c RS485