UncleSamSwiss / ioBroker.luxtronik2

ioBroker adapter that connects to Luxtronik heatpump controllers
Apache License 2.0
11 stars 13 forks source link

Timer table configurations #184

Open TbsJah opened 2 years ago

TbsJah commented 2 years ago

Is there a possibility that the time tables are also retrieved and editable?

` // ---- Timer table configurations ----

    // Activated timer table for heating operation.
    // Possible values: 0=week (monday-sunday), 1=5+2 (monday-friday), 2=days (mo, tue, ...)
    'heatingOperationTimerTableSelected': heatpumpParameters[222],
    'heatingOperationTimerTableSelectedString': utils.createTimerTableTypeString(heatpumpParameters[222]), // string representation
    // heating operation table 0: week
    'heatingOperationTimerTableWeek': utils.createTimerTable(heatpumpParameters, 223, 3), // 223..528
    // heating operation table 1: 5+2
    'heatingOperationTimerTable52MonFri': utils.createTimerTable(heatpumpParameters, 229, 3), // 229..234
    'heatingOperationTimerTable52SatSun': utils.createTimerTable(heatpumpParameters, 235, 3), // 235..240
    // heating operation table 2: day
    'heatingOperationTimerTableDaySunday': utils.createTimerTable(heatpumpParameters, 241, 3), // 241..246
    'heatingOperationTimerTableDayMonday': utils.createTimerTable(heatpumpParameters, 247, 3), // 247..252
    'heatingOperationTimerTableDayTuesday': utils.createTimerTable(heatpumpParameters, 253, 3), // 253..258
    'heatingOperationTimerTableDayWednesday': utils.createTimerTable(heatpumpParameters, 259, 3), // 259..264
    'heatingOperationTimerTableDayThursday': utils.createTimerTable(heatpumpParameters, 265, 3), // 265..270
    'heatingOperationTimerTableDayFriday': utils.createTimerTable(heatpumpParameters, 271, 3), // 271..276
    'heatingOperationTimerTableDaySaturday': utils.createTimerTable(heatpumpParameters, 277, 3), // 277..282

    // Activated timer table for hot water operation.
    // Possible values: 0=week (monday-sunday), 1=5+2 (monday-friday), 2=days (mo, tue, ...)
    'hotWaterOperationTimerTableSelected': heatpumpParameters[405],
    'hotWaterOperationTimerTableSelectedString': utils.createTimerTableTypeString(heatpumpParameters[405]), // string representation

    // Important: hot water operation table specifies operation in inverse logic. Therefore swap the on/off times.
    // hot water operation table 0: week.
    'hotWaterOperationTimerTableWeek': utils.createTimerTable(heatpumpParameters, 406, 5, true), // 406..415
    // hot water operation table 1: 5+2
    'hotWaterOperationTimerTable52MonFri': utils.createTimerTable(heatpumpParameters, 416, 5, true), // 416..425
    'hotWaterOperationTimerTable52SatSun': utils.createTimerTable(heatpumpParameters, 426, 5, true), // 426..435
    // hot water operation table 2: day
    'hotWaterOperationTimerTableDaySunday': utils.createTimerTable(heatpumpParameters, 436, 5, true), // 436..445
    'hotWaterOperationTimerTableDayMonday': utils.createTimerTable(heatpumpParameters, 446, 5, true), // 446..455
    'hotWaterOperationTimerTableDayTuesday': utils.createTimerTable(heatpumpParameters, 456, 5, true), // 456..465
    'hotWaterOperationTimerTableDayWednesday': utils.createTimerTable(heatpumpParameters, 466, 5, true), // 466..475
    'hotWaterOperationTimerTableDayThursday': utils.createTimerTable(heatpumpParameters, 476, 5, true), // 476..485
    'hotWaterOperationTimerTableDayFriday': utils.createTimerTable(heatpumpParameters, 486, 5, true), // 486..495
    'hotWaterOperationTimerTableDaySaturday': utils.createTimerTable(heatpumpParameters, 496, 5, true), // 496..505

    // Activated timer table for hot water circulation pump.
    // Possible values: 0=week (monday-sunday), 1=5+2 (monday-friday), 2=days (mo, tue, ...)
    'hotWaterCircPumpTimerTableSelected': heatpumpParameters[506],
    'hotWaterCircPumpTimerTableSelectedString': utils.createTimerTableTypeString(heatpumpParameters[506]), // string representation
    // hot water circulation pump table 0: week
    'hotWaterCircPumpTimerTableWeek': utils.createTimerTable(heatpumpParameters, 507, 5), // 507..516
    // hot water circulation pump table 1: 5+2
    'hotWaterCircPumpTimerTable52MonFri': utils.createTimerTable(heatpumpParameters, 517, 5), // 517..526
    'hotWaterCircPumpTimerTable52SatSun': utils.createTimerTable(heatpumpParameters, 527, 5), // 527..536
    // hot water circulation pump table 2: day
    'hotWaterCircPumpTimerTableDaySunday': utils.createTimerTable(heatpumpParameters, 537, 5), // 537..546
    'hotWaterCircPumpTimerTableDayMonday': utils.createTimerTable(heatpumpParameters, 547, 5), // 547..556
    'hotWaterCircPumpTimerTableDayTuesday': utils.createTimerTable(heatpumpParameters, 557, 5), // 557..566
    'hotWaterCircPumpTimerTableDayWednesday': utils.createTimerTable(heatpumpParameters, 567, 5), // 567..576
    'hotWaterCircPumpTimerTableDayThursday': utils.createTimerTable(heatpumpParameters, 577, 5), // 577..586
    'hotWaterCircPumpTimerTableDayFriday': utils.createTimerTable(heatpumpParameters, 587, 5), // 587..596
    'hotWaterCircPumpTimerTableDaySaturday': utils.createTimerTable(heatpumpParameters, 597, 5), // 597..606

    'hotWaterCircPumpOnTime': heatpumpParameters[697], // Time in minutes the circ pump is turned on within one cycle.
    'hotWaterCircPumpOffTime': heatpumpParameters[698] // Time in minutes the circ pump is turned off within one cycle.`
derelvis commented 1 year ago

That would be really, really awesome!! If we can support in any way, please let us know.

derelvis commented 1 year ago

I cloned the repo and fiddled around a little bit. So it seems I made some progress. I can see the datapoints now in objects and the correct values from my pump in the overview. But the data type is not yet correct when I open it. Looks like object or json. Could not yet find out what to set or if it even needs to be converted.

objects - iobroker-TEST 2022-11-24 08-25-06

objects - iobroker-TEST 2022-11-24 08-28-04

logs - iobroker-TEST 2022-11-24 08-32-19

Already tried out some different types and things from other adapters, not solved yet:

    heatingOperationTimerTableWeek: {
    type: 'object',
        common: {
            name: 'heating Operation Timer Table Week',
            type: 'json',
            role: 'value',
            read: true,
            write: true,
            desc: 'heating Operation Timer Table Week',
        },
},
    hotWaterOperationTimerTableWeek: {
    type: 'json',
        common: {
            name: 'hotWater Operation Timer Table Week',
            type: 'string',
            role: 'value',
            read: true,
            write: true,
            desc: 'hotWater Operation Timer Table Week',
        },
},
    hotWaterCircPumpTimerTableWeek: [
        {
            _id: 'hotWaterCircPumpTimerTableWeek',
            type: 'state',
            common: {
                name: 'hotWaterCircPumpTimerTableWeek Json',
                type: 'string',
                role: 'value',
                read: true,
                write: true,
                desc: 'set hotWaterCircPumpTimerTableWeek with a json',
            },
            native: {},
        },
    ],

Maybe someone has some ideas or even knows the solution. It's the first time I try to do something like this :D Until now it is only a readonly datapoint, what's fine for testing.