zivillian / ism7mqtt

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

ism7mqtt on raspberry pi ? #18

Closed alaska3586 closed 2 years ago

alaska3586 commented 2 years ago

My configuration: WOLF system with ISM7 module shall be cyclicly monitored from a raspberry pi version4, latest OS version. I connected from a PC to Smartset app and received the parameter.json file via ism7parameter program.

On the raspberry PI , I unpacked ism7mqtt-linux-x64.zip and set execution permission to ism7mqtt. parameter.json was copied in this program directory.

Calling ism7mqtt brouhght this message: ./ism7mqtt: binary file cannot be executed: Error in program file format

Is the ism7mqtt-linux-x64.zip package the right one for a raspberry PI? Is this a supported system platform for the ism mqtt package? Thanks for any advice ...

zivillian commented 2 years ago

The correct package for raspberry is ism7mqtt-linux-arm.zip

alaska3586 commented 2 years ago

Thanks, that worked well.

After having launched the ism7mqtt program like that: ./ism7mqtt -m localhost -i 192.168.178. -p -t ./parameter.json

this message comes up: System.InvalidOperationException: There is an error in XML document (0, 0). ---> System.Xml.XmlException: Root element is missing.

The parameter.json file seems to be ok, please refer to file attached. Any ideas?

parameter.json.txt

zivillian commented 2 years ago

do have a stacktrace or any additional output? I'm not sure, which XML cannot be parsed.

alaska3586 commented 2 years ago

error.log

Pls. find attached the shell output of ./ism7mqtt -m localhost -i 192.168.178.x -p xyz -t ./parameter.json

No additional output files in working directory - is the any possibility to add a debug level?

alaska3586 commented 2 years ago

executed with the -d option: both xml output (with neutralized password) from raspberry and smrtsetpc.sdf (zipped) from windows computer attached.

smartsetpc.zip error2.log

alaska3586 commented 2 years ago

Just noticed that the directory /home/runner which is mentioned in error.log does not exist on the raspberry installation: /home/runner/work/ism7mqtt/ism7mqtt/src/ism7mqtt/ISM7/Ism7Client.cs

zivillian commented 2 years ago

That's interesting... It looks, like your ISM is sending an empty response:

<
System.InvalidOperationException: There is an error in XML document (0, 0).

< is the prefix for every received message, but there is no message.

Your ISM version also looks outdated, mine is 300.10.1.300.300.1 - can you try to update your BM or ISM? If this is not possible or doesn't work I could build a debugging version, which dumps more information and gracefully handles empty response so we can further investigate this.

Another option would be to remove all devices and parameters - except one - from the parameters.json to check if there is an issue with one of the parameters or devices. If it works with the minimal parameters.json you could try to find the broken device or parameter via trial and error.

Just noticed that the directory /home/runner which is mentioned in error.log does not exist on the raspberry installation:

That's correct and expected, since this is the path to the file on the machine which built the binary (which is a virtual machine hosted by github and executing the build actions).

alaska3586 commented 2 years ago

Cool - will try firmware Update of ISM first.

alaska3586 commented 2 years ago

I now tried editing of the parameter.json file by removing the last 3 {[ --- ]} enumerations:

Output look pretty promising, pls. refer to error3.log attached: Since I started the last version, mqtt repeatedly reports any value changed, as expected. However, I do not really know "what" is removed now (TemplateID 19000 / 2000 / 6000) and which data may be missing. Analysis of initial "full" payload seems to indicate that data of the solarthermic roof panel may not be included, which I want to supervise.

error3.log

alaska3586 commented 2 years ago

Update: all 3 templates with TemplateID 6000, 2000, 19000 bring the XML document (0, 0) error message.

zivillian commented 2 years ago

However, I do not really know "what" is removed now (TemplateID 19000 / 2000 / 6000) and which data may be missing.

You've removed the SM1 (Solarmodul), MK (Mischerkreis) and GW (ISM7) devices. All values for those devices will be missing.

Can you try to find out, if only one or some of the parameter for those three devices are broken? You can modify your parameter.json to a minimal version like:

{
  "Devices": [
    {
      "ReadBusAddress": "0x00",
      "DeviceTemplateId": 19000,
      "Parameter": [
        19000
      ]
    }
  ]
}

I've created a debugging version, which only logs empty messages instead of crashing - can you try it out and check if it works and which parameter is not reported in the initial response? Or just run it three time with only one of the three devices at a time and post the output?

alaska3586 commented 2 years ago

Will do during the Evening. The current solution already works perfect, even without upgrading firmware. Thanks for your work- great!

Holen Sie sich Outlook für Androidhttps://aka.ms/AAb9ysg


From: zivillian @.> Sent: Tuesday, March 8, 2022 7:29:07 PM To: zivillian/ism7mqtt @.> Cc: alaska3586 @.>; Author @.> Subject: Re: [zivillian/ism7mqtt] ism7mqtt on raspberry pi ? (Issue #18)

However, I do not really know "what" is removed now (TemplateID 19000 / 2000 / 6000) and which data may be missing.

You've removed the SM1 (Solarmodul), MK (Mischerkreis) and GW (ISM7) devices. All values for those devices will be missing.

Can you try to find out, if only one or some of the parameter for those three devices are broken? You can modify your parameter.json to a minimal version like:

{ "Devices": [ { "ReadBusAddress": "0x00", "DeviceTemplateId": 19000, "Parameter": [ 19000 ] } ] }

I've created a debugging versionhttps://github.com/zivillian/ism7mqtt/actions/runs/1953129170, which only logs empty messages instead of crashing - can you try it out and check if it works and which parameter is not reported in the initial response? Or just run it three time with only one of the three devices at a time and post the output?

— Reply to this email directly, view it on GitHubhttps://github.com/zivillian/ism7mqtt/issues/18#issuecomment-1062078551, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYCRKQTCGKO5GF56POQI3MLU66L7HANCNFSM5QBMYVZQ. You are receiving this because you authored the thread.Message ID: @.***>

alaska3586 commented 2 years ago

Test with original program

Tested parameter.json including (templateID /parameter) (19000 / 19000) (19000 / 19021) ( 2000 / 2009) ( 2000 / 30010) ( 6000 / 6000) ( 6000 / 6038) All test were negative, producing "an error in XML document (0, 0)"

Test with debug version

Test with original parameter.json file including TemplateID 19000 / 2000 / 6000: ./ism7mqtt -m localhost -i 192.168.178.xx -p xxxxxxxx -t ./parameter.json -d brought no reaction, neither console output nor MQTT messages.

zivillian commented 2 years ago

By no reaction you mean actually nothing at all? Not even the direct-logon-request? Sounds like your ism7 hangs and won't even reply to the TCP connect. Have you tried waiting a few minutes? I've seen something like this during my initial development, but after a few seconds (or minutes) it started working again.

zivillian commented 2 years ago

I've also deployed the debugging version locally and it works as expected...

alaska3586 commented 2 years ago

Will Start over tomorrow wirh the debug Version again. Thx.

alaska3586 commented 2 years ago

New day, new try - success! The debug version identified SM1_0x76 solar module and MM_0x51 mixer module, delivering all relevant values.

After program start, this mssage appears: Received empty xml of type 'TgrBundleResp' - skipping dispatch (raw '000000000005') - evtl. the template for ISM GW gateway? output.txt