zivillian / ism7mqtt

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

No periodical updates for several ism7 values #42

Closed krkuhlmann closed 1 year ago

krkuhlmann commented 1 year ago

I have an issue with some of the values only being updated directly after starting the container and not being updated anymore. I switched on debugging and there are only a subset of values on the same bus 0x08 that get updated every now and then. I would be fine with it if that was because of the values not having changed between queries but the smart set portal and the value on the display of the BM-2 terminal show different values. Any ideas?

krkuhlmann commented 1 year ago

The more i look into the code, the more I get the feeling that this issue has nothing to do with the service itself. It seems to me that the ISM7 does not accept the InfoRead.Intervall Property or at least it does not send updates for some of the parameters even if their value changes on the device. I think it would be good to have a separate forcePull_parameter.json file with the same structure as the parameter.json containing those parameters that are not automatically updated by ISM7 but can be pulled explicitely by the service. Or some kind of additional flag foreach parameterId in the parameter.json which can be switched to true by the user for those parameters not being reported by ism7.

The service could then use this information and send a recurring (every Interval) TelegramBundleReq with TelegramBundleType = TelegramBundleType.pull and skip those explicitelyupdated valued for registration.

krkuhlmann commented 1 year ago

I have adapted the code to meet my requirements and it's working so far. I would like to to tak a look into it and maybe merge it. But how do i do this? I can't push to your repository.

zivillian commented 1 year ago

Just create a fork, push your changes there and open a PR: https://docs.github.com/de/get-started/quickstart/contributing-to-projects

But I'd like to go one step back. Can you upload you smartset db, so I can look at your parameters? I also would like to check how the smartset app behaves. Maybe we need to request something else or are missing a parameter.

krkuhlmann commented 1 year ago

Sure, here you go. smartsetpc.zip

zivillian commented 1 year ago

Do you have an example for a parameter which is not reported despite changed values?

krkuhlmann commented 1 year ago

0x03 27059 Energiemenge HZ 0x03 27060 Energiemenge WW 0x03 27061 Energiemenge Kühl.

zivillian commented 1 year ago

I have a guess what's wrong. Those parameters are of type UINT32 and consist of two telegrams each (high and low). If the ISM only sends the changed low telegram the converter waits until it also get's a changed high value.

There was a similar bug with the solar statistics converter.

To confirm this it would be great if you can modify your paramter.json to contain only the three affected parameters and let it run for an hour or so with debug output enabled. I expect to see push reponses from the ism but no MQTT update, because only half of the required telegrams is received.

PS: When posting your debug log, please remove the password

krkuhlmann commented 1 year ago

Seems that you were right with your expectation.

Value of "0x03 27059" (Energiemenge_HZ) changed from 2891 to 2892 and it seem that there came a response for that value.

_zivillian-ism7mqtt-master-test_logs.txt

zivillian commented 1 year ago

Should be fixed in master - can you test if this now also works for you?

krkuhlmann commented 1 year ago

Its working! Thank you so much!

_zivillian-ism7mqtt-master_logs.txt