zivillian / ism7mqtt

GNU General Public License v3.0
56 stars 10 forks source link

Wolf SmartSet provisioning not successful with Wolf TGB-2 #43

Closed jatty closed 1 year ago

jatty commented 1 year ago

Wolf SmartSet provisioning is not working as described in README. This is not an Issue within ism7mqtt itself, but I don't get the point how to get the parameter.yaml

The SmartSet PC-App is working up to the point when it's handshaking the password with the ISM7. When I enter a wrong password, this is recognized via the GUI on port 5000. But then the backend communication runs into a timeout at some time, and there's no parameter.yaml getting generated.

Maybe an issue with ISM7 (without i at the end) and FW 3.00?

infocfc commented 1 year ago

So your Smartset pC isn't working at all, correct? Do you have another local software accessing the ISM, like maybe the mobil app on a phone in local access mode? Cause the ISM can only accept one connection at a time. Can you access the website of the ISM and login there succesfully? How is it connected, Wifi or LAN? My experience with the Wifi connection was horrible, so I had to run a cable there...

jatty commented 1 year ago

So your Smartset pC isn't working at all, correct?

Yes. 😫

Do you have another local software accessing the ISM, like maybe the mobil app on a phone in local access mode? Cause the ISM can only accept one connection at a time.

Yes, I've terminated the iPhone app, and after terminating the browser with the direct http session (port 80) to ISM7, and rebooted the ISM7, waited until it was ready again. But still no connection. Only thing is: it connects to the wolf-smartset.de cloud-service at the same time.

Can you access the website of the ISM and login there succesfully?

Yes, on port 80. It says: Internet access: | active Portal: | Direct connected eBus: | Online Modbus: | Offline

How is it connected, Wifi or LAN?

It's connected by Ethernet cabling.

I thought I would have tried anything, perhaps there's still some client connecting. I'll try a crossover ethernet cable between ISM7 and Laptop next, to be directly attached.

jatty commented 1 year ago

@infocfc I get "Fault: The individual components of the heating system are just determined. Please try again in a few minutes." after booting the ISM7. When trying later again, I get "Fault: The connection to the system cannot be established. Refresh the system list and try again." after some 30 seconds idling time. Of course, the refresh doesn't help.

infocfc commented 1 year ago

Hmm. This almost sounds as if the ISM itself or it's connection to the heating isn't working properly. But the wolf-smartset website itself works as expected?

Can you tell us as much details as possible about your setup? What heating, what ISM (and where did you get it) including versions, what OS are you running SMartset-PC (and which version) on? For instance, my ISM looks like this: ` Internetfreigabe: aktiv
Portal: Direktverbunden
eBus: verbunden
Modbus: nicht verbunden

Weitere Informationen Seriennummer: | xxxxxxx FW-Version: | 3.00 MAC-Adresse LAN: | xxxxxxx Direktverbindung: | Direktverbunden

`

Last but not least, there has been issues in the past with complex passwords in the ISM. Maybe you can try to change that to something as simple as possible.

jatty commented 1 year ago

Hmm. This almost sounds as if the ISM itself or it's connection to the heating isn't working properly. But the wolf-smartset website itself works as expected?

Yes, wolf-smartset via Cloud works well, I see all values and can also make new settings for heating, this all works well. I've tried a non so complex password for testing now. I've tested with Windows 10, Windows 7, no difference.

Can you tell us as much details as possible about your setup? What heating, what ISM (and where did you get it) including versions, what OS are you running SMartset-PC (and which version) on? For instance, my ISM looks like this:

I have a Wolf TGB-2-30 with BM-2 AB FW 3.00 Also I have a "Wolf Link home (Mat. Nr. 2746365) with FW: 3.00 BL 3.00. Its ISM7 Info: Internet access: active
Portal: Direct connected
eBus: Online
Modbus: Offline
Serial number: xxxxxxx
FW version: 3.00
MAC address LAN: xxxxxxx
Direct link: Try to connect+log on

The "Try to connect+log on" changes to "Direct connected" when I start my iPhone Wolf Smartset app.

When I try with the Windows Smartset Java App instead, I see a log file "smartset" (within %USERPROFILE%\AppData\Roaming\Wolf GmbH\Smartset\logs)

It throws an error: System.Exception: Heizmodul address:'0x8' unknown WRSDeviceId:0x35%

Do i have an incompatible device?

zivillian commented 1 year ago

Can you attach the logfile from the smartset app and the sdf file (%AppData%\Roaming\Wolf GmbH\Smartset\App_Data\smartsetpc.sdf)?

jatty commented 1 year ago

Can you attach the logfile from the smartset app and the sdf file (%AppData%\Roaming\Wolf GmbH\Smartset\App_Data\smartsetpc.sdf)?

I've uploaded it to https://github.com/jatty/ism7mqtt/blob/master/smartsetpc.sdf - it's a binary file with 1.8 MB, and https://github.com/jatty/ism7mqtt/blob/master/smartset.txt

zivillian commented 1 year ago

It looks like the TGB-2 is not supported by the Smartset PC App because the PC version is from 2019. I'll take a look into the android version and try to find out if there is an option to retrieve the config from the app.

zivillian commented 1 year ago

The android app also contains the device, parameter and converter xml files. The device.xml contains a template for the TGB-2, but it has no WRSDeviceId - so I guess additional changes are required.

Can you create a trace using the mobile app? The android version does not validate the certificate, so hopefully the iOS app also works. You need to run the ism7proxy on a PC (ism7proxy.exe -i <ip of your ism>) and then connect to the ip of the pc instead of your ism ip. This should dump the communication between the app and your ism.

Please redact your password, when posting the log.

zivillian commented 1 year ago

Sadly the android app does not create a database like the desktop version, but it contains the unencrypted binaries - so we might be able to reverse how the parameters are computed.

zivillian commented 1 year ago

Good news - the android app creates a verbose log file. It is aes encrypted, but the binaries contain the key & iv so I've created a console app to decrypt the log file.

After connecting to the ISM, the app first dumps the devices and their config (I've replaces some weird separators by newlines and tabs):

BusConfigDetails ``` 2023-02-05 15:42:02.6272 [13] INFO GW-1 - - BusConfigDetails:Busconfig.HasHK():False Busconfig.HasKM():False Busconfig.HasNoSystemMixedCircuit():False Busconfig.HasOneHG():True Busconfig.HasOneSystemHotWaterStorage():True Busconfig.HasOneSystemMixedCircuit():True Busconfig.HasR3():False Busconfig.HasSeveralHG():False Busconfig.HasSeveralSystemHotWaterStorage():False Busconfig.HasSeveralSystemMixedCircuits():False Busconfig.HasZirkHG():True Busconfig.IsBM0Master():True Busconfig.IsHostOfMM1("MM"):True Busconfig.IsHostOfMM1("KM"):False Busconfig.IsHostOfMM1("R3"):False Busconfig.IsHostOfMM1("BWS_1_BWL_1_BWW_1"):False Busconfig.IsHostOfMM1("BWL_1S"):False Busconfig.HasAFB(0):False Busconfig.HasBM(0):True Busconfig.HasBM2(0):True Busconfig.HasCWL(0):False Busconfig.HasMK(0):False Busconfig.HasMM(0):False Busconfig.HasSpeicher(0):False Busconfig.HasWWSystemspeicher(0):True Busconfig.HasDFB(0):False Busconfig.HasAFB(1):False Busconfig.HasBM(1):False Busconfig.HasBM2(1):False Busconfig.HasCWL(1):False Busconfig.HasMK(1):True Busconfig.HasMM(1):True Busconfig.HasSpeicher(1):False Busconfig.HasWWSystemspeicher(1):False Busconfig.HasDFB(1):False Busconfig.HasAFB(2):False Busconfig.HasBM(2):False Busconfig.HasBM2(2):False Busconfig.HasCWL(2):False Busconfig.HasMK(2):False Busconfig.HasMM(2):False Busconfig.HasSpeicher(2):False Busconfig.HasWWSystemspeicher(2):False Busconfig.HasDFB(2):False Busconfig.HasAFB(3):False Busconfig.HasBM(3):False Busconfig.HasBM2(3):False Busconfig.HasCWL(3):False Busconfig.HasMK(3):False Busconfig.HasMM(3):False Busconfig.HasSpeicher(3):False Busconfig.HasWWSystemspeicher(3):False Busconfig.HasDFB(3):False Busconfig.HasAFB(4):False Busconfig.HasBM(4):False Busconfig.HasBM2(4):False Busconfig.HasCWL(4):False Busconfig.HasMK(4):False Busconfig.HasMM(4):False Busconfig.HasSpeicher(4):False Busconfig.HasWWSystemspeicher(4):False Busconfig.HasDFB(4):False Busconfig.HasAFB(5):False Busconfig.HasBM(5):False Busconfig.HasBM2(5):False Busconfig.HasCWL(5):False Busconfig.HasMK(5):False Busconfig.HasMM(5):False Busconfig.HasSpeicher(5):False Busconfig.HasWWSystemspeicher(5):False Busconfig.HasDFB(5):False Busconfig.HasAFB(6):False Busconfig.HasBM(6):False Busconfig.HasBM2(6):False Busconfig.HasCWL(6):False Busconfig.HasMK(6):False Busconfig.HasMM(6):False Busconfig.HasSpeicher(6):False Busconfig.HasWWSystemspeicher(6):False Busconfig.HasDFB(6):False Busconfig.HasAFB(7):False Busconfig.HasBM(7):False Busconfig.HasBM2(7):False Busconfig.HasCWL(7):False Busconfig.HasMK(7):False Busconfig.HasMM(7):False Busconfig.HasSpeicher(7):False Busconfig.HasWWSystemspeicher(7):False Busconfig.HasDFB(7):False Busconfig - GW0 DTID:190000(ISM) Busconfig.GetFirmwareComputed("ISM", 0): This.GetInstallationConfigIndex():0 This.IsDeviceIndex0():True This.IsDeviceIndex1():False This.IsDeviceIndex2():False This.IsDeviceIndex3():False This.IsDeviceIndex4():False This.IsDeviceIndex5():False This.IsDeviceIndex6():False This.IsDeviceIndex7():False This.IsDeviceIndex2to7():False This.IsHG2():False This.IsHG3():False This.IsHG4():False This.IsHG5():False This.IsHK():False This.IsHostHG():False This.IsHostIndex(0):True This.IsHostKM():False This.IsHostMM():False This.IsHostR3():False This.GetFirmwareComputed(): Busconfig - HG1 DTID:180000(CGB-2) Busconfig.GetFirmwareComputed("CGB-2", 1):180 This.GetInstallationConfigIndex():6 This.IsDeviceIndex0():False This.IsDeviceIndex1():True This.IsDeviceIndex2():False This.IsDeviceIndex3():False This.IsDeviceIndex4():False This.IsDeviceIndex5():False This.IsDeviceIndex6():False This.IsDeviceIndex7():False This.IsDeviceIndex2to7():False This.IsHG2():False This.IsHG3():False This.IsHG4():False This.IsHG5():False This.IsHK():False This.IsHostHG():False This.IsHostIndex(1):False This.IsHostKM():False This.IsHostMM():False This.IsHostR3():False This.GetFirmwareComputed():180 Busconfig - BM0 DTID:220000(BM-2) Busconfig.GetFirmwareComputed("BM-2", 0):280 This.GetInstallationConfigIndex():0 This.IsDeviceIndex0():True This.IsDeviceIndex1():False This.IsDeviceIndex2():False This.IsDeviceIndex3():False This.IsDeviceIndex4():False This.IsDeviceIndex5():False This.IsDeviceIndex6():False This.IsDeviceIndex7():False This.IsDeviceIndex2to7():False This.IsHG2():False This.IsHG3():False This.IsHG4():False This.IsHG5():False This.IsHK():False This.IsHostHG():False This.IsHostIndex(0):True This.IsHostKM():False This.IsHostMM():False This.IsHostR3():False This.GetFirmwareComputed():280 Busconfig - SM10 DTID:60000(SM1) Busconfig.GetFirmwareComputed("SM1", 0):203900005 This.GetInstallationConfigIndex():1 This.IsDeviceIndex0():True This.IsDeviceIndex1():False This.IsDeviceIndex2():False This.IsDeviceIndex3():False This.IsDeviceIndex4():False This.IsDeviceIndex5():False This.IsDeviceIndex6():False This.IsDeviceIndex7():False This.IsDeviceIndex2to7():False This.IsHG2():False This.IsHG3():False This.IsHG4():False This.IsHG5():False This.IsHK():False This.IsHostHG():False This.IsHostIndex(0):True This.IsHostKM():False This.IsHostMM():False This.IsHostR3():False This.GetFirmwareComputed():203900005 Busconfig - MM1 DTID:40000(MM) Busconfig.GetFirmwareComputed("MM", 1):200800000 This.GetInstallationConfigIndex():8 This.IsDeviceIndex0():False This.IsDeviceIndex1():True This.IsDeviceIndex2():False This.IsDeviceIndex3():False This.IsDeviceIndex4():False This.IsDeviceIndex5():False This.IsDeviceIndex6():False This.IsDeviceIndex7():False This.IsDeviceIndex2to7():False This.IsHG2():False This.IsHG3():False This.IsHG4():False This.IsHG5():False This.IsHK():False This.IsHostHG():False This.IsHostIndex(1):True This.IsHostKM():False This.IsHostMM():True This.IsHostR3():False This.GetFirmwareComputed():200800000 Busconfig - WWSystem0 DTID:350000(WWSystem_BM-2) Busconfig.GetFirmwareComputed("WWSystem_BM-2", 0): This.GetInstallationConfigIndex():0 This.IsDeviceIndex0():True This.IsDeviceIndex1():False This.IsDeviceIndex2():False This.IsDeviceIndex3():False This.IsDeviceIndex4():False This.IsDeviceIndex5():False This.IsDeviceIndex6():False This.IsDeviceIndex7():False This.IsDeviceIndex2to7():False This.IsHG2():False This.IsHG3():False This.IsHG4():False This.IsHG5():False This.IsHK():False This.IsHostHG():True This.IsHostIndex(0):False This.IsHostKM():False This.IsHostMM():False This.IsHostR3():False This.GetFirmwareComputed(): Busconfig - MK1 DTID:360000(MK_BM-2) Busconfig.GetFirmwareComputed("MK_BM-2", 1): This.GetInstallationConfigIndex():0 This.IsDeviceIndex0():False This.IsDeviceIndex1():True This.IsDeviceIndex2():False This.IsDeviceIndex3():False This.IsDeviceIndex4():False This.IsDeviceIndex5():False This.IsDeviceIndex6():False This.IsDeviceIndex7():False This.IsDeviceIndex2to7():False This.IsHG2():False This.IsHG3():False This.IsHG4():False This.IsHG5():False This.IsHK():False This.IsHostHG():False This.IsHostIndex(1):True This.IsHostKM():False This.IsHostMM():True This.IsHostR3():False This.GetFirmwareComputed(): ```

followed by the parameter mapping:

parameter mapping ``` 2023-02-05 15:42:03.2378 [13] DEBUG MvvmCross.Logging.MvxLog - Dump parameter mapping:PTID[180149] - MappingIndex: 1 PTID[180140] - MappingIndex: 2 PTID[180123] - MappingIndex: 3 PTID[180156] - MappingIndex: 4 PTID[180157] - MappingIndex: 5 PTID[220043] - MappingIndex: 6 PTID[220044] - MappingIndex: 7 PTID[220045] - MappingIndex: 8 PTID[220046] - MappingIndex: 9 PTID[220091] - MappingIndex: 10 PTID[220107] - MappingIndex: 11 PTID[220108] - MappingIndex: 12 PTID[40009] - MappingIndex: 13 PTID[180175] - MappingIndex: 14 PTID[180176] - MappingIndex: 15 PTID[180177] - MappingIndex: 16 PTID[180178] - MappingIndex: 17 PTID[180032] - MappingIndex: 20 PTID[180161] - MappingIndex: 21 PTID[180122] - MappingIndex: 22 PTID[180180] - MappingIndex: 24 PTID[220104] - MappingIndex: 25 PTID[220040] - MappingIndex: 26 PTID[60072] - MappingIndex: 27 PTID[60000] - MappingIndex: 28 PTID[60008] - MappingIndex: 29 PTID[60039] - MappingIndex: 30 PTID[60044] - MappingIndex: 31 PTID[40093] - MappingIndex: 32 PTID[350001] - MappingIndex: 33 PTID[360066] - MappingIndex: 34 PTID[360004] - MappingIndex: 35 PTID[360132] - MappingIndex: 36 PTID[360136] - MappingIndex: 37 PTID[360145] - MappingIndex: 38 PTID[180016] - MappingIndex: 39 PTID[180026] - MappingIndex: 40 PTID[180025] - MappingIndex: 41 PTID[180027] - MappingIndex: 42 PTID[180171] - MappingIndex: 43 PTID[180172] - MappingIndex: 44 PTID[180141] - MappingIndex: 49 PTID[180142] - MappingIndex: 50 PTID[180143] - MappingIndex: 51 PTID[180154] - MappingIndex: 52 PTID[180005] - MappingIndex: 53 PTID[180048] - MappingIndex: 54 PTID[180012] - MappingIndex: 55 PTID[180110] - MappingIndex: 56 PTID[180051] - MappingIndex: 57 PTID[180145] - MappingIndex: 58 PTID[180008] - MappingIndex: 59 PTID[180033] - MappingIndex: 60 PTID[180035] - MappingIndex: 61 PTID[180034] - MappingIndex: 62 PTID[180155] - MappingIndex: 64 PTID[180006] - MappingIndex: 65 PTID[180162] - MappingIndex: 66 PTID[180150] - MappingIndex: 71 PTID[180054] - MappingIndex: 72 PTID[180102] - MappingIndex: 73 PTID[180148] - MappingIndex: 74 PTID[180152] - MappingIndex: 75 PTID[180158] - MappingIndex: 77 PTID[180159] - MappingIndex: 78 PTID[180160] - MappingIndex: 79 PTID[180163] - MappingIndex: 81 PTID[180164] - MappingIndex: 82 PTID[180181] - MappingIndex: 83 PTID[180182] - MappingIndex: 84 PTID[180183] - MappingIndex: 85 PTID[180184] - MappingIndex: 86 PTID[180185] - MappingIndex: 87 PTID[180186] - MappingIndex: 88 PTID[180187] - MappingIndex: 89 PTID[180188] - MappingIndex: 90 PTID[180189] - MappingIndex: 91 PTID[180190] - MappingIndex: 92 PTID[180191] - MappingIndex: 93 PTID[180192] - MappingIndex: 94 PTID[180113] - MappingIndex: 95 PTID[180114] - MappingIndex: 96 PTID[180115] - MappingIndex: 97 PTID[180116] - MappingIndex: 98 PTID[180117] - MappingIndex: 99 PTID[180118] - MappingIndex: 100 PTID[180119] - MappingIndex: 101 PTID[180120] - MappingIndex: 102 PTID[180121] - MappingIndex: 103 PTID[180124] - MappingIndex: 106 PTID[180125] - MappingIndex: 107 PTID[180126] - MappingIndex: 108 PTID[180127] - MappingIndex: 109 PTID[180128] - MappingIndex: 110 PTID[180129] - MappingIndex: 111 PTID[180130] - MappingIndex: 112 PTID[180131] - MappingIndex: 113 PTID[180132] - MappingIndex: 114 PTID[180133] - MappingIndex: 115 PTID[180134] - MappingIndex: 116 PTID[180135] - MappingIndex: 117 PTID[180136] - MappingIndex: 118 PTID[180137] - MappingIndex: 119 PTID[180138] - MappingIndex: 120 PTID[180139] - MappingIndex: 121 PTID[180068] - MappingIndex: 122 PTID[180165] - MappingIndex: 123 PTID[180166] - MappingIndex: 124 PTID[180167] - MappingIndex: 125 PTID[180168] - MappingIndex: 126 PTID[180169] - MappingIndex: 127 PTID[180170] - MappingIndex: 128 PTID[180179] - MappingIndex: 129 PTID[330000] - MappingIndex: 130 PTID[330001] - MappingIndex: 131 PTID[330002] - MappingIndex: 132 PTID[330003] - MappingIndex: 133 PTID[330004] - MappingIndex: 134 PTID[330005] - MappingIndex: 135 PTID[220034] - MappingIndex: 136 PTID[330006] - MappingIndex: 137 PTID[330007] - MappingIndex: 138 PTID[330008] - MappingIndex: 139 PTID[330009] - MappingIndex: 140 PTID[330010] - MappingIndex: 141 PTID[330011] - MappingIndex: 142 PTID[220035] - MappingIndex: 143 PTID[320042] - MappingIndex: 144 PTID[320043] - MappingIndex: 145 PTID[320044] - MappingIndex: 146 PTID[320045] - MappingIndex: 147 PTID[320046] - MappingIndex: 148 PTID[320047] - MappingIndex: 149 PTID[320048] - MappingIndex: 150 PTID[320049] - MappingIndex: 151 PTID[320050] - MappingIndex: 152 PTID[320051] - MappingIndex: 153 PTID[320052] - MappingIndex: 154 PTID[320053] - MappingIndex: 155 PTID[320054] - MappingIndex: 156 PTID[320055] - MappingIndex: 157 PTID[320056] - MappingIndex: 158 PTID[320057] - MappingIndex: 159 PTID[320058] - MappingIndex: 160 PTID[320059] - MappingIndex: 161 PTID[320060] - MappingIndex: 162 PTID[320061] - MappingIndex: 163 PTID[320062] - MappingIndex: 164 PTID[220019] - MappingIndex: 165 PTID[220129] - MappingIndex: 166 PTID[220130] - MappingIndex: 168 PTID[220042] - MappingIndex: 169 PTID[220001] - MappingIndex: 170 PTID[220103] - MappingIndex: 171 PTID[220032] - MappingIndex: 172 PTID[220033] - MappingIndex: 173 PTID[220134] - MappingIndex: 174 PTID[220021] - MappingIndex: 175 PTID[220022] - MappingIndex: 176 PTID[220117] - MappingIndex: 177 PTID[220023] - MappingIndex: 178 PTID[220025] - MappingIndex: 180 PTID[220026] - MappingIndex: 181 PTID[220027] - MappingIndex: 182 PTID[220028] - MappingIndex: 183 PTID[220126] - MappingIndex: 184 PTID[220029] - MappingIndex: 185 PTID[220030] - MappingIndex: 186 PTID[220031] - MappingIndex: 187 PTID[220095] - MappingIndex: 189 PTID[40070] - MappingIndex: 190 PTID[40001] - MappingIndex: 191 PTID[40002] - MappingIndex: 192 PTID[40004] - MappingIndex: 193 PTID[40027] - MappingIndex: 194 PTID[40005] - MappingIndex: 195 PTID[40006] - MappingIndex: 196 PTID[40007] - MappingIndex: 197 PTID[40010] - MappingIndex: 199 PTID[40011] - MappingIndex: 200 PTID[40014] - MappingIndex: 201 PTID[60025] - MappingIndex: 204 PTID[60026] - MappingIndex: 205 PTID[60063] - MappingIndex: 206 PTID[60061] - MappingIndex: 207 PTID[60062] - MappingIndex: 208 PTID[60038] - MappingIndex: 209 PTID[60068] - MappingIndex: 210 PTID[60069] - MappingIndex: 211 PTID[60070] - MappingIndex: 212 PTID[310000] - MappingIndex: 213 PTID[310001] - MappingIndex: 214 PTID[310002] - MappingIndex: 215 PTID[310003] - MappingIndex: 216 PTID[310004] - MappingIndex: 217 PTID[310005] - MappingIndex: 218 PTID[310006] - MappingIndex: 219 PTID[310007] - MappingIndex: 220 PTID[310008] - MappingIndex: 221 PTID[310009] - MappingIndex: 222 PTID[310010] - MappingIndex: 223 PTID[310011] - MappingIndex: 224 PTID[310012] - MappingIndex: 225 PTID[310013] - MappingIndex: 226 PTID[310014] - MappingIndex: 227 PTID[310015] - MappingIndex: 228 PTID[310016] - MappingIndex: 229 PTID[60029] - MappingIndex: 230 PTID[60030] - MappingIndex: 231 PTID[60031] - MappingIndex: 232 PTID[60032] - MappingIndex: 233 PTID[60035] - MappingIndex: 234 PTID[60001] - MappingIndex: 235 PTID[60002] - MappingIndex: 236 PTID[60003] - MappingIndex: 237 PTID[60004] - MappingIndex: 238 PTID[60005] - MappingIndex: 239 PTID[60006] - MappingIndex: 240 PTID[60007] - MappingIndex: 241 PTID[60041] - MappingIndex: 243 PTID[60012] - MappingIndex: 244 PTID[60013] - MappingIndex: 245 PTID[60014] - MappingIndex: 247 PTID[60015] - MappingIndex: 248 PTID[60016] - MappingIndex: 249 PTID[60045] - MappingIndex: 250 PTID[60018] - MappingIndex: 251 PTID[60019] - MappingIndex: 252 PTID[60020] - MappingIndex: 253 PTID[60046] - MappingIndex: 254 PTID[60021] - MappingIndex: 255 PTID[60022] - MappingIndex: 256 PTID[60023] - MappingIndex: 257 PTID[60050] - MappingIndex: 258 PTID[60051] - MappingIndex: 259 PTID[60052] - MappingIndex: 260 PTID[60053] - MappingIndex: 261 PTID[60027] - MappingIndex: 262 PTID[60028] - MappingIndex: 263 PTID[60058] - MappingIndex: 264 PTID[60059] - MappingIndex: 265 PTID[60060] - MappingIndex: 266 PTID[190000] - MappingIndex: 267 PTID[190001] - MappingIndex: 268 PTID[190002] - MappingIndex: 269 PTID[190003] - MappingIndex: 270 PTID[190004] - MappingIndex: 271 PTID[190007] - MappingIndex: 272 PTID[190011] - MappingIndex: 273 PTID[190012] - MappingIndex: 274 PTID[190014] - MappingIndex: 275 PTID[190015] - MappingIndex: 276 PTID[190016] - MappingIndex: 277 PTID[190019] - MappingIndex: 278 PTID[190020] - MappingIndex: 279 PTID[190021] - MappingIndex: 280 PTID[360130] - MappingIndex: 281 PTID[360029] - MappingIndex: 282 PTID[360042] - MappingIndex: 283 PTID[360068] - MappingIndex: 284 PTID[360116] - MappingIndex: 285 PTID[360051] - MappingIndex: 286 PTID[360058] - MappingIndex: 287 PTID[360001] - MappingIndex: 288 PTID[360085] - MappingIndex: 289 PTID[360000] - MappingIndex: 290 PTID[360011] - MappingIndex: 291 PTID[360005] - MappingIndex: 293 PTID[360084] - MappingIndex: 294 PTID[320063] - MappingIndex: 295 PTID[320064] - MappingIndex: 296 PTID[320065] - MappingIndex: 297 PTID[320066] - MappingIndex: 298 PTID[320067] - MappingIndex: 299 PTID[320068] - MappingIndex: 300 PTID[320069] - MappingIndex: 301 PTID[320070] - MappingIndex: 302 PTID[320071] - MappingIndex: 303 PTID[320072] - MappingIndex: 304 PTID[320073] - MappingIndex: 305 PTID[320074] - MappingIndex: 306 PTID[320075] - MappingIndex: 307 PTID[320076] - MappingIndex: 308 PTID[320077] - MappingIndex: 309 PTID[320078] - MappingIndex: 310 PTID[320079] - MappingIndex: 311 PTID[320080] - MappingIndex: 312 PTID[320081] - MappingIndex: 313 PTID[320082] - MappingIndex: 314 PTID[320083] - MappingIndex: 315 PTID[360016] - MappingIndex: 316 PTID[360006] - MappingIndex: 317 PTID[360007] - MappingIndex: 318 PTID[360008] - MappingIndex: 319 PTID[360010] - MappingIndex: 320 PTID[360012] - MappingIndex: 321 PTID[360013] - MappingIndex: 322 PTID[360014] - MappingIndex: 323 PTID[360015] - MappingIndex: 324 PTID[360147] - MappingIndex: 325 PTID[360148] - MappingIndex: 326 PTID[360149] - MappingIndex: 327 PTID[360150] - MappingIndex: 328 PTID[350016] - MappingIndex: 329 PTID[350009] - MappingIndex: 330 PTID[350014] - MappingIndex: 331 PTID[350012] - MappingIndex: 332 PTID[350015] - MappingIndex: 333 PTID[320021] - MappingIndex: 335 PTID[320022] - MappingIndex: 336 PTID[320023] - MappingIndex: 337 PTID[320024] - MappingIndex: 338 PTID[320025] - MappingIndex: 339 PTID[320026] - MappingIndex: 340 PTID[320027] - MappingIndex: 341 PTID[320028] - MappingIndex: 342 PTID[320029] - MappingIndex: 343 PTID[320030] - MappingIndex: 344 PTID[320031] - MappingIndex: 345 PTID[320032] - MappingIndex: 346 PTID[320033] - MappingIndex: 347 PTID[320034] - MappingIndex: 348 PTID[320035] - MappingIndex: 349 PTID[320036] - MappingIndex: 350 PTID[320037] - MappingIndex: 351 PTID[320038] - MappingIndex: 352 PTID[320039] - MappingIndex: 353 PTID[320040] - MappingIndex: 354 PTID[320041] - MappingIndex: 355 PTID[350004] - MappingIndex: 356 ```

With this information we can create the required parameter.json. I've retrieved this via adb backup from an emulated android device after connecting to the ism7. Since it's a Xamarin app the iOS app should create the same log, but I don't know how to retrieve it from the device.

If you are able to retrieve the log, you can use the smartsetlogdecryptor (from the latest build) to get the plaintext. Please redact your password before uploading the log file.

The log file also contains a full dump of the communication, so this should be enough to add to support for TGB-2.

jatty commented 1 year ago

Unfortunately, it took me a while to reactivate my old Android phone. But here we are. https://github.com/jatty/ism7mqtt/blob/master/smartset-decrypter.log

zivillian commented 1 year ago

This look's good! I'll try to build something - hopefully I have something tomorrow.

zivillian commented 1 year ago

@jatty I hand crafted a parameter.json from your log file - can you test it with the binaries from the tgb branch?

jatty commented 1 year ago

@jatty I hand crafted a parameter.json from your log file - can you test it with the binaries from the tgb branch?

@zivillian Thank you very much. Yes, this works perfect with my TGB2.

ism7mqtt    | publishing mqtt with topic 'Wolf/192.168.1.42/BM-2_0x35/Funktion_des_Bedienmoduls/value' '0'
ism7mqtt    | publishing mqtt with topic 'Wolf/192.168.1.42/BM-2_0x35/Funktion_des_Bedienmoduls/text' 'System'
ism7mqtt    | publishing mqtt with topic 'Wolf/192.168.1.42/BM-2_0x35/Zeitprogramm_Zirkulation_Heizgeraet/value' '1'
ism7mqtt    | publishing mqtt with topic 'Wolf/192.168.1.42/BM-2_0x35/Zeitprogramm_Zirkulation_Heizgeraet/text' '1'
ism7mqtt    | publishing mqtt with topic 'Wolf/192.168.1.42/BM-2_0x35/Raumeinflussfaktor' '4'
ism7mqtt    | publishing mqtt with topic 'Wolf/192.168.1.42/BM-2_0x35/Aussenfuehler_gemittelt_Berechnungszeitraum' '3'
[...]
zivillian commented 1 year ago

That's great - I started to build a console application to read the parameters directly from the ISM by calling the binaries from the android app. It looks promising - the first prototype is working with my installation.

zivillian commented 1 year ago

The latest binaries from the tgb2 branch contain an ism7config (instead of ism7parameter). It connects directly to the ISM7 to "extract" the parameters instead of relying on the smartset sdf file.

@jatty Can you test and verify that it produces a parameter.json (which is somehow similar to my hand crafted version)?

jatty commented 1 year ago

The latest binaries from the tgb2 branch contain an ism7config (instead of ism7parameter). It connects directly to the ISM7 to "extract" the parameters instead of relying on the smartset sdf file.

@jatty Can you test and verify that it produces a parameter.json (which is somehow similar to my hand crafted version)?

On linux it doesn't work yet - I've been trying ism7config-linux-x64.zip but got an error:

# ./ism7config
Unhandled exception. System.NotImplementedException: The method or operation is not implemented.
   at ism7config.Program.<>c.<Main>b__0_2(String x) in /home/runner/work/ism7mqtt/ism7mqtt/src/ism7config/Program.cs:line 97
   at lucon.common.secret.Encryption.StreamHandlerDisposable.CreateReaderStream(String path, Func`2 getStream, Boolean useEncryption)
   at lucon.common.secret.Encryption.StreamHandlerDisposable..ctor(String path, Func`2 getStream, Boolean useEncryption)
   at lucon.common.secret.XmlSerialization.DeserializeXmlFile[DeserializeType](XmlSerializer serializer, String path, Func`2 getStream, Boolean useEncryption)
   at lucon.common.secret.XmlSerialization.DeserializeXmlFile[DeserializeType](String path, Func`2 getStream, Boolean useEncryption)
   at LuCon.Common.ConfigService.ParameterTemplateServiceImpl..ctor(FileSystemSettings settings, Func`2 getStream)
   at ism7config.Program.Main(String[] args) in /home/runner/work/ism7mqtt/ism7mqtt/src/ism7config/Program.cs:line 88
   at ism7config.Program.<Main>(String[] args)
zivillian commented 1 year ago

@jatty thanks for testing - I've fixed the linux compatibilty in the latest build. Can you try again? You may need to override your openssl settings like this:

# OPENSSL_CONF=openssl.cnf ./ism7config -i <your ip> -p <your password>
sniesen commented 1 year ago

My setup is a CHA-10 combined with a TGB-2 as a fallback and the ISM7i module. I, too can't get the Windows software to connect to my ISM7i locally.

Does anybody know if there's a newer version available from Wolf?

zivillian commented 1 year ago

@sniesen I've published a new version, which should also work for your setup. It no longer needs the windows application but uses a separate tool (ism7config) to create the parameter.json by directly connecting to your ISM7i - can you test the latest binaries and create a new issue if it still doesn't work?