Skip to content

Order of devices changed #565

@raspies

Description

@raspies

Since a couple of days my values where not reported any more. After some debugging I found out that either a new device is reported by Viessmann API or the order has changed

"devices": [
                        {
                            "gatewaySerial": "....",
                            "id": "gateway",
                            "boilerSerial": null,
                            "boilerSerialEditor": null,
                            "bmuSerial": null,
                            "bmuSerialEditor": null,
                            "createdAt": "2025-06-10T11:30:26.939Z",
                            "editedAt": "2025-06-10T11:30:26.939Z",
                            "modelId": "Heatbox1",
                            "status": "Online",
                            "deviceType": "vitoconnect",
                            "roles": [
                                "type:gateway;VitoconnectOpto1",
                                "type:legacy"
                            ],
                            "isBoilerSerialEditable": false,
                            "brand": null,
                            "translationKey": "Heatbox1"
                        },
                        {
                            "gatewaySerial": "...",
                            "id": "0",
                            "boilerSerial": "...",
                            "boilerSerialEditor": "DeviceCommunication",
                            "bmuSerial": "...",
                            "bmuSerialEditor": "DeviceCommunication",
                            "createdAt": "2025-06-10T11:30:26.939Z",
                            "editedAt": "2025-06-10T11:31:28.401Z",
                            "modelId": "CU401B_S",
                            "status": "Online",
                            "deviceType": "heating",
                            "roles": [
                                "capability:consumptionReport;electric",
                                "capability:monetization;AdvancedReport",
                                "capability:productionReport;electric",
                                "capability:productionReport;thermal",
                                "capability:service;AdvancedReport",
                                "type:brand;Viessmann",
                                "type:cooling;integrated",
                                "type:dhw;integrated",
                                "type:heating;integrated",
                                "type:heatpump",
                                "type:legacy",
                                "type:product;CU401B"
                            ],
                            "isBoilerSerialEditable": false,
                            "brand": "Viessmann",
                            "translationKey": "CU401B_S_22"
                        }

In the example it is proposed to always take the device[0] which is now the opto-connect-gate way and not the heating anymore (https://github.com/openviess/PyViCare/blob/master/README.md?plain=1#L74)

Either simply hardcode the correct index or use something like this to ignore the "Heatbox1"-Gateways:

for device in vicare.devices:
    if (device.device_model != "Heatbox1" ):
        break

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions