zivillian / ism7mqtt

GNU General Public License v3.0
57 stars 11 forks source link

time programs not returned #83

Open alexkno79 opened 10 months ago

alexkno79 commented 10 months ago

Some values like the daily time programs seem not to be rreturned by ism7mqtt although in parameter.json:

e.g ID 320001:

parameter.json:

{
    "ReadBusAddress": "0x35",
    "WriteBusAddress": "0x30",
    "DeviceTemplateId": 340000,
    "Parameter": [
        320000,
        320001,
        320002,
        320003,
        320004,
        320005,
        320006,
        320007,
        320008,

and in parameter template:

 <OtherParameterDescriptor PTID="320002">
      <Name>Mi</Name>
      <UnitName>Uhr</UnitName>
      <RemoveConditionId>False</RemoveConditionId>
      <ReadOnlyConditionId>False</ReadOnlyConditionId>
      <InactiveConditionId>False</InactiveConditionId>
      <IsSnapshotTransmitEnabled>true</IsSnapshotTransmitEnabled>
      <Decimals>0</Decimals>
      <ControlType>DaySwitchTimes</ControlType>
    </OtherParameterDescriptor>

but I don't see them returned. Any idea? I mean not crucial at all (it's just to have an overview of my stored timers)

zivillian commented 10 months ago

The converter is not yet implemented

    <Timeprog03F1ConverterTemplate CTID="320002">
      <Type>TIMEPROG_03F1</Type>
      <DayOfWeek>3</DayOfWeek>
      <HeatprogNumber>1</HeatprogNumber>
      <ProgramType>0</ProgramType>
      <HzkInstance>0</HzkInstance>
    </Timeprog03F1ConverterTemplate>

I'm not sure, which telegram number are used so I think we need some kind of trace from the smartset app to get any further.

alexkno79 commented 10 months ago

Below an extract from the ism7proxy when showing the times of heating schedule No1

> (000000560004):<?xml version="1.0" encoding="utf-8"?><tbreq bn="400" gw="1" ae="false" ty="remove" />
< (000000710005)
< (efbbbf):<?xml version="1.0" encoding="utf-8"?><tbres ts="2023-11-14T23:00:00" bn="400" gw="1" st="OK" emsg=""></tbres>
> (000001f60004):<?xml version="1.0" encoding="utf-8"?><tbreq bn="400" gw="1" ae="true" ty="push"><s03f1rd se="D;194" ba="0x35" hp="1" ty="0" hk="0" d="0" /><s03f1rd se="D;188" ba="0x35" hp="1" ty="0" hk="0" d="1" /><s03f1rd se="D;189" ba="0x35" hp="1" ty="0" hk="0" d="2" /><s03f1rd se="D;190" ba="0x35" hp="1" ty="0" hk="0" d="3" /><s03f1rd se="D;191" ba="0x35" hp="1" ty="0" hk="0" d="4" /><s03f1rd se="D;192" ba="0x35" hp="1" ty="0" hk="0" d="5" /><s03f1rd se="D;193" ba="0x35" hp="1" ty="0" hk="0" d="6" /></tbreq>
< (000003810005)
< (efbbbf):<?xml version="1.0" encoding="utf-8"?><tbres bn="400" gw="1" st="OK" ts="2023-11-14T23:00:07" emsg="">
< <s03f2rs se="D;194" ba="0x35" hp="1" ty="0" hk="0" d="0" db="2C01FE0100000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;188" ba="0x35" hp="1" ty="0" hk="0" d="1" db="FF00B30100000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;189" ba="0x35" hp="1" ty="0" hk="0" d="2" db="FF00B30100000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;190" ba="0x35" hp="1" ty="0" hk="0" d="3" db="FF00B30100000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;191" ba="0x35" hp="1" ty="0" hk="0" d="4" db="FF00B30100000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;192" ba="0x35" hp="1" ty="0" hk="0" d="5" db="FF00B30100000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;193" ba="0x35" hp="1" ty="0" hk="0" d="6" db="2C01FE0100000000000000000000000000000000" st="OK"/>
< </tbres>

Or similar for hot water schedule 3:

> (00000002000f000100000002000f0002)
< (00000002000f)
< (0001)
< (00000002000f0002)
> (000000560004):<?xml version="1.0" encoding="utf-8"?><tbreq bn="400" gw="1" ae="false" ty="remove" />
< (000000710005)
< (efbbbf):<?xml version="1.0" encoding="utf-8"?><tbres ts="2023-11-14T22:59:13" bn="400" gw="1" st="OK" emsg=""></tbres>
> (00000002000f0003)
< (00000002000f)
< (0003)
> (000001f60004):<?xml version="1.0" encoding="utf-8"?><tbreq bn="400" gw="1" ae="true" ty="push"><s03f1rd se="D;244" ba="0x35" hp="3" ty="1" hk="0" d="0" /><s03f1rd se="D;238" ba="0x35" hp="3" ty="1" hk="0" d="1" /><s03f1rd se="D;239" ba="0x35" hp="3" ty="1" hk="0" d="2" /><s03f1rd se="D;240" ba="0x35" hp="3" ty="1" hk="0" d="3" /><s03f1rd se="D;241" ba="0x35" hp="3" ty="1" hk="0" d="4" /><s03f1rd se="D;242" ba="0x35" hp="3" ty="1" hk="0" d="5" /><s03f1rd se="D;243" ba="0x35" hp="3" ty="1" hk="0" d="6" /></tbreq>
< (000003810005)
< (efbbbf):<?xml version="1.0" encoding="utf-8"?><tbres bn="400" gw="1" st="OK" ts="2023-11-14T22:59:41" emsg="">
< <s03f2rs se="D;244" ba="0x35" hp="3" ty="1" hk="0" d="0" db="D1010A0500000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;238" ba="0x35" hp="3" ty="1" hk="0" d="1" db="A401C00300000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;239" ba="0x35" hp="3" ty="1" hk="0" d="2" db="A401C00300000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;240" ba="0x35" hp="3" ty="1" hk="0" d="3" db="A401C00300000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;241" ba="0x35" hp="3" ty="1" hk="0" d="4" db="A401C00300000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;242" ba="0x35" hp="3" ty="1" hk="0" d="5" db="A401C00300000000000000000000000000000000" st="OK"/>
< <s03f2rs se="D;243" ba="0x35" hp="3" ty="1" hk="0" d="6" db="D101380400000000000000000000000000000000" st="OK"/>
< </tbres>

Does it help?

zivillian commented 10 months ago

This looks promising.

zivillian commented 1 month ago

after updating ism7config to use the smartset app binaries it looks like those IDs are no longer part of the parameter.json - so the new question is how do we know which IDs to request - and when. Can you run ism7config from the latest release and verify that the ids are still in your config?

alexkno79 commented 1 month ago

Thanks a lot! Running latest docker master version from 2024-08-25 I still receive them in the parameter.json. see attached parameter_master-1.json

alexkno79 commented 2 weeks ago

For the question "when to requests": For my usecase it would be sufficient to pull them manually (a Kind of "get" topic) or after setting new values to those.

Ideally I would store the calandar times once a day or so in an array. If I have a need (e.g weather forecast shows upcoming sun at noon) I would overwrite for the current day the end time or start time and thus shorten heating time.

Then again at midnight I restore the previously stored values.

So in the end I would need to pull the values once a day and maybe pull again after a write of the values.