Resol DeltaSol Plus per USR-TCP232 einbinden (gelöst)

Begonnen von Mr.1000V, 06 November 2019, 11:09:28

Vorheriges Thema - Nächstes Thema

Mr.1000V

Ein Resol DeltaSol Plus Solarregler hat eine serielle Schnittstelle die nur sendet mit  9600,n,8,1.
Daran habe ich ein Serial IP USR-TCP232 Schnittstellenkonverter angeschlossen und auf einem entfernten Computer läuft ein Port Redirector und man kann die Daten im Resol eigenen Programm ServiceCenter-Software RSC auch sauber anzeigen lassen. Technik steht also.

Auf meinen FHEM Raspi habe ich dann mal ein VBUSIF angelegt, jedoch mit IP und Port des Serial IP USR-TCP232 Schnittstellenkonverter. Und siehe da, es kommt in den Internals des VBUSIF folgende RAWMSG die gut aussieht, so denke ich.

RAWMSG   aa10001052100001087419013f016b0202011701000000002a01d70366001c00000100000000c602c602

Leider finde ich in den VBUSDEV nicht meine DeltaSol Plus Steuerung sondern nur jede Menge andere Regler und Steuerungen. Die per autocreate angelegte VBUSDEV_5210 passt nicht.
In der Datei 21_VBUSDEV.pm sind ja allerlei Regler drin, aber kann jemand meine DeltaSol Plus noch integrieren?

Muss ich vielleicht ein anderes Device als das VBUSIF nehmen, da ich ja gar kein physikalisches VBUS Interface habe sondern nur den Serial IP USR-TCP232 Schnittstellenkonverter. Ich möchte kein VBUS Interface extra kaufen, die Daten hab ich ja in fhem zur Verfügung.....

Mr.1000V

Ich bin selbst ein bisschen weitergekommen. Die 21_VBUSDEV.pm müsste mMn um folgende Zeilen für die bisher nicht unterstützte Device (DeltaSolPlus) ergänzt werden.

"5210" => {"name" => "DeltaSolPlus", "cmd" => "0100", "fields" => [
{ "offset" =>  0,"name" => "temperature_T01","bitSize" => 15,"factor" => 0.1,"unit" => "°C" },
{ "offset" =>  2,"name" => "temperature_T02","bitSize" => 15,"factor" => 0.1,"unit" => "°C" },
{ "offset" =>  4,"name" => "temperature_T03","bitSize" => 15,"factor" => 0.1,"unit" => "°C" },
{ "offset" =>  6,"name" => "temperature_T04","bitSize" => 15,"factor" => 0.1,"unit" => "°C" },
                        { "offset" =>  8,"name" => "temperature_T05","bitSize" => 15,"factor" => 0.1,"unit" => "°C" },
{ "offset" => 10,"name" => "speed_R1","bitSize" => 8,"unit" => "%" },
{ "offset" => 11,"name" => "speed_R2","bitSize" => 8,"unit" => "%" },
{ "offset" => 12,"name" => "volumeflow","bitSize" => 16,"factor" => 0.1,"unit" => "l/min" },
{ "offset" => 14,"name" => "antifreeze","bitSize" => 8,"factor" => 1,"unit" => "%" },
{ "offset" => 15,"name" => "frostprotection","bitSize" => 8},
{ "offset" => 16,"name" => "waermemenge_1","bitSize" => 16,"factor" => 1,"unit" => "Wh" },
{ "offset" => 18,"name" => "waermemenge_2","bitSize" => 16,"factor" => 1000,"unit" => "Wh" },
{ "offset" => 20,"name" => "waermemenge_3","bitSize" => 16,"factor" => 1000000,"unit" => "Wh" },
{ "offset" => 22,"name" => "hw-version","bitSize" => 8,"factor" => 0.1 },
{ "offset" => 23,"name" => "sw-version","bitSize" => 8,"factor" => 0.1 },
{ "offset" => 24,"name" => "error_mask","bitSize" => 8},
{ "offset" => 25,"name" => "error_info1","bitSize" => 8},
{ "offset" => 26,"name" => "error_info2","bitSize" => 8},
{ "offset" => 27,"name" => "relaismask","bitSize" => 8},
{ "offset" => 28,"name" => "systemtime","bitSize" => 15 },
{ "offset" => 30,"name" => "systemtime","bitSize" => 15 },
]},


Habe den Frame aus Hex Daten entschlüsselt und ausgewertet. Dann sollte auch eine DeltaSolPlus mit Hilfe eines VBUSIF Resol Interfaces funktionieren.... Genau so ein Interface möchte ich aber nicht extra kaufen, hab ich doch folgende Rohdaten aus einem physischen ECMD Device zur Verfügung.

2020.01.01 08:28:09 3: Solar_S13_ecmd device opened
2020.01.01 08:28:09 2: Solar_S13_ecmd: read \000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t e\000\atl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t e\000\atl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t e\000\atl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013�\020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013 (\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\040\177\145\000\007\164\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\040\177\145\000\007\164\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\040\177\145\000\007\164\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013\252\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013)
2020.01.01 08:28:09 2: Solar_S13_ecmd: read � (\252)
2020.01.01 08:28:09 2: Solar_S13_ecmd: read \020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013 (\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013)
2020.01.01 08:28:10 2: Solar_S13_ecmd: read � (\252)
2020.01.01 08:28:10 2: Solar_S13_ecmd: read \020\000\020R\020\000\001\010t!e\000\asl\002W\000\0046S\000\000\000\001+\000\000*\001\000T'\001\001\000\004R\034\000\000\001\000b\000\000\000\000\0008\0028\002\000\013 (\020\000\020\122\020\000\001\010\164\041\177\145\000\007\163\154\002\127\000\004\066\123\000\000\000\001\053\000\000\052\001\000\124\047\001\001\000\004\122\034\000\000\001\000\142\000\000\000\000\000\177\070\002\070\002\000\013)


Frage: Wie bekomme ich die Rohdaten aus dem ECMD Modul so aufbereitet, dass ich die Daten im Klartext weiterverarbeiten kann?
Meine Programmierkenntnisse in Perl reichen da leider nicht aus.