Need Help converting Spruce Irrigation Controller ST Device hander code to Hubitat

Trying to get completely off my SmartThings hub, and the last thing that's holding me back is my Gen 1 Spruce Irrigation Controller and Gen 1 Moisture Sensors.

The Device controller is here:
https://raw.githubusercontent.com/PlaidSystems/Spruce_Gen1-SmartThings/master/devicetypes/plaidsystems/spruce-controller.src/spruce-controller.groovy

The Sensor is here:
https://raw.githubusercontent.com/PlaidSystems/Spruce_Gen1-SmartThings/master/devicetypes/plaidsystems/spruce-sensor.src/spruce-sensor.groovy

When I try and import the driver into Hubitat, I receive the following error:

"unable to resolve class physicalgraph.device.HubAction @ line 333, column 38. "

When I pull that entire If statement that is causing the issue and comment it out, I get another error:

" No signature of method: Script1.childDeviceTile() is applicable for argument types: (java.util.LinkedHashMap, java.lang.String, java.lang.String) values: [[childTileName:switch], switch1, switch1] "

At this point I'm pretty stuck and not sure where to go from here. Any assistance would be appreciated. I've found Hubitat drivers for the Gen 2 models online, but nothing about the Gen 1 model and sensors.

This should help explain the basic changes required.

1 Like

Thanks for this. I've got it saving now, so that's better off than I was! Now time to give it a try

1 Like

Were you able to get the Spruce controller code to work? I would like to use it so I can get off ST...

Spruce has officially supported Hubitat: Spruce Gen2 + Hubitat Connect - Spruce Support

Check here: Spruce Gen2 + Hubitat Connect - Spruce Support

Thanks, I forget to check the manufacturers site sometimes... I like this implementation better than what was available for ST!

i havent started this port as lthat is one of the last things on my smarttings hub.. I may if not too dififcult. Or may switch to rachio as I have one ready.

As a side note i did port the code for the sensor but have not tested it.. but here it is..

unfortunately it looks like their integration assumes you were using their app and account which i was not.. on smarthings it integrated directly to the hub without using their app.. At least it used to...

I i have to start over setting everything up I think i may switch to rachio as i am already using it in my other location and prefer their app.

Your links are for the Gen2 wifi model that connects to the Spruce Cloud. We're talking about the Gen 1 Kickstarter model that uses Zigbee and doesn't connect to Spruce's cloud at all.

No, I am not able to get it working in a meaningful way with the driver I have. It needs work to tweak it to actually control each zone individually.

The Gen 1 controller never required a Spruce account of any kind, nor did it require any connections to Spruce's cloud. All scheduling was done in the SmartThings app. Here's the SmartThings device handler driver for it.

https://raw.githubusercontent.com/PlaidSystems/Spruce_Gen1-SmartThings/master/devicetypes/plaidsystems/spruce-controller.src/spruce-controller.groovy

Edit: This link is now dead because Spruce moved their code. This is the link for the working drivers. Spruce irrigation ver 1 zigbee now working in hubitat (non wifi version)

1 Like

Not sure at all what youre talking about
I never said the code was the controller app. The above device type is only the zigbee temp moisture sensor and It IS local and does not contact the cloud.

I.have decided to dump spruce as it seems there is not even the source for the device handler for the zigbee spruce controller. Only a smart app and device handlers for the moisture sensors.

404 error do you have the source saved sonewhere

ok found an older version of the controller online but the device info blows up hubitat

ie
Value too long for column "ENDPOINT_ID VARCHAR(2)": "'1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18' (44)"; SQL statement: INSERT INTO FINGERPRINT(DEVICE_TYPE_ID, PROFILE_ID, ENDPOINT_ID, IN_CLUSTERS, OUT_CLUSTERS, MANUFACTURER, MODEL, DEVICE_JOIN_NAME, DEVICE_ID, MFR, PROD, CONTROLLER_TYPE) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [22001-197]

will try cutting it to 12 zones and see if i can get it to install

ok first port done.. but this is not the spruce controlller app that was in smarthings but a 3rd party written app.. it probably will add minimal control.. ie turn on daily on a schedule or by moisture content.. but no settings for weather soil type etc etc.

If someone has the source for the actually smartapp used on smartthings let me know.

I will start testing it tomorrow.

1 Like

Sorry for that bad link khan, looks like they pulled my previous links to update their device handler to work with the new ST app. The current Controller device handler code is here:

https://raw.githubusercontent.com/PlaidSystems/Spruce_Gen1-SmartThings/master/devicetypes/plaidsystems/spruce-controller-sst.src/spruce-controller-sst.groovy

More of their docs and the smartapp here

Unfortunately, it looks like in order to get anything to work right, it needs the zones to be created as child devices, which I cannot get working properly.

Search for my thread on spruce. I got it working perfectly

1 Like
1 Like

This is it. Got it working perfectly. Thanks Khan!

1 Like