VBus in fhem

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

Vorheriges Thema - Nächstes Thema

michaelfhem

Anbei meine Learnings von der Installation dieses Modul. Evtl. hilft es jemand:

Kurzanleitung VBUS LAN Gateway Resol.

1.)erstmal keine Einstellungen am VBUS/Lan Gateway (Passwort/Port etc) vornehmen
2.)Ip_adresse herausfinden (z.B. am Router) und prüfen ob man per Browser darauf zugreifen kann
3.)Optional: Testen ob Daten ankommen mit der service center Software von Resol
4.)erstmal nur das VBUSIF als define eintragen

define vbus VBUSIF 192.168.178.1:7053
attr vbus event-min-interval .*:120
attr vbus verbose 5

Im Logfile prüfen ob Daten ankommen
Wichtig: Im File 19_VBUSIF.pm (Download aus dem WIKI-EIntrag) befindet sich ein Fehler
ca. Zeile 92  $conn->write("PASS vbus#\n"); das Doppelkreuz entfernen $conn->write("PASS vbus\n");
Dann reload 19_VBUSIF.pm in fhem commandzeile eingeben
5.)Das VBUSDevice anlegen, die Zahlen sind im Wiki beschrieben, falls die eigene nicht dabei ist kann man die Liste in 21_VBUSDEV.pm (reload nicht vergessen) einfach selbst ergänzen

define solartherm VBUSDEV 2271
attr solartherm IODev vbus
attr solartherm event-min-interval .*:360
attr solartherm model DeltaSol_SLL
attr solartherm verbose 5

6.) jetzt sollten die Readings unter solartherm angezeigt werden


Anbei noch meine Ergänzungen für die Resol Deltasol SLL

    "2271" => {"name" => "DeltaSol_SLL", "cmd" => "0100", "fields" => [
            { "offset" => 0, "name" => "Systemzeit", "bitSize" => 31, "timeRef" => 1 },
            { "offset" => 4, "name" => "Solar_Kollektortemp", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
            { "offset" => 6, "name" => "Solar_Kesseltemp", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
            { "offset" => 8, "name" => "Solar_VL", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
            { "offset" => 10, "name" => "Solar_RL", "bitSize" => 15, "factor" => 0.1, "unit" => "°C" },
            { "offset" => 12, "name" => "Tage", "bitSize" => 15, "factor" => 1, "unit" => "T" },
            { "offset" => 16, "name" => "Volumenstrom_V40", "bitSize" => 31, "factor" => 1, "unit" => "1/h" },
            { "offset" => 20, "name" => "Drehzahl1", "bitSize" => 7, "factor" => 1, "unit" => "%" },
            { "offset" => 24, "name" => "Waermemenge", "bitSize" => 31, "factor" => 1, "unit" => "Wh" },
            { "offset" => 32, "name" => "Betriebstunden", "bitSize" => 31, "factor" => 1, "unit" => "h" },
            { "offset" => 44, "name" => "SW-Version", "bitSize" => 7, "factor" => 0.01 },
            { "offset" => 44, "name" => "Urlaubsfunktion", "bitSize" => 1, "factor" => 1 },
            { "offset" => 45, "name" => "Blockierschutz_1", "bitSize" => 7, "factor" => 1, "unit" => "%" },
            { "offset" => 69, "name" => "Speichermaximaltemperatur", "bitSize" => 1, "factor" => 1 },
            { "offset" => 72, "name" => "Fehlermaske", "bitSize" => 31, "factor" => 1 },
              ]},
    "2272" => {"name" => "DeltaSol_SLL_WMZ1", "cmd" => "0100", "fields" => [
            { "offset" => 0, "name" => "Leistung_gesamt", "bitSize" => 31, "factor" => 1, "unit" => "Wh" },
            { "offset" => 4, "name" => "Leistung", "bitSize" => 31, "factor" => 1, "unit" => "W" },
            { "offset" => 8, "name" => "Leistung_heute", "bitSize" => 31, "factor" => 1, "unit" => "Wh" },
            { "offset" => 12, "name" => "Leistung_Woche", "bitSize" => 31, "factor" => 1, "unit" => "Wh" },
              ]},

Danke für das Modul,
Grüße Michi
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

Tobias

Habe mal das Wiki aktualisiert

http://www.fhemwiki.de/wiki/Vbus

pjonp muss nur noch diese Steuerung einfügen
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

pejonp

Hallo,

@michaelfhem: die Resol Deltasol SLL habe ich mit aufgenommen.

@dobiwan: die 4511 und 4512 habe ich ergänzt. Bitte einmal nachsehen ob die Angaben stimmen.


Bei mir wurde eine WMZ (7327) nicht mehr angezeigt.
Fehler ist dieser String: aa1000277310000103414a7f1300071c00001401006a62023000016aaa000021732000050000000000000046a

Bei der Erkennung wird auf "aa" getestet. Das wird auch erkannt ..16aaa000.. und dann auch der String getrennt.
Jetzt ist der 1. String aber zu kurz:
aa1000277310000103414a7f1300071c00001401006a62023000016 es fehlt das "a" am Ende.

Eine Anpassung habe ich eingebaut. Nicht schön, funktioniert bei mir aber. Bitte einmal testen.

Das Update über : update all https://raw.githubusercontent.com/pejonp/vbus/master/controls_vbus.txt
geht jetzt auch.

pejonp
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

Tobias

Hi pjonp,
genau DIESE anpassung das am aaa nicht korrekt getrennt wird, hatte ich schonmal eingebaut. Kannst du dir die Version im FHEM contrib mal bitte ansehen? ICh hatte IMHO nur den regex angepasst.
Falls du es nicht findest, lade ich hier dann meine aktuell genutzte Version hoch
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

michaelfhem

#469
Hallo vbus-Kollegen,

bei mir kommen immer mal wieder an einigen Stellen falsche Werte an. Ich filter diese indem ich in der 21_VBUSDEV.pm in der Funktion VBUSDEV_ParsePayload($@) prüfe ob die Systemzeit in meiner Nachricht größer als ein Mindestwert ist. Das ist natuerlich nicht sonderlich allgemein gültig. Evtl. hilft es Euch aber als Hinweis das da noch was nicht 100% ist.


        if($o == 0)
{
if(hex($val) < 0xffff)
{
                                 Log3 $hash, 3, "F:".$hash.$devtype.$cmd.$payload;
return "unvalid Systemtime";
}
}




ANbei noch als Ergänzung die passenden Daten aus dem Log:
Falsche Nachricht:
2016.11.13 16:36:58 3: F:HASH(0x3329238)HASH(0x2f5f870)010003010000e100cd00e100e1000000f1d80108000000000000020a0000e100cd007d200000010b000000000000
2016.11.14 19:18:43 3: VBUSDEV_Parse0: ioName: vbus DST-ADR: 0015 SRC-ADR: 2271
2016.11.14 19:18:43 3: VBUSDEV_Parse: Standard-Infos ioName: vbus DST-ADR: 0015
2016.11.14 19:18:43 3: VBUSDEV_Parse1: vbus DST-ADR: 0015 SRC-ADR: 2271

Richtige Nachricht
2016.11.13 16:37:00 3: F:HASH(0x3329238)HASH(0x2f5f870)010010ced81de100cd00e100e1001200000000000000000000007d2000006b0000006300000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2016.11.14 19:18:42 3: VBUSDEV_Parse0: ioName: vbus DST-ADR: 0010 SRC-ADR: 2271
2016.11.14 19:18:42 3: VBUSDEV_Parse: DFA       ioName: vbus DST-ADR: 0010
2016.11.14 19:18:42 3: VBUSDEV_Parse1: vbus DST-ADR: 0010 SRC-ADR: 2271


die falsche Nachricht kommt ca jedes 16mal. Der UNterschied liegt wohl in der DST-ADR. Die Pakete mit der DST-ADR 0015 sind kürzer und werden aber trotzdem wie normale Pakete vom Parser behandelt. Es gibt da ein STück code das das wohl verhindern soll. Allerdings ist mir nicht klar wie dieser wirksam wird.

if ( defined $devtype->{dst_addr} ) {
if ( $devtype->{dst_addr} ne $dst_addr ) {
Log3 $iodev, 3, "VBUSDEV_Parse: $ioName : skip frame $devtype->{dst_addr} $dst_addr";
return "";
}
}



Grüße Michi
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

pejonp

Hi michaelfhem,

kannst du mal bitte einen Log anhängen, verbose=5. In diesem sollten richtig und fehlerhaft Nachrichten sein. Ich sehe mir das mal an, kann aber nichts versprechen. Wenn jemand dazu schon eine Lösung hat, immer her damit.

@tobias:
im contrib/19_VBUSIF.PM habe ich das gefunden. Wird aber nur die die Daten treffen mit einer Länge von 223.

if ($len != length($msg) && length($msg) != 223) {
   Log 4,"$name: Wrong message length: $len != ".length($msg);
} else {
   if(length($msg) == 223) {
$msg = $msg."a";
        }


pejonp
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

Tobias

@pjonp, ich habe sowas hier:
        $idx = index($data,"aa");
        if ($idx>=0) {

                $data = substr($data,$idx); # Cut off beginning

                $idx = index($data,"aa",2); # Find next message

                if ($idx>0) {

                        $idx +=1 if (substr($data,$idx,3) eq "aaa"); # Message endet mit a


Müsste eigentlich auch im contrib sein...
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

michaelfhem

@pejomp. Habe die passenden Logs im Beitrag ergänzt.

Grüße Michi
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

michaelfhem

#473
Hallo zusammen,

ich habe mal nachgefragt was der UNtrerschied zwischen dst-adr 0x15 und 0x10 ist. Hier die ANtwort:

Das Paket von 0x2271 an 0x0010 ist ein DeltaSol SLL-spezifisches Paket, das genau an die Rahmenbedingungen des jeweiligen Reglers angepasst ist (an die Anzahl der verwendeten Sensoren, Relais, Zusatzfunktionen usw.). Das Paket ist unter folgendem Link aufgeschlüsselt:

http://danielwippermann.github.io/resol-vbus/vbus-packets.html#0010_2271_0100

Das Paket von 0x2271 an 0x0015 ist ein produktunabhängiges Paket. Es wird von Zubehör wie dem VBus/PWM-Adapter oder den Fernanzeigen SD3 / SDFK unterstützt und erlaubt es, dieses Zubehör mit neueren Reglern zu kombinieren, ohne dass die Software innerhalb des Zubehörs erweitert werden muss. Da alle Informationen in diesem Paket (an die 0x0015) auch in der Paket an die 0x0010 enthalten sind, wird dieses Paket nicht mehr separat angezeigt bzw. ist nicht ihn der VBus-Spezifikation beschrieben.

Grüße Michi

in der vbusdev war folgender code auskommentiert, ich habe diesen bei mir wieder einkommentiert


if ($dst_addr != "0010")
{
Log3 $iodev, 3, "VBUSDEV_Parse: $ioName : skip frame $dst_addr"; 
return "";
}
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

Tobias

Hi, ich würde gerne die aktuelle Version von pejonp als offizielles Modul in fhem einchecken. Spricht was dagegen?

Gesendet von meinem Leap mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

michaelfhem

Bei mir funktioniert es gut mit der Änderung keine 0x15 Pakete zu berücksichtigen (post 473). Macht man das nicht, springen die Readings da zwischendurch immer Nachrichten kommen die nicht auf das Muster passen und demnentsprechend falsch interpretiert werden.

Grüße
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

nonamenogame

ich kann leider nichts über Ausreisser berichten, die hatte ich früher mal bei negativen Temperaturen und wollte da immer mal beigehen, hab es aber nie geschafft.
Schlussendlich läuft di eaktuelle Version bei mir TOP mit deinem Deltasol ES über einen USB2Serial 485 Adapter am VBUS.

Viele grüße

pejonp

Zitat von: michaelfhem am 23 Dezember 2016, 16:41:58
Bei mir funktioniert es gut mit der Änderung keine 0x15 Pakete zu berücksichtigen (post 473). Macht man das nicht, springen die Readings da zwischendurch immer Nachrichten kommen die nicht auf das Muster passen und demnentsprechend falsch interpretiert werden.

Grüße
Hallo,

@michaelfhem: habe die Anpassung vorgenommen. Bei 0x15 Paketen wird abgebrochen. Bitte testen und kurze Info.
@tobias: Im Wiki bitte die Definition um USB ergänzen oder auf die Beschreibung im Modul verweisen. Die hinterlegten Module würde ich hier auch nicht aufführen, im github sind die aktuell unterstützen aufgeführt.

Ich wünsche Euch und Euren Familien schöne Weihnachten
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

michaelfhem

wo liegt die aktuelle Version? einfach per update?

Grüße
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

Knuffioda

Hallo nonamenogame,

ich hab zwar die funktionierende VBUSLAN Variante, mich  (und vielleicht andere) würde Deine  USB2Serial 485 Adapter am VBUS sehr interessieren.
Würdest Du die vielleicht näher vorstellen? Für alle die noch kein Interface haben, würde das doch sicherlich einen preiswerten Einstieg bedeuten, oder?

ein fröhliches Weihnachtsfest wünsche ich allen.

Knuffioda
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