@@ -85,6 +85,7 @@ const quint64 heimanMacPrefix = 0x0050430000000000ULL;
85
85
const quint64 xiaomiMacPrefix = 0x04cf8c0000000000ULL;
86
86
const quint64 konkeMacPrefix = 0x086bd70000000000ULL;
87
87
const quint64 ikea2MacPrefix = 0x14b4570000000000ULL;
88
+ const quint64 profaluxMacPrefix = 0x20918a0000000000ULL;
88
89
const quint64 stMacPrefix = 0x24fd5b0000000000ULL;
89
90
const quint64 samjinMacPrefix = 0x286d970000000000ULL;
90
91
const quint64 sinopeMacPrefix = 0x500b910000000000ULL;
@@ -267,8 +268,11 @@ static const SupportedDevice supportedDevices[] = {
267
268
{ VENDOR_LEGRAND, "Dimmer switch w/o neutral", legrandMacPrefix }, // Legrand Dimmer switch wired
268
269
{ VENDOR_LEGRAND, "Connected outlet", legrandMacPrefix }, // Legrand Plug
269
270
{ VENDOR_LEGRAND, "Shutter switch with neutral", legrandMacPrefix }, // Legrand Shutter switch
271
+ { VENDOR_LEGRAND, "Remote toggle switch", legrandMacPrefix }, // Legrand switch module
270
272
{ VENDOR_LEGRAND, "Cable outlet", legrandMacPrefix }, // Legrand Cable outlet
271
273
{ VENDOR_LEGRAND, "Remote switch", legrandMacPrefix }, // Legrand wireless switch
274
+ { VENDOR_LEGRAND, "Double gangs remote switch", legrandMacPrefix }, // Legrand wireless double switch
275
+ { VENDOR_LEGRAND, "Remote motion sensor", legrandMacPrefix }, // Legrand motion sensor
272
276
{ VENDOR_LEGRAND, "Shutters central remote switch", legrandMacPrefix }, // Legrand wireless shutter switch (battery)
273
277
{ VENDOR_LEGRAND, "DIN power consumption module", legrandMacPrefix }, // Legrand DIN power consumption module
274
278
{ VENDOR_NETVOX, "Z809AE3R", netvoxMacPrefix }, // Netvox smartplug
@@ -1816,6 +1820,15 @@ void DeRestPluginPrivate::addLightNode(const deCONZ::Node *node)
1816
1820
}
1817
1821
break;
1818
1822
1823
+ case DEV_ID_CONSUMPTION_AWARENESS_DEVICE:
1824
+ {
1825
+ if (node->nodeDescriptor().manufacturerCode() == VENDOR_LEGRAND)
1826
+ {
1827
+ lightNode.setHaEndpoint(*i);
1828
+ }
1829
+ }
1830
+ break;
1831
+
1819
1832
default:
1820
1833
{
1821
1834
}
@@ -1971,6 +1984,18 @@ void DeRestPluginPrivate::addLightNode(const deCONZ::Node *node)
1971
1984
{ q->nodeUpdated(lightNode.address().ext(), QLatin1String("modelid"), lightNode.modelId()); }
1972
1985
}
1973
1986
1987
+ //Add missing values for Profalux device
1988
+ if (checkMacVendor(node->address(), VENDOR_PROFALUX))
1989
+ {
1990
+ //Shutter ?
1991
+ if (i->deviceId() == DEV_ID_ZLL_COLOR_LIGHT)
1992
+ {
1993
+ lightNode.setManufacturerName(QLatin1String("Profalux"));
1994
+ lightNode.setModelId(QLatin1String("PFLX Shutter"));
1995
+ lightNode.setNeedSaveDatabase(true);
1996
+ }
1997
+ }
1998
+
1974
1999
// "translate" ORVIBO vendor name
1975
2000
if (lightNode.manufacturer() == QString("欧瑞博"))
1976
2001
{
@@ -3332,12 +3357,11 @@ void DeRestPluginPrivate::checkSensorButtonEvent(Sensor *sensor, const deCONZ::A
3332
3357
sensor->previousSequenceNumber = zclFrame.sequenceNumber();
3333
3358
checkReporting = true;
3334
3359
}
3335
- else if (sensor->modelId() == QLatin1String("Remote switch")) // legrand switch
3336
- {
3337
- checkReporting = true;
3338
- checkClientCluster = true;
3339
- }
3340
- else if (sensor->modelId() == QLatin1String("Shutters central remote switch")) // legrand shutter switch
3360
+ else if (sensor->modelId() == QLatin1String("Remote switch") || //legrand switch
3361
+ sensor->modelId() == QLatin1String("Double gangs remote switch") || //Legrand micro module
3362
+ sensor->modelId() == QLatin1String("Shutters central remote switch") || // legrand shutter switch
3363
+ sensor->modelId() == QLatin1String("Remote motion sensor") || // legrand motion sensor
3364
+ sensor->modelId() == QLatin1String("Remote toggle switch")) // legrand switch simple and double
3341
3365
{
3342
3366
checkReporting = true;
3343
3367
checkClientCluster = true;
@@ -4263,10 +4287,12 @@ void DeRestPluginPrivate::addSensorNode(const deCONZ::Node *node, const deCONZ::
4263
4287
4264
4288
case BINARY_INPUT_CLUSTER_ID:
4265
4289
{
4266
- if (modelId.startsWith(QLatin1String("tagv4"))) // SmartThings Arrival sensor
4290
+ if ( (modelId.startsWith(QLatin1String("tagv4"))) || // SmartThings Arrival sensor
4291
+ ( modelId == QLatin1String("Remote motion sensor") )) // Legrand motion sensor
4267
4292
{
4268
4293
fpPresenceSensor.inClusters.push_back(ci->id());
4269
4294
}
4295
+
4270
4296
}
4271
4297
break;
4272
4298
@@ -5513,7 +5539,7 @@ void DeRestPluginPrivate::addSensorNode(const deCONZ::Node *node, const SensorFi
5513
5539
else if (*ci == POWER_CONFIGURATION_CLUSTER_ID)
5514
5540
{
5515
5541
//This device make a Rejoin every time, you trigger it, it's the only moment where you can read attribute.
5516
- if (sensorNode.modelId() == QLatin1String("Remote switch") || sensorNode.modelId() == QLatin1String("Shutters central remote switch") )
5542
+ if (sensorNode.modelId() == QLatin1String("Remote switch") || sensorNode.modelId() == QLatin1String("Shutters central remote switch") || sensorNode.modelId() == QLatin1String("Double gangs remote switch") )
5517
5543
{
5518
5544
//Ask for battery but only every day max
5519
5545
//int diff = idleTotalCounter - sensorNode.lastRead(READ_BATTERY);
@@ -6084,7 +6110,10 @@ void DeRestPluginPrivate::updateSensorNode(const deCONZ::NodeEvent &event)
6084
6110
i->modelId().startsWith(QLatin1String("motionv4")) ||// SmartThings motion sensor
6085
6111
i->modelId().startsWith(QLatin1String("3305-S")) || // SmartThings 2014 motion sensor
6086
6112
i->modelId() == QLatin1String("Remote switch") || // Legrand switch
6087
- i->modelId() == QLatin1String("Shutters central remote switch") || //Legrand shutter switch
6113
+ i->modelId() == QLatin1String("Double gangs remote switch") || // Legrand switch double
6114
+ i->modelId() == QLatin1String("Shutters central remote switch") || // Legrand switch module
6115
+ i->modelId() == QLatin1String("Remote toggle switch") || //Legrand shutter switch
6116
+ i->modelId() == QLatin1String("Remote motion sensor") || //Legrand motion sensor
6088
6117
i->modelId() == QLatin1String("Zen-01") || // Zen thermostat
6089
6118
i->modelId() == QLatin1String("Thermostat") || // eCozy thermostat
6090
6119
i->modelId() == QLatin1String("Motion Sensor-A") || // Osram motion sensor
@@ -9819,8 +9848,8 @@ void DeRestPluginPrivate::handleZclAttributeReportIndication(const deCONZ::ApsDa
9819
9848
sendZclDefaultResponse(ind, zclFrame, deCONZ::ZclSuccessStatus);
9820
9849
}
9821
9850
else if (checkMacVendor(ind.srcAddress(), VENDOR_PHILIPS) ||
9822
- macPrefix == tiMacPrefix ||
9823
- checkMacVendor(ind.srcAddress(), VENDOR_DDEL) ||
9851
+ macPrefix == tiMacPrefix ||
9852
+ checkMacVendor(ind.srcAddress(), VENDOR_DDEL) ||
9824
9853
checkMacVendor(ind.srcAddress(), VENDOR_IKEA) ||
9825
9854
checkMacVendor(ind.srcAddress(), VENDOR_OSRAM_STACK) ||
9826
9855
checkMacVendor(ind.srcAddress(), VENDOR_JENNIC) ||
@@ -14649,7 +14678,10 @@ void DeRestPluginPrivate::delayedFastEnddeviceProbe(const deCONZ::NodeEvent *eve
14649
14678
}
14650
14679
}
14651
14680
else if (sensor->modelId() == QLatin1String("Remote switch") || // Legrand switch
14652
- sensor->modelId() == QLatin1String("Shutters central remote switch")) // Legrand switch
14681
+ sensor->modelId() == QLatin1String("Double gangs remote switch") || // Legrand switch double
14682
+ sensor->modelId() == QLatin1String("Remote toggle switch") || // Legrand switch module
14683
+ sensor->modelId() == QLatin1String("Remote motion sensor") || // Legrand motion sensor
14684
+ sensor->modelId() == QLatin1String("Shutters central remote switch")) // Legrand shutter switch
14653
14685
{
14654
14686
checkSensorGroup(sensor);
14655
14687
checkSensorBindingsForClientClusters(sensor);
0 commit comments