Skip to content

Commit 4434587

Browse files
authored
Merge pull request #54 from ShellyUSA/DanielWinks
Daniel winks
2 parents 93ad952 + e970859 commit 4434587

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

PackageManifests/ShellyWebhookDrivers/packageManifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"packageName": "Shelly Webhook/Websocket Drivers",
33
"author": "ShellyUSA, Daniel Winks",
4-
"version": "2.2.2",
5-
"releaseNotes": "2.2.2 Add Shelly Pro Dual Cover PM\r\n Add Shelly Vintage Bulb, minor fixes for Dimmer\r\n Add Shelly Dimmer 1&2 support\r\nAdd Shelly 2.5 (Gen1). Fix missing cover functionality.\r\n2.0.5 Fix overflow issue on setting parent energy totals.\r\nFix null issue on setting parent energy totals\r\n2.0.3 Fix for cover child devices not getting coverId properly from device data\r\n2.0.3 Add drivers for Pro2PM, Pro3, Uni gen1 and gen2 to HPM. \r\n2.0.1 Change logging level on a few things to keep logs from warning about Shelly auth related messages. \r\n2.0.0 Added support for many more devices. Major rewrite of library code. 🥳\r\n1.2.0 Added Shelly Flood, Shelly PM Mini Gen3\r\n1.1.0 Added support for Bluetooth Gateway, Blu devices (button, motion, door/window), H&T (gen 1)\r\n1.0.0 Release of Shelly Plug US, Button 1, Motion 2, Shelly H&T (gen 2 and 3), and Shelly Gas",
4+
"version": "2.2.3",
5+
"releaseNotes": "2.2.3 Fixes for inputs on Gen 1 device not properly being created/updated\r\nAdd Shelly Pro Dual Cover PM\r\n Add Shelly Vintage Bulb, minor fixes for Dimmer\r\n Add Shelly Dimmer 1&2 support\r\nAdd Shelly 2.5 (Gen1). Fix missing cover functionality.\r\n2.0.5 Fix overflow issue on setting parent energy totals.\r\nFix null issue on setting parent energy totals\r\n2.0.3 Fix for cover child devices not getting coverId properly from device data\r\n2.0.3 Add drivers for Pro2PM, Pro3, Uni gen1 and gen2 to HPM. \r\n2.0.1 Change logging level on a few things to keep logs from warning about Shelly auth related messages. \r\n2.0.0 Added support for many more devices. Major rewrite of library code. 🥳\r\n1.2.0 Added Shelly Flood, Shelly PM Mini Gen3\r\n1.1.0 Added support for Bluetooth Gateway, Blu devices (button, motion, door/window), H&T (gen 1)\r\n1.0.0 Release of Shelly Plug US, Button 1, Motion 2, Shelly H&T (gen 2 and 3), and Shelly Gas",
66
"minimumHEVersion": "2.3.7.114",
77
"dateReleased": "2024-02-10",
88
"licenseFile": "https://raw.githubusercontent.com/ShellyUSA/Hubitat-Drivers/master/LICENSE",

ShellyDriverLibrary/ShellyUSA.ShellyUSA_Driver_Library.groovy

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,7 @@ void getPreferencesFromShellyDeviceGen1() {
422422
prefs['gen1_tamper_sensitivity'] = gen1SettingsResponse?.tamper_sensitivity as Integer
423423
}
424424
if(gen1SettingsResponse?.set_volume != null) {prefs['gen1_set_volume'] = gen1SettingsResponse?.set_volume as Integer}
425+
425426
//Process ADC(s)
426427
List adcs = (List)gen1SettingsResponse?.adcs
427428
if(adcs != null && adcs.size() > 0) {
@@ -439,6 +440,7 @@ void getPreferencesFromShellyDeviceGen1() {
439440
}
440441
}
441442
}
443+
442444
//Process Temp Sensors
443445
LinkedHashMap temps = (LinkedHashMap)gen1SettingsResponse?.ext_temperature
444446
//Get humidity, if present, to determine if ext sensor is single DHT22 or 1-3 DS18B20
@@ -511,6 +513,17 @@ void getPreferencesFromShellyDeviceGen1() {
511513
setDeviceDataValue('lightMode', mode)
512514
}
513515
}
516+
517+
LinkedHashMap gen1StatusResponse = (LinkedHashMap)sendGen1Command('status')
518+
519+
List inputs = (List)gen1StatusResponse?.inputs
520+
if(inputs != null && inputs.size() > 0) {
521+
inputs.eachWithIndex{ it, index ->
522+
createChildInput(index, "Button")
523+
createChildInput(index, "Switch")
524+
}
525+
}
526+
514527
if(prefs.size() > 0) { setHubitatDevicePreferences(prefs) }
515528
refresh()
516529
}
@@ -1500,6 +1513,12 @@ Boolean getSwitchState() {
15001513
return thisDevice().currentValue('switch', true) == 'on'
15011514
}
15021515

1516+
@CompileStatic
1517+
void setHeatingSetpoint(BigDecimal temperature) {
1518+
Integer id = getDeviceDataValue('tstatId') as Integer
1519+
parentSendGen1CommandAsync("settings/thermostat/${id}/?target_t_enabled=1&target_t=${temperature}")
1520+
}
1521+
15031522
void on() {
15041523
if(deviceIsInputSwitch(thisDevice()) == true) {
15051524
logWarn('Cannot change state of an input on a Shelly device from Hubitat!')
@@ -2719,6 +2738,18 @@ void parseGen1Message(String raw) {
27192738
else if(query[0] == 'btn_on') {setInputSwitchState(true, query[1] as Integer)}
27202739
else if(query[0] == 'btn_off') {setInputSwitchState(false, query[1] as Integer)}
27212740

2741+
else if(query[0] == 'btn1_on') {setInputSwitchState(true, 0 as Integer)}
2742+
else if(query[0] == 'btn1_off') {setInputSwitchState(false, 0 as Integer)}
2743+
2744+
else if(query[0] == 'btn2_on') {setInputSwitchState(true, 1 as Integer)}
2745+
else if(query[0] == 'btn2_off') {setInputSwitchState(false, 1 as Integer)}
2746+
2747+
else if(query[0] == 'btn1_shortpush') {setPushedButton(1, 0 as Integer)}
2748+
else if(query[0] == 'btn1_longpush') {setHeldButton(1, 0 as Integer)}
2749+
2750+
else if(query[0] == 'btn2_shortpush') {setPushedButton(1, 1 as Integer)}
2751+
else if(query[0] == 'btn2_longpush') {setHeldButton(1, 1 as Integer)}
2752+
27222753
else if(query[0] == 'humidity.change') {setHumidityPercent(new BigDecimal(query[2]))}
27232754
else if(query[0] == 'temperature.change' && query[1] == 'tC') {setTemperatureC(new BigDecimal(query[2]))}
27242755
else if(query[0] == 'temperature.change' && query[1] == 'tF') {setTemperatureF(new BigDecimal(query[2]))}

0 commit comments

Comments
 (0)