diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index 3bfc3b40..1902e705 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -557,35 +557,55 @@ void DevicePluginPhilipsHue::onRemoteButtonEvent(const int &buttonCode) { HueRemote *remote = static_cast(sender()); + Param param(hueRemoteButtonNameParamTypeId); + EventTypeId id; + // TODO: Legacy events should be removed eventually switch (buttonCode) { case HueRemote::OnPressed: emitEvent(Event(hueRemoteOnPressedEventTypeId, m_remotes.value(remote)->id())); + param.setValue("ON"); + id = hueRemotePressedEventTypeId; break; case HueRemote::OnLongPressed: emitEvent(Event(hueRemoteOnLongPressedEventTypeId, m_remotes.value(remote)->id())); + param.setValue("ON"); + id = hueRemoteLongPressedEventTypeId; break; case HueRemote::DimUpPressed: emitEvent(Event(hueRemoteDimUpPressedEventTypeId, m_remotes.value(remote)->id())); + param.setValue("DIM UP"); + id = hueRemotePressedEventTypeId; break; case HueRemote::DimUpLongPressed: emitEvent(Event(hueRemoteDimUpLongPressedEventTypeId, m_remotes.value(remote)->id())); + param.setValue("DIM UP"); + id = hueRemoteLongPressedEventTypeId; break; case HueRemote::DimDownPressed: emitEvent(Event(hueRemoteDimDownPressedEventTypeId, m_remotes.value(remote)->id())); + param.setValue("DIM DOWN"); + id = hueRemotePressedEventTypeId; break; case HueRemote::DimDownLongPressed: emitEvent(Event(hueRemoteDimDownLongPressedEventTypeId, m_remotes.value(remote)->id())); + param.setValue("DIM DOWN"); + id = hueRemoteLongPressedEventTypeId; break; case HueRemote::OffPressed: emitEvent(Event(hueRemoteOffPressedEventTypeId, m_remotes.value(remote)->id())); + param.setValue("OFF"); + id = hueRemotePressedEventTypeId; break; case HueRemote::OffLongPressed: emitEvent(Event(hueRemoteOffLongPressedEventTypeId, m_remotes.value(remote)->id())); + param.setValue("OFF"); + id = hueRemoteLongPressedEventTypeId; break; default: break; } + emitEvent(Event(id, m_remotes.value(remote)->id(), ParamList() << param)); } void DevicePluginPhilipsHue::onPluginTimer() diff --git a/philipshue/devicepluginphilipshue.json b/philipshue/devicepluginphilipshue.json index 05f6467f..7d14de9c 100644 --- a/philipshue/devicepluginphilipshue.json +++ b/philipshue/devicepluginphilipshue.json @@ -449,6 +449,7 @@ "name": "hueRemote", "displayName": "Hue Remote", "deviceIcon": "Switch", + "interfaces": ["longpressmultibutton"], "basicTags": [ "Device", "Sensor" @@ -577,6 +578,34 @@ "id": "d69306eb-ea52-4841-9e26-89c69e9cf6fc", "name": "offLongPressed", "displayName": "off long pressed" + }, + { + "id": "8da28cf1-2457-451e-953e-2685f8daeda8", + "name": "pressed", + "displayName": "Button pressed", + "paramTypes": [ + { + "id": "e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42", + "name": "buttonName", + "displayName": "Button name", + "type": "QString", + "possibleValues": ["ON", "OFF", "DIM UP", "DIM DOWN"] + } + ] + }, + { + "id": "2c64561b-2381-4769-8e21-0e206c84bbcc", + "name": "longPressed", + "displayName": "Button longpressed", + "paramTypes": [ + { + "id": "e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42", + "name": "buttonName", + "displayName": "Button name", + "type": "QString", + "possibleValues": ["ON", "OFF", "DIM UP", "DIM DOWN"] + } + ] } ] }