Groovy is on the way out Smartthings Edge is the replacement

I get it - everyone wants local, but very few really deliver. My setup is mostly local - Hubitat + Node-RED with a little lagniappe of Home Assistant. Most of my automations run whether Cox favors me with internet access or capriciously takes it away.

My sole remaining cloud components are my Sleep Number bed, and Alexa.

2 Likes

I tried. All I wanted to do is to install Lua as that is claimed as a prequisite. I may not have worked for quite a few years but I do know what I am doing. I date from the days of rebuilding the 4.2 BSD kernel from source to partition a disc, and what I could do with a Unix command line was frightening. But all I have these days is a tired Windows laptop. So I go to the Lua site and look for the downloads but there aren’t any binaries so I get directed to the binaries site. That is really to support a couple of obscure projects and doesn’t have anything worth a spit either, just some out of context binaries with no documentation, and directs you to three other sites for a fuller installation. Lua for Windows with several years of dust on it, LuaDist which is defunct, and the other one is LuaRocks which doesn’t seem to have the binaries either but does have some utterly bizarre instructions. So all I need is a completely new development environment and that’ll only cost me a few hundred thousand pounds (I’d need a bigger house as well), but if I am going to have to faff around like that why would I be using SmartThings?

At the moment I seem to be hosed. Can’t stay and can’t go.

3 Likes

I’ve resolved to buying a modest notebook, to serve as dedicated t̶e̶r̶m̶i̶n̶a̶l̶…*err workstation. Not wanting do deal with cleaning up some botched installs on my general purpose.

I haven’t coded using a command line since way back, using dBase, FoxPro… which I doubt anyone has ever heard of.

It may be this fall before I get down to it, as the weather will drive me inside, but I really intend to.

Thanks for sharing the hurdles you are encountering. I hope you find an easy way over them.

My only hope is if ST develop a sort-of-IDE along the lines of the Groovy IDE to try and shield users from all the unnecessary faffing about. However having seen what I’ve seen I’m not sure I could have any confidence in the system ever again.

1 Like

Bit modern for me …

1 Like

I haven’t used windows in ages, but could you use WSL? Install WSL on Windows 10 | Microsoft Docs

Then you’d be able to just install lua from the “distro”'s package manager.

I honestly had no idea the situation for Lua [edit: on windows] was so unfortunate.

And for the record, you don’t need to install Lua to package drivers and otherwise use the CLI, you only need it if you want to run the code on your PC either for development (mostly lan drivers) or to run unit tests (mesh drivers).

1 Like

LOL… I don’t doubt it.

Well I could, but it is all rather tail wagging the dog.

I am sure it is a technically sound solution that ticks a lot of boxes, but quite honestly I wouldn’t touch it with a bargepole as it is the boxes it doesn’t tick that are worrying. Even when I first looked a month or two ago when I saw it mentioned in despatches, I just thought ‘No, that can’t be right, that would be far too risky.’

I couldn’t see why you would need to either, but the documentation rather leads you in different directions, probably because it will go on to talk about the cases you mention.

1 Like

Other than having a one-click installer for lua, what boxes do you see it not ticking right now? I’m definitely interested in making the development experience as painless as possible.

I thought I scrubbed all the mentions of having to install lua from the docs and tutorials before everything was posted, where are you still seeing it say you need it?

My personal hope, based on nothing but blind optimism, is that what all of this plus Matter means is that a significant number of devices will just work out of the box in the future, no custom code required.

And that device manufacturers with a strong interest in the smartthings platform like Inovelli and Zooz will have a means for their programmers to provide easy to use edge drivers.

So that ultimately the only people other than device manufacturers who will need to write custom code will be people who are either creating their own hardware devices or their own add-on services. Or offering their programming services to device manufacturers who don’t have their own smartthings - savvy staff. So the new Lua channels Will be very useful to people like @krlaframboise , @erocm1231 , and @RBoy , but most of the rest of us won’t need anything except a URL provided by one of those other groups.

But like I said, that’s just optimism on my part. :innocent:

3 Likes

So, “Just works”?

Sounds sort of Utopian, but I’ll offer up some positive vibes, in case that helps.

1 Like

Ah, I did just find: Get Started with Hub Connected Devices | Developer Documentation | SmartThings

I saw the PR for that come up, but never actually reviewed it see where it was placed. I don’t have the power to fix that on my own, but I’ve brought it up and will try to get that moved/fixed on Monday.

Edit: though still please let me know if you’ve seen anything else.

Apart from seeming to lack interest in robust and polished distribution of their product, it is more the non-technical aspects of working with a language maintained without overt enthusiasm by an absolutely tiny University unit with a rather proprietorial approach to the code (they generously don’t mind bugs being reported, but they’ll do all the fixing thanks). I can imagine techies going for it, but I can also imagine their managers being much less enthusiastic. I just wouldn’t bet the shop on it.

To be fair, I’ve been reading documentation in all sorts of different orders and flitting around repositories in all sorts of different orders. So some are probably talking about an installation where you might need it. I’d argue there is definitely one problem document though …

The Developer Preview Development Tools page seems to talk of 1) using the CLI, and 2) Live Logging, which also uses the CLI. So basically the CLI right?

However that is closely followed by Set Up Your Development Environment which talks about LUA_PATH, the Lua library release, luasocket, luarocks etc, and then jumps onto a discussion of auto-completion and your IDE - IntelliJ or VSCode being examples. So the presence of Lua could be inferred.

It follows that with the Hello World example. That doesn’t involve a Lua installation but is worth a digression. The first command is an instruction to ‘clone the repository’ with:

git clone git@github.com:SmartThingsDevelopers/SampleDrivers.git

Or as we used to say at one place I worked.

HOW TO CATCH A BEAR.
1) Find a bear.
2) ...

Even if knowledge of git, GitHub, cloning and repositories are not critical to being able to type this command, why is there an assumption that command line git is available? I certainly don’t have it. The document is in a browser so at the very least it needs to link to a ZIP file.

I’ll leave you to decide whether LAN Edge Device Driver Development Guide really should come before the section on sharing your driver. It is a bit a leap.

Anyway, I think other examples are here and there. For example in Tutorial | Creating Drivers for Zigbee Devices with SmartThings Edge - Developer Programs / Tutorials - SmartThings Community I am not clear what to make of:

Connect to preview and make sure that SmartThings Lua libraries are available locally.

That might be an editors note or something that sneaked through, but nothing in the rest of the document seems to interest with the SmartThings Lua libraries (do they even exist to make available locally yet?).

UPDATE: It seems you found the main problem while I was knitting a flag here.

2 Likes

I can fix this. An earlier revision of the guide had more information about using the IDE extensions.

1 Like

Not to put more fuel on this particular fire, but version control is a pretty core development skill, and the bar for getting command line tools is pretty low. (Even if you don’t have a Mac or a Chromebook, a Pi will only cost a few bucks.)

With a few exceptions, it was the default way of distributing Groovy DHs and SmartApps, so they haven’t really raised the bar for device development at all.

Oh I hope that too. My one big fear is that there could be a conflict in the quality control. My current irritation (OK then, ONE of my current irritations, and the ‘remains’ rule in the Rules API is winding me up too) that I have mentioned previously is that an environmental sensor has been added to a stock handler with some supporting code mods. I don’t really speak Zigbee but I look at the code and think ‘if that refresh worked, why doesn’t the device report?’, and ‘those two commands seem to have been cough and dropped from another manufacturer’s device specific code, is that really correct?’. Then I wonder why one of the commands that does work was set to configure the device to report at a minimum of one hour and a maximum of two hour intervals when it is reporting room temperature to a tenth of a degree. Would ST ever feel in a position to be able to say to a manufacturer ‘Actually no, that driver simply isn’t good enough for the users of our platform’?.

Yes, this is pretty much why I negotiated my way out of being on the Edge alpha. Not only would I not have anything to work with (the Zigbee bits of my Aqara handlers are other peoples work, and everything else I have is trivial virtual handlers), but I didn’t think my opinion actually mattered much to compared to theirs. I’m just tinkering, they are doing it for real.

Clearly that doesn’t stop me throw a wobbler when I forecast a loss of tinkering.

2 Likes

@orangebucket you can install lua with Nuget on windows too.

3 Likes

It’s an anniversary cake. So you get it every year on the anniversary of the date when you first joined the forum. :sunglasses:

I guess difference of opinions on this. I’ve been using Lua for ages and have never encountered a problem with the way they develop. Their development practices are a little old school, but it just means it’s robust and stable.

The lack of a glitzy batteries included installer/distribution probably comes down to the fact that they’re more interested in in the embedded use case than the general scripting language use case. Which, is perfect for us.

I genuinely believe there wasn’t a better option for us to choose for our use case.

Ah, yeah, good note. Until about a month ago, the live logger was a separate tool. It probably doesn’t make sense to keep that section separated anymore. I’ll bookmark my post for a reminder on Monday.

Yeah, this beta release is somewhat developer focused. We need to base functionality there first, then we’ll go about making it more non-developer tinkerer friendly.

There’s only so much time to get everything done with a small number of engineers working on it. :slight_smile:

4 Likes

True, but what you get is a DLL and I’ve absolutely no idea what to do with it.

Doesn’t really matter. Those who really need it will probably have a suitable development environment for it, or will be able to create one.

I just don’t, and even something as seemingly trivial as an RPi represents more clutter. It also makes no sense for me.

1 Like