Hallo Bernt,
Dank voor je snelle antwoord.
Jammer dat Sonoff zelf “nog” niet zo ver is. Aangezien het wel mogelijk is.
Dan maar afwachten.
Groet,
Ben
I also have the SONOFF SWV-ZF2E and, from what I can see in this thread, nobody has managed to get it working properly with Homey yet, so we are all still waiting for proper support.
If it helps development, I have the device available and I can provide a full Zigbee interview, logs, screenshots, device information, or test any changes you need.
Just let me know what you need.
Any word on Homey support on the Sonoff app for this device yet?
Is Hydro DUO SWV-ZF2E now officially supported by the Homey Sonoff Zigbee app, including independent control of both channels and flow-meter data?
Nope - it still is added as an Unknown Zigbee device. It allows manualling switching on/off both valves in the Homey device, but for reasons unknown to me there is only one flow card available for switching on (or off) and it switches only the first valve.
@Doekse Why can we switch both valves on/off manually in the Homey device, but don’t have the flow cards to do so? Seems to me as a bug in the generic Zigbee driver: Homey should either know that there are two on/off switches or it doesn’t. Currently the Homey device knows it and the flows don’t know it - that’s strange.
Below you can see the interview of a current Sonoss Duo. It differs a bit from the one @Bernt_Brundtland posted on 9th July. It has a slighlty newer software and one additional input cluster.
"ids": {
"modelId": "SWV-ZF2",
"manufacturerName": "SONOFF"
},
"endpoints": {
"ieeeAddress": "a4:c1:38:d4:b6:c1:a5:6d",
"networkAddress": 15922,
"modelId": "SWV-ZF2",
"manufacturerName": "SONOFF",
"endpointDescriptors": [
{
"status": "SUCCESS",
"nwkAddrOfInterest": 15922,
"_reserved": 28,
"endpointId": 1,
"applicationProfileId": 260,
"applicationDeviceId": 2,
"applicationDeviceVersion": 0,
"_reserved1": 0,
"inputClusters": [
0,
1,
3,
6,
32,
64599,
64529,
1028
],
"outputClusters": [
3,
25
]
},
{
"status": "SUCCESS",
"nwkAddrOfInterest": 15922,
"_reserved": 12,
"endpointId": 2,
"applicationProfileId": 260,
"applicationDeviceId": 2,
"applicationDeviceVersion": 0,
"_reserved1": 0,
"inputClusters": [
0,
6
],
"outputClusters":
}
],
"deviceType": "enddevice",
"receiveWhenIdle": false,
"swBuildId": "1.0.9",
"capabilities": {
"alternatePANCoordinator": false,
"deviceType": false,
"powerSourceMains": false,
"receiveWhenIdle": false,
"security": false,
"allocateAddress": true
},
"pollControl": {
"checkInInterval": 14400,
"longPollInterval": 6480,
"shortPollInterval": 1,
"shortPollWritten": false,
"longPollWritten": true
},
"extendedEndpointDescriptors": {
"1": {
"clusters": {
"basic": {
"attributes": [
{
"acl": [
"readable"
],
"id": 0,
"dataTypeId": 32,
"name": "zclVersion",
"value": 8
},
{
"acl": [
"readable"
],
"id": 1,
"dataTypeId": 32,
"name": "appVersion",
"value": 16
},
{
"acl": [
"readable"
],
"id": 3,
"dataTypeId": 32,
"name": "hwVersion",
"value": 0
},
{
"acl": [
"readable"
],
"id": 4,
"dataTypeId": 66,
"name": "manufacturerName",
"value": "SONOFF"
},
{
"acl": [
"readable"
],
"id": 5,
"dataTypeId": 66,
"name": "modelId",
"value": "SWV-ZF2"
},
{
"acl": [
"readable"
],
"id": 6,
"dataTypeId": 66,
"name": "dateCode",
"value": "20260724"
},
{
"acl": [
"readable"
],
"id": 7,
"dataTypeId": 48,
"name": "powerSource",
"value": "battery"
},
{
"acl": [
"readable"
],
"id": 16384,
"dataTypeId": 66,
"name": "swBuildId",
"value": "1.0.9"
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 3
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"powerConfiguration": {
"attributes": [
{
"acl": [
"readable"
],
"id": 32,
"dataTypeId": 32,
"name": "batteryVoltage",
"value": 25
},
{
"acl": [
"readable",
"reportable"
],
"id": 33,
"dataTypeId": 32,
"name": "batteryPercentageRemaining",
"value": 80,
"reportingConfiguration": {
"direction": "reported",
"attributeDataType": 32,
"minInterval": 1620,
"maxInterval": 1740,
"minChange": 2,
"status": "SUCCESS"
}
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 3
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"identify": {
"attributes": [
{
"acl": [
"readable",
"writable"
],
"id": 0,
"dataTypeId": 33,
"name": "identifyTime",
"value": 0
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 2
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"onOff": {
"attributes": [
{
"acl": [
"readable",
"writable"
],
"id": 0,
"dataTypeId": 16,
"name": "onOff",
"value": false
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 2
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"pollControl": {
"attributes": [
{
"acl": [
"readable",
"writable"
],
"id": 0,
"dataTypeId": 35,
"name": "checkInInterval",
"value": 14400
},
{
"acl": [
"readable"
],
"id": 1,
"dataTypeId": 35,
"name": "longPollInterval",
"value": 4
},
{
"acl": [
"readable"
],
"id": 2,
"dataTypeId": 33,
"name": "shortPollInterval",
"value": 1
},
{
"acl": [
"readable",
"writable"
],
"id": 3,
"dataTypeId": 33,
"name": "fastPollTimeout",
"value": 40
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 3
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"flowMeasurement": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"dataTypeId": 33,
"name": "measuredValue",
"value": 65535,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 1
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
}
},
"bindings": {
"identify": {
"attributes": [
{
"acl": [
"readable",
"writable"
],
"id": 0,
"dataTypeId": 33,
"name": "identifyTime",
"value": 0
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 2
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"ota": {
"attributes": [
{
"acl": [
"readable"
],
"id": 0,
"dataTypeId": 240,
"name": "upgradeServerID",
"value": "30:fb:10:ff:fe:09:db:75"
},
{
"acl": [
"readable"
],
"id": 1,
"dataTypeId": 35,
"name": "fileOffset",
"value": 4294967295
},
{
"acl": [
"readable"
],
"id": 2,
"dataTypeId": 35,
"name": "currentFileVersion",
"value": 4105
},
{
"acl": [
"readable"
],
"id": 3,
"dataTypeId": 33,
"name": "currentZigBeeStackVersion",
"value": 2
},
{
"acl": [
"readable"
],
"id": 4,
"dataTypeId": 35,
"name": "downloadedFileVersion",
"value": 4294967295
},
{
"acl": [
"readable"
],
"id": 5,
"dataTypeId": 33,
"name": "downloadedZigBeeStackVersion",
"value": 65535
},
{
"acl": [
"readable"
],
"id": 6,
"dataTypeId": 48,
"name": "imageUpgradeStatus",
"value": "normal"
},
{
"acl": [
"readable"
],
"id": 7,
"dataTypeId": 33,
"name": "manufacturerID",
"value": 4742
},
{
"acl": [
"readable"
],
"id": 8,
"dataTypeId": 33,
"name": "imageTypeID",
"value": 65535
},
{
"acl": [
"readable"
],
"id": 9,
"dataTypeId": 33,
"name": "minimumBlockPeriod",
"value": 0
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 1
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
}
}
},
"2": {
"clusters": {
"basic": {
"attributes": [
{
"acl": [
"readable"
],
"id": 0,
"dataTypeId": 32,
"name": "zclVersion",
"value": 8
},
{
"acl": [
"readable"
],
"id": 1,
"dataTypeId": 32,
"name": "appVersion",
"value": 16
},
{
"acl": [
"readable"
],
"id": 3,
"dataTypeId": 32,
"name": "hwVersion",
"value": 0
},
{
"acl": [
"readable"
],
"id": 4,
"dataTypeId": 66,
"name": "manufacturerName",
"value": "SONOFF"
},
{
"acl": [
"readable"
],
"id": 5,
"dataTypeId": 66,
"name": "modelId",
"value": "SWV-ZF2"
},
{
"acl": [
"readable"
],
"id": 6,
"dataTypeId": 66,
"name": "dateCode",
"value": "20260724"
},
{
"acl": [
"readable"
],
"id": 7,
"dataTypeId": 48,
"name": "powerSource",
"value": "battery"
},
{
"acl": [
"readable"
],
"id": 16384,
"dataTypeId": 66,
"name": "swBuildId",
"value": "1.0.9"
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 3
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"onOff": {
"attributes": [
{
"acl": [
"readable",
"writable"
],
"id": 0,
"dataTypeId": 16,
"name": "onOff",
"value": false
},
{
"acl": [
"readable"
],
"id": 65533,
"dataTypeId": 33,
"name": "clusterRevision",
"value": 2
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
}
},
"bindings": {}
}
}
}
This bug is on the radar and is on our backlog to be fixed. Currently Flow cards simply don’t get generated for sub capabilities.
Next to that the biggest issue here is of course the lack of support for this device in the official Sonoff Zigbee app. We are working on transferring that app to one of our development agencies and adding proper support for more Sonoff devices.
Great to hear that and many thanks for your quick reply. In case you think I could provide any help, let me know. I have both the One and the Duo. Interestingly, even the One was added as Generic Zigbee device.