I've had a request to port the Weatherflow Tempest weather
station driver I wrote to Crestron Home.? How bad can it be.? So,
I downloaded the driver SDK from crestron.com/developer and got it
installed on my laptop.? Then I started to try and dig in.?
Crestron supplies a bunch of sample projects so I figured that was
the best place to start.? I could find a nice simple sample and
then start digging through the code and the help files to see what
is going on.
Now my understanding is that a driver for an extension device,
like a weather station, is the easiest type of driver to create so
again, how bad can it be.?
So, I look at the extension driver samples and there is one for a
door lock.? Opening up the sample Crestron has chosen to include
every possible bit of functionality you can think of for a door
lock.? It includes access list support, jam support, and the list
goes on.? All that extra functionality in a sample that you are
using to try and just get started with something new obfuscates
the underlying structure you are trying to understand.
When I want to start learning something new I want to start at
the "see spot run" level.? As stupid simple as possible.? Once I
have a clue I can take baby steps and move onward to something a
bit more complex.? Now a door lock isn't like trying to learn to
speak English by trying to read "War and Peace" but with all the
added functionality Crestron included it is certainly at the level
of a novel by Earnest Hemingway.?
So, this saga finally brings me to my question.? Does anyone, who
has gone down this path before me, have a really, really,
really basic example of an extension driver they
are willing to share?? Something at the level of controlling an
IoT relay from Crestron home where all you can do is turn it
on/off.?
Thanks in advance for the help.
Jay
|
I can't answer your question, but I find it more than a little ironic that Crestron's door lock example would have so many features, when door locks in Crestron Home have only the bare minimum functionality. Or at least that's the way it was the last time I looked, and people have complained about it for years.
toggle quoted message
Show quoted text
--- On Wednesday, February 17, 2021 at 9:17 PM, Jay Basen wrote:
I've had a request to port the Weatherflow Tempest weather station driver I wrote to Crestron Home. How bad can it be. So, I downloaded the driver SDK from crestron.com/developer and got it installed on my laptop. Then I started to try and dig in. Crestron supplies a bunch of sample projects so I figured that was the best place to start. I could find a nice simple sample and then start digging through the code and the help files to see what is going on.
Now my understanding is that a driver for an extension device, like a weather station, is the easiest type of driver to create so again, how bad can it be.
So, I look at the extension driver samples and there is one for a door lock. Opening up the sample Crestron has chosen to include every possible bit of functionality you can think of for a door lock. It includes access list support, jam support, and the list goes on. All that extra functionality in a sample that you are using to try and just get started with something new obfuscates the underlying structure you are trying to understand.
When I want to start learning something new I want to start at the "see spot run" level. As stupid simple as possible. Once I have a clue I can take baby steps and move onward to something a bit more complex. Now a door lock isn't like trying to learn to speak English by trying to read "War and Peace" but with all the added functionality Crestron included it is certainly at the level of a novel by Earnest Hemingway.
So, this saga finally brings me to my question. Does anyone, who has gone down this path before me, have a really, really, really basic example of an extension driver they are willing to share? Something at the level of controlling an IoT relay from Crestron home where all you can do is turn it on/off.
Thanks in advance for the help.
Jay
|
We are just about to release version 2 of our Pentair IntelliCenter module which was a SIMPL+ module rewrite in SIMPL#. That task alone was a fun challenge and we were about to release that version until we decided to wrap in the Crestron
Home components in the same library that plays with SIMPL Windows. It’s taken me about a month – from not knowing anything about extensions, to about to release the Pentair IntelliCenter Driver. While I don’t have any code that I can share, I started off following
the Create an Extension Driver section of the SDK documentation with the goal of just having a button do something on the CP4-R, and worked out from there which I think would be good for someone starting out. It wasn’t until I didn’t understand one of the
steps that I referenced the samples. While the samples do compile and run(I think I actually ran them once when Lincoln had enough of me screaming at the CP4-R in a WTH moment) I only use them for reference material. The process was certainly A LOT of trial
and error. ?Documentation is ok, there is a lot of reading between the lines, and a lot of going may places on the SDK site to put the jigsaw puzzle together.
?
Jay I know you know your way around Visual Studio, but for anyone else reading this, if you haven’t really played with SIMPL# and/or SIMPL#Pro and you’re trying this out, be prepared for steep uphill battle.
?
Caleb
?
Caleb Radecky |
Manager, Online Products & Services
Crestron Silver Certified Programmer | DMC-D-4K | DMC-E-4K
ControlWorks Consulting, LLC | Crestron Services Provider | 8228 Mayfield Rd. #6B Rear Cleveland OH 44026
D. 440.771.4809 | O.440.449.1100 X1109 | F.440.449.1106 |
?
toggle quoted message
Show quoted text
From: [email protected] < [email protected]> On Behalf Of
jbasen
Sent: Wednesday, February 17, 2021 21:17
To: [email protected]
Subject: [crestron] Crestron Home Driver Using the Driver SDK
?
I've had a request to port the Weatherflow Tempest weather station driver I wrote to Crestron Home.? How bad can it be.? So, I downloaded the driver SDK from crestron.com/developer and got it installed on my laptop.? Then I started to try and dig in.? Crestron
supplies a bunch of sample projects so I figured that was the best place to start.? I could find a nice simple sample and then start digging through the code and the help files to see what is going on.
Now my understanding is that a driver for an extension device, like a weather station, is the easiest type of driver to create so again, how bad can it be.?
So, I look at the extension driver samples and there is one for a door lock.? Opening up the sample Crestron has chosen to include every possible bit of functionality you can think of for a door lock.? It includes access list support, jam support, and the
list goes on.? All that extra functionality in a sample that you are using to try and just get started with something new obfuscates the underlying structure you are trying to understand.
When I want to start learning something new I want to start at the "see spot run" level.? As stupid simple as possible.? Once I have a clue I can take baby steps and move onward to something a bit more complex.? Now a door lock isn't like trying to learn
to speak English by trying to read "War and Peace" but with all the added functionality Crestron included it is certainly at the level of a novel by Earnest Hemingway.?
So, this saga finally brings me to my question.? Does anyone, who has gone down this path before me, have a
really, really, really basic example of an extension driver they are willing to share?? Something at the level of controlling an IoT relay from Crestron home where all you can do is turn it on/off.?
Thanks in advance for the help.
Jay
|
Thanks Caleb.?
I’ll take a look at that section of the SDK.? I’ve just always liked to start with something that illustrates the correct approach to a programming paradigm rather than trying to figure that out from documentation.?
All the drivers I’ve been releasing on my GitHub are S# with S+ wrappers.? However I’ve only dug into S# Pro once and that was years ago during the original S# beta.? I just haven’t had a need for S# Pro since
It doesn’t give me a lot of confidence that it has taken you a month to take an existing S# module and port it to Home.? How many people can dedicate that much time to develop a single driver for a real world project?
Thanks again?
Jay
toggle quoted message
Show quoted text
On Wed, Feb 17, 2021 at 8:03 PM Caleb Radecky < caleb@...> wrote:
We are just about to release version 2 of our Pentair IntelliCenter module which was a SIMPL+ module rewrite in SIMPL#. That task alone was a fun challenge and we were about to release that version until we decided to wrap in the Crestron
Home components in the same library that plays with SIMPL Windows. It’s taken me about a month – from not knowing anything about extensions, to about to release the Pentair IntelliCenter Driver. While I don’t have any code that I can share, I started off following
the Create an Extension Driver section of the SDK documentation with the goal of just having a button do something on the CP4-R, and worked out from there which I think would be good for someone starting out. It wasn’t until I didn’t understand one of the
steps that I referenced the samples. While the samples do compile and run(I think I actually ran them once when Lincoln had enough of me screaming at the CP4-R in a WTH moment) I only use them for reference material. The process was certainly A LOT of trial
and error.? Documentation is ok, there is a lot of reading between the lines, and a lot of going may places on the SDK site to put the jigsaw puzzle together.
?
Jay I know you know your way around Visual Studio, but for anyone else reading this, if you haven’t really played with SIMPL# and/or SIMPL#Pro and you’re trying this out, be prepared for steep uphill battle.
?
Caleb
?
Caleb Radecky |
Manager, Online Products & Services
Crestron Silver Certified Programmer | DMC-D-4K | DMC-E-4K
ControlWorks Consulting, LLC | Crestron Services Provider |
D. 440.771.4809 | O.440.449.1100 X1109 | F.440.449.1106 |
?
?
I've had a request to port the Weatherflow Tempest weather station driver I wrote to Crestron Home.? How bad can it be.? So, I downloaded the driver SDK from and got it installed on my laptop.? Then I started to try and dig in.? Crestron
supplies a bunch of sample projects so I figured that was the best place to start.? I could find a nice simple sample and then start digging through the code and the help files to see what is going on.
Now my understanding is that a driver for an extension device, like a weather station, is the easiest type of driver to create so again, how bad can it be.?
So, I look at the extension driver samples and there is one for a door lock.? Opening up the sample Crestron has chosen to include every possible bit of functionality you can think of for a door lock.? It includes access list support, jam support, and the
list goes on.? All that extra functionality in a sample that you are using to try and just get started with something new obfuscates the underlying structure you are trying to understand.
When I want to start learning something new I want to start at the "see spot run" level.? As stupid simple as possible.? Once I have a clue I can take baby steps and move onward to something a bit more complex.? Now a door lock isn't like trying to learn
to speak English by trying to read "War and Peace" but with all the added functionality Crestron included it is certainly at the level of a novel by Earnest Hemingway.?
So, this saga finally brings me to my question.? Does anyone, who has gone down this path before me, have a
really, really, really basic example of an extension driver they are willing to share?? Something at the level of controlling an IoT relay from Crestron home where all you can do is turn it on/off.?
Thanks in advance for the help.
Jay
|
Well, to be fair there is a pile of stuff going on inside the Pentair module and there was a bit of "well if I knew I was going to need the data this way" moments. I feel pretty confident that the next one I attempt will take
me 1/8th the amount of time this one took.?
The steps to create an extension in the documentation do show how to implement them, I'd start there.
Caleb
Radecky |?Manager,
Online Products & Services
Crestron Silver Certified Programmer | DMC-D-4K | DMC-E-4K
ControlWorks
Consulting, LLC |?Crestron
Services Provider?|
8228 Mayfield Rd. Suite 6B Rear, Cleveland OH 44026
D.?440.771.4809 |?O.440.449.1100?X1109 | F.440.449.1106 |
toggle quoted message
Show quoted text
Thanks Caleb.?
I’ll take a look at that section of the SDK.? I’ve just always liked to start with something that illustrates the correct approach to a programming paradigm rather than trying to figure that out from documentation.?
All the drivers I’ve been releasing on my GitHub are S# with S+ wrappers.? However I’ve only dug into S# Pro once and that was years ago during the original S# beta.? I just haven’t had a need for S# Pro since
It doesn’t give me a lot of confidence that it has taken you a month to take an existing S# module and port it to Home.? How many people can dedicate that much time to develop a single driver for a real world project?
Thanks again?
Jay
On Wed, Feb 17, 2021 at 8:03 PM Caleb Radecky < caleb@...> wrote:
We are just about to release version 2 of our Pentair IntelliCenter module which was a SIMPL+ module rewrite in SIMPL#. That task alone was a fun challenge and we were about to release that version until we decided to wrap in the Crestron
Home components in the same library that plays with SIMPL Windows. It’s taken me about a month – from not knowing anything about extensions, to about to release the Pentair IntelliCenter Driver. While I don’t have any code that I can share, I started off following
the Create an Extension Driver section of the SDK documentation with the goal of just having a button do something on the CP4-R, and worked out from there which I think would be good for someone starting out. It wasn’t until I didn’t understand one of the
steps that I referenced the samples. While the samples do compile and run(I think I actually ran them once when Lincoln had enough of me screaming at the CP4-R in a WTH moment) I only use them for reference material. The process was certainly A LOT of trial
and error.? Documentation is ok, there is a lot of reading between the lines, and a lot of going may places on the SDK site to put the jigsaw puzzle together.
?
Jay I know you know your way around Visual Studio, but for anyone else reading this, if you haven’t really played with SIMPL# and/or SIMPL#Pro and you’re trying this out, be prepared for steep uphill battle.
?
Caleb
?
Caleb Radecky |
Manager, Online Products & Services
Crestron Silver Certified Programmer | DMC-D-4K | DMC-E-4K
ControlWorks Consulting, LLC | Crestron Services Provider |
D. 440.771.4809 | O.440.449.1100 X1109 | F.440.449.1106 |
?
?
I've had a request to port the Weatherflow Tempest weather station driver I wrote to Crestron Home.? How bad can it be.? So, I downloaded the driver SDK from
and got it installed on my laptop.? Then I started to try and dig in.? Crestron supplies a bunch of sample projects so I figured that was the best place to start.? I could find a nice simple
sample and then start digging through the code and the help files to see what is going on.
Now my understanding is that a driver for an extension device, like a weather station, is the easiest type of driver to create so again, how bad can it be.?
So, I look at the extension driver samples and there is one for a door lock.? Opening up the sample Crestron has chosen to include every possible bit of functionality you can think of for a door lock.? It includes access list support, jam support, and the
list goes on.? All that extra functionality in a sample that you are using to try and just get started with something new obfuscates the underlying structure you are trying to understand.
When I want to start learning something new I want to start at the "see spot run" level.? As stupid simple as possible.? Once I have a clue I can take baby steps and move onward to something a bit more complex.? Now a door lock isn't like trying to learn
to speak English by trying to read "War and Peace" but with all the added functionality Crestron included it is certainly at the level of a novel by Earnest Hemingway.?
So, this saga finally brings me to my question.? Does anyone, who has gone down this path before me, have a
really, really, really basic example of an extension driver they are willing to share?? Something at the level of controlling an IoT relay from Crestron home where all you can do is turn it on/off.?
Thanks in advance for the help.
Jay
|
But isn’t there a pile of stuff going on in almost every driver?? Of course the next one will go much,much faster. I’m just concerned about the learning cliff.
Thanks?
toggle quoted message
Show quoted text
On Wed, Feb 17, 2021 at 8:38 PM Caleb Radecky < caleb@...> wrote:
Well, to be fair there is a pile of stuff going on inside the Pentair module and there was a bit of "well if I knew I was going to need the data this way" moments. I feel pretty confident that the next one I attempt will take
me 1/8th the amount of time this one took.?
The steps to create an extension in the documentation do show how to implement them, I'd start there.
Caleb
Radecky |?Manager,
Online Products & Services
Crestron Silver Certified Programmer | DMC-D-4K | DMC-E-4K
ControlWorks
Consulting, LLC |?Crestron
Services Provider?|
D.?440.771.4809 |?O.440.449.1100?X1109 | F.440.449.1106 |
Thanks Caleb.?
I’ll take a look at that section of the SDK.? I’ve just always liked to start with something that illustrates the correct approach to a programming paradigm rather than trying to figure that out from documentation.?
All the drivers I’ve been releasing on my GitHub are S# with S+ wrappers.? However I’ve only dug into S# Pro once and that was years ago during the original S# beta.? I just haven’t had a need for S# Pro since
It doesn’t give me a lot of confidence that it has taken you a month to take an existing S# module and port it to Home.? How many people can dedicate that much time to develop a single driver for a real world project?
Thanks again?
Jay
On Wed, Feb 17, 2021 at 8:03 PM Caleb Radecky < caleb@...> wrote:
We are just about to release version 2 of our Pentair IntelliCenter module which was a SIMPL+ module rewrite in SIMPL#. That task alone was a fun challenge and we were about to release that version until we decided to wrap in the Crestron
Home components in the same library that plays with SIMPL Windows. It’s taken me about a month – from not knowing anything about extensions, to about to release the Pentair IntelliCenter Driver. While I don’t have any code that I can share, I started off following
the Create an Extension Driver section of the SDK documentation with the goal of just having a button do something on the CP4-R, and worked out from there which I think would be good for someone starting out. It wasn’t until I didn’t understand one of the
steps that I referenced the samples. While the samples do compile and run(I think I actually ran them once when Lincoln had enough of me screaming at the CP4-R in a WTH moment) I only use them for reference material. The process was certainly A LOT of trial
and error.? Documentation is ok, there is a lot of reading between the lines, and a lot of going may places on the SDK site to put the jigsaw puzzle together.
?
Jay I know you know your way around Visual Studio, but for anyone else reading this, if you haven’t really played with SIMPL# and/or SIMPL#Pro and you’re trying this out, be prepared for steep uphill battle.
?
Caleb
?
Caleb Radecky |
Manager, Online Products & Services
Crestron Silver Certified Programmer | DMC-D-4K | DMC-E-4K
ControlWorks Consulting, LLC | Crestron Services Provider |
D. 440.771.4809 | O.440.449.1100 X1109 | F.440.449.1106 |
?
?
I've had a request to port the Weatherflow Tempest weather station driver I wrote to Crestron Home.? How bad can it be.? So, I downloaded the driver SDK from
and got it installed on my laptop.? Then I started to try and dig in.? Crestron supplies a bunch of sample projects so I figured that was the best place to start.? I could find a nice simple
sample and then start digging through the code and the help files to see what is going on.
Now my understanding is that a driver for an extension device, like a weather station, is the easiest type of driver to create so again, how bad can it be.?
So, I look at the extension driver samples and there is one for a door lock.? Opening up the sample Crestron has chosen to include every possible bit of functionality you can think of for a door lock.? It includes access list support, jam support, and the
list goes on.? All that extra functionality in a sample that you are using to try and just get started with something new obfuscates the underlying structure you are trying to understand.
When I want to start learning something new I want to start at the "see spot run" level.? As stupid simple as possible.? Once I have a clue I can take baby steps and move onward to something a bit more complex.? Now a door lock isn't like trying to learn
to speak English by trying to read "War and Peace" but with all the added functionality Crestron included it is certainly at the level of a novel by Earnest Hemingway.?
So, this saga finally brings me to my question.? Does anyone, who has gone down this path before me, have a
really, really, really basic example of an extension driver they are willing to share?? Something at the level of controlling an IoT relay from Crestron home where all you can do is turn it on/off.?
Thanks in advance for the help.
Jay
|
The reason I (and others) have said that Extension Devices are easier to implement than other CCD device types is kind of a "bad thing" if you're looking to be a CCD purist. It's largely because you have greater opportunity to NOT follow the CCD SDK architecture and go off-piste.
CCD has a specific architecture which is (very roughly) a base driver class, coupled with a transport (e.g. TCP, Serial, ...) and a device (or device family) specific protocol (e.g. the language the device speaks).? These classes are dependant upon one another and need to interact in some very specific ways to work properly, such as device instantiation and removal - what does my device do at start-up, how do I clean up after myself, are commands fire and forget, or do we need to maintain a connection, what happens when the connection is broken, and so on.? In the case of a Display, Cable box or AVR, you really need to stay in your lane for this stuff - but it's often not apparent (from the docs/samples) how you're supposed to do that.
As Caleb pointed out - you find your way through a lot of trial and error, which isn't where we want to be as driver developers.
Extension devices are a bit different - because the consuming app (i.e. Crestron Home) doesn't have any understanding of what the driver actually *does*, it's easier (or less improper) to break out of the CCD mould and implement your transport and protocol any way you like, and if you already have that code from a SIMPL#/S+ version, then it's either that, or re-write the older driver code from scratch in a CCD conformant architecture.
Even so, Extension devices have other elements that "normal" drivers don't - such as the UI definition, translation files, and - most likely - a heavier reliance on User Attributes (a CCD way of passing in custom data).? They all come with their own ways to trip you up on your first few outings... or even after a few years!
And before anyone asks - yes - the frustrations and challenges and suggestions on where improvement can/should be made is all reported back to Crestron, directly into the drivers team & product managers.
|
Thanks Oliver.
I guess I have to start reading and follow the path that Crestron
has laid out rather than the way I usually learn new things.
P.S. - I didn't know you were a skier.? You gave it away with
your "off-piste" reference?
On 2/18/2021 3:30 AM, Oliver Hall
wrote:
toggle quoted message
Show quoted text
The reason I (and others) have said that Extension Devices are
easier to implement than other CCD device types is kind of a "bad
thing" if you're looking to be a CCD purist.
It's largely because you have greater opportunity to NOT follow
the CCD SDK architecture and go off-piste.
CCD has a specific architecture which is (very roughly) a base
driver class, coupled with a transport (e.g. TCP, Serial, ...) and
a device (or device family) specific protocol (e.g. the language
the device speaks).? These classes are dependant upon one another
and need to interact in some very specific ways to work properly,
such as device instantiation and removal - what does my device do
at start-up, how do I clean up after myself, are commands fire and
forget, or do we need to maintain a connection, what happens when
the connection is broken, and so on.? In the case of a Display,
Cable box or AVR, you really need to stay in your lane for this
stuff - but it's often not apparent (from the docs/samples) how
you're supposed to do that.
As Caleb pointed out - you find your way through a lot of trial
and error, which isn't where we want to be as driver developers.
Extension devices are a bit different - because the consuming app
(i.e. Crestron Home) doesn't have any understanding of what the
driver actually *does*, it's easier (or less improper) to break
out of the CCD mould and implement your transport and protocol any
way you like, and if you already have that code from a SIMPL#/S+
version, then it's either that, or re-write the older driver code
from scratch in a CCD conformant architecture.
Even so, Extension devices have other elements that "normal"
drivers don't - such as the UI definition, translation files, and
- most likely - a heavier reliance on User Attributes (a CCD way
of passing in custom data).? They all come with their own ways to
trip you up on your first few outings... or even after a few
years!
And before anyone asks - yes - the frustrations and challenges and
suggestions on where improvement can/should be made is all
reported back to Crestron, directly into the drivers team &
product managers.
|
Lol - I can draw metaphors with the best of ‘em! I love skiing, but I’m not that great, and age is starting to out-strip my ability. ?The result being injury!
|
If you ever make it to Sun Valley I'll be glad to show you around
the mountain.?
Having been here for over 10 years now I can attest that you can
continue to improve but it takes time on the mountain and ongoing
lessons help too.? I know people that are over 80 and ski almost
every day.?
On 2/18/2021 2:17 PM, Oliver Hall
wrote:
toggle quoted message
Show quoted text
Lol - I can draw metaphors with the best of ‘em!
I love skiing, but I’m not that great, and age is starting to
out-strip my ability. ?The result being injury!
|
Sorry for the slight off tipic... I am still trying to understand the purpose of Crestron Home. From Crestron prospective,? to capture more client base with same hardware but handicapped functionality.? Sounds good on paper but if it is so complicated to write a driver,? how are they attacking more vendors or are all drivers written by them? They seemed to be fully committed to it.
From dealer prospective,? limited numbers of vendors and models they can use. Must be a big issue now with the low stock of everything.? Then when the client says 6 months in "I need this XYZ integrated" (XYZ being whatever the latest gimmick is), how do you tell them it can't be done?
From client's prospective,? cheaper but not customizable and limited life *cough* pyng *cough*
Yet I've seen multiple people that are Crestron savvy switching their personal systems from SIMPL to Home. So confusing.
|
This is from a Commercial guy with Residential coworkers (including helping with development of an extension…which is just plain painful) so take it for what
it is:
?
There are (at least two) two types of customers: The fiddly, “I want to be able to do anything and everything with any widget I can think of, for a system of
any size or complexity” and the “I want a level of integration and I’ll more or less take what I can get”
?
?
Crestron Home is very well suited for the latter – if you can control the rules of engagement and the client is OK with more or less ‘standard’ functionality,
and nothing too crazy as far as size or scope that’s exactly the niche that Crestron Home appears to play nicely with. The tradeoff, of course, is you are given a sandbox and going out of that sandbox is difficult/painful/impossible depending on what exactly
you’re trying to do.
?
On the other hand the former is not well suited for Crestron Home, IMO – if you have weird subsystems, a giant property (or interdependent properties), very specific
preferences on operation, etc. – that’s where full custom programming makes sense. Of course the tradeoff is higher overall costs.
?
Think of it like “tract home” vs “custom home” – sure in the tract home you might be able to change paint colors, carpet vs wood, etc. but by and large the floorplan
is going to be the floorplan, the windows will be where the windows are and it might look like 6 other houses on the block (funny story from high school below)… but the cost per square foot is going to be lower because an architect is copy-pasting, the builders
have muscle memory, and the overall attention to detail may not be a strong. On the other hand with a full-custom luxury build… You want 90,000 square feet? Done. Want 2 bathrooms for every bedroom? Done. Need a walk-in closet bigger than some European countries?
No problem. Helipad? Sure. But you pay (not just in cash) for that flexibility.
?
Lincoln
?
?
(Ok so, I grew up in suburban Southern California… the land of the endless subdivision. My neighborhood had more variety than some – we had square accent windows
and brown trip while the look-alike 3 lots down had rounded windows and grey trim, such variety! Other neighborhoods weren’t as diverse. One of my science teacher/swim coaches in particular, lived in a neighborhood where someone just fell asleep on the Ctrl+V
button. One night he was startled to find a somewhat drunken neighbor stumble into his living room… not only did their houses look exactly the same 6 doors apart but they had happened to get locks using the same keys)
?
?
--
Lincoln King-Cliby, CTS, DMC-E-4K/T/D
Commercial Market Director
Sr. Systems Architect | Crestron Certified Master Programmer (Diamond)
ControlWorks Consulting, LLC
Direct: (+1)440.771.4807 | Cleveland: (+1)440.449.1100? | Boston: (+1)508.695.0188 | DC: (+1)202.381.9070? | Fax: (+1)440.449.1106
Crestron Services Provider | Biamp Authorized Independent Programmers | Extron Qualified Independent Programmer
?
toggle quoted message
Show quoted text
From: [email protected] [mailto:[email protected]]
On Behalf Of zac.sparrow@...
Sent: Thursday, February 18, 2021 4:46 PM
To: [email protected]
Subject: Re: [crestron] Crestron Home Driver Using the Driver SDK
?
Sorry for the slight off tipic...
I am still trying to understand the purpose of Crestron Home. From Crestron prospective,? to capture more client base with same hardware but handicapped functionality.? Sounds good on paper but if it is so complicated to write a driver,? how are they attacking
more vendors or are all drivers written by them? They seemed to be fully committed to it.
From dealer prospective,? limited numbers of vendors and models they can use. Must be a big issue now with the low stock of everything.?
Then when the client says 6 months in "I need this XYZ integrated" (XYZ being whatever the latest gimmick is), how do you tell them it can't be done?
From client's prospective,? cheaper but not customizable and limited life *cough* pyng *cough*
Yet I've seen multiple people that are Crestron savvy switching their personal systems from SIMPL to Home. So confusing.
|
I'll throw in one more perspective.? Not all dealers are created
equal.? There are dealers that have a really good programming
staff and others that may otherwise be really good at A/V but
don't do programming well.? The best dealers can deliver? a very
customized/large system but other dealers struggle and Crestron
has to take the phone calls from unhappy homeowners who weren't
educated enough to tell the difference until it was too late.? A
product like Crestron home levels the playing field and allows a
good A/V dealer that doesn't have great programmers to be
successful delivering Crestron systems.?
Great story about your old science teacher/coach Lincoln.
On 2/18/2021 3:45 PM, Lincoln
King-Cliby wrote:
toggle quoted message
Show quoted text
This
is from a Commercial guy with Residential coworkers
(including helping with development of an extension…which is
just plain painful) so take it for what it is:
?
There
are (at least two) two types of customers: The fiddly, “I
want to be able to do anything and everything with any
widget I can think of, for a system of any size or
complexity” and the “I want a level of integration and I’ll
more or less take what I can get”
?
?
Crestron
Home is very well suited for the latter – if you can control
the rules of engagement and the client is OK with more or
less ‘standard’ functionality, and nothing too crazy as far
as size or scope that’s exactly the niche that Crestron Home
appears to play nicely with. The tradeoff, of course, is you
are given a sandbox and going out of that sandbox is
difficult/painful/impossible depending on what exactly
you’re trying to do.
?
On
the other hand the former is not well suited for Crestron
Home, IMO – if you have weird subsystems, a giant property
(or interdependent properties), very specific preferences on
operation, etc. – that’s where full custom programming makes
sense. Of course the tradeoff is higher overall costs.
?
Think
of it like “tract home” vs “custom home” – sure in the tract
home you might be able to change paint colors, carpet vs
wood, etc. but by and large the floorplan is going to be the
floorplan, the windows will be where the windows are and it
might look like 6 other houses on the block (funny story
from high school below)… but the cost per square foot is
going to be lower because an architect is copy-pasting, the
builders have muscle memory, and the overall attention to
detail may not be a strong. On the other hand with a
full-custom luxury build… You want 90,000 square feet? Done.
Want 2 bathrooms for every bedroom? Done. Need a walk-in
closet bigger than some European countries? No problem.
Helipad? Sure. But you pay (not just in cash) for that
flexibility.
?
Lincoln
?
?
(Ok
so, I grew up in suburban Southern California… the land of
the endless subdivision. My neighborhood had more variety
than some – we had square accent windows and brown trip
while the look-alike 3 lots down had rounded windows and
grey trim, such variety! Other neighborhoods weren’t as
diverse. One of my science teacher/swim coaches in
particular, lived in a neighborhood where someone just fell
asleep on the Ctrl+V button. One night he was startled to
find a somewhat drunken neighbor stumble into his living
room… not only did their houses look exactly the same 6
doors apart but they had happened to get locks using the
same keys)
?
?
--
Lincoln
King-Cliby, CTS, DMC-E-4K/T/D
Commercial Market Director
Sr. Systems Architect | Crestron Certified Master Programmer
(Diamond)
ControlWorks Consulting, LLC
Direct: (+1)440.771.4807 | Cleveland: (+1)440.449.1100? |
Boston: (+1)508.695.0188 | DC: (+1)202.381.9070? | Fax:
(+1)440.449.1106
Crestron Services Provider | Biamp Authorized Independent
Programmers | Extron Qualified Independent Programmer
?
From:
[email protected] [mailto:[email protected]]
On Behalf Of zac.sparrow@...
Sent: Thursday, February 18, 2021 4:46 PM
To: [email protected]
Subject: Re: [crestron] Crestron Home Driver Using
the Driver SDK
?
Sorry for the slight off tipic...
I am still trying to understand the purpose of Crestron Home.
From Crestron prospective,? to capture more client base with
same hardware but handicapped functionality.? Sounds good on
paper but if it is so complicated to write a driver,? how are
they attacking more vendors or are all drivers written by
them? They seemed to be fully committed to it.
From dealer prospective,? limited numbers of vendors and
models they can use. Must be a big issue now with the low
stock of everything.?
Then when the client says 6 months in "I need this XYZ
integrated" (XYZ being whatever the latest gimmick is), how do
you tell them it can't be done?
From client's prospective,? cheaper but not customizable and
limited life *cough* pyng *cough*
Yet I've seen multiple people that are Crestron savvy
switching their personal systems from SIMPL to Home. So
confusing.
|
Thanks guys. The other reason I was (and still am) is because I generally pick either the cheapest or the most expensive option.? Home is a middle ground but it seems to me if someone would spend the $ for Home, why not go all the way in.?
The part about dealers struggling with programming does makes sense though. Didn't think of it this way.?
|
UI is also a big part of it.? Even if the programming works well
and the system supports all the wiz-bang ideas the customer came
up with making a decent UI takes a special talent that very few
programmers have.?
toggle quoted message
Show quoted text
Thanks guys. The other reason I was (and still am) is because I
generally pick either the cheapest or the most expensive option.?
Home is a middle ground but it seems to me if someone would spend
the $ for Home, why not go all the way in.?
The part about dealers struggling with programming does makes
sense though. Didn't think of it this way.?
|
Oh boy. I have just literally been going through this the past few days to write a custom Crestron Home driver.?? It's good to hear it's not just me.
Crestron is not my normal thing - I actually have spent my life making developer tools like compilers and debuggers, etc (embedded and non), as well as drivers and such for various devices on various platforms. So i'm usually on the other end of this - providing the developer stuff necessary to build things and make stuff work.
I've certainly seen worse than the current SDK by far, but yeah. Particularly the weird combination of rigidness/flexibility in the extension driver model. Some of it also feels like they used Amazon's mechanical turk with a task like "write a page of samples and documentation", it got distributed to 100 different people, and then they just combined them and that's the manual.
For real questions i actually don't use the manual first or alone.? I actually just use ilspy or dotpeek, and see what the assembly actually does first, then read the manual and put the two together.? It's much easier to understand the manual once you see "what is the current implementation doing".?
That is not a great state.
To the original question of a simple relay driver - i went looking when I started. On public github, there are only two people who have repositories that contain crestron home extension drivers.? ? One of them appears to be ... wait for it .. a relay driver.
Now, unfortunately, it's not well commented, and seems to delve into the programmatic functionality.
The other extension retrieves the weather from the web, and may be a simpler example for your purposes:
--Dan
|
There's also the element of competition (or rather, competitive dis-advantage).? Control 4, and others (Savant, Elan, etc. to a lesser extent), -??whatever you think about those products - have a good following with integrators. Crestron like to pull up the pyramid drawing at this point.? For commercial, that's high end bespoke board rooms at the pointy end, and gazillions of huddle spaces at the fat bottom.? For resi, we only really had the smaller pointy end, and Crestron want the fatter bottom space that Control 4 and others occupy. I have no problem with the theory there - but to compete at the fat bottom takes a different mindset/approach which I'm not sure has been achieved yet. Crestron Home (which, for the avoidance of doubt, *IS* Pyng, with a new skin) needs to cover a huge breadth of compatible products to be viable against those other guys, and Crestron don't have the bandwidth to do it all in-house.? Manufacturers don't (whatever people might claim) have the Crestron-specific skills to create drivers themselves.? That leaves people like CSPs or integrators with programming talent (and with S# skills) to mop up the shortfall.? Trying to reducing the friction here is probably what takes up 75% of my time with CCD at the moment.
|
I would strongly agree with this.
I've watched plenty of companies end up in this sort of situation. The biggest challengeis often, as you say, the mindset.
APIs, like the drivers here, are almost always a tradeoff in where complexity is exposed and who bears the burden of handling it. That, you can make the API simple to get right and the backend hard to get right, or the backend simple to get right and the API hard to get right. (It's rare you can make both true)
Lots of times i would see the driver/etc APIs go from nothing to becoming one of the main user interfaces for developers. But the engineers/etc would still focus on making the backend easy and be okay with making the APIs hard.
This almost always resulted in failure - the cases where it didn't is where the market share was so tremendous that nobody had a choice. The companies that succeeded were eventually able to shift to making the APIs much easier, and eating the backend complexity. This is a hard mindset shift to achieve - it requires getting people to be very empathetic to people they've often never really had to think of too much.
Crestron is definitely not there yet.
--Dan
|
Thanks Dan!
I will definitely checkout both of those?
I didn’t see a whole lot of comments in Crestron’s samples either so I’m hoping the relay driver at least offers a simple enough example to make it easier to understand the overall structure?
Thanks again
Jay
toggle quoted message
Show quoted text
Oh boy. I have just literally been going through this the past few days to write a custom Crestron Home driver.?? It's good to hear it's not just me.
Crestron is not my normal thing - I actually have spent my life making developer tools like compilers and debuggers, etc (embedded and non), as well as drivers and such for various devices on various platforms. So i'm usually on the other end of this - providing the developer stuff necessary to build things and make stuff work.
I've certainly seen worse than the current SDK by far, but yeah. Particularly the weird combination of rigidness/flexibility in the extension driver model. Some of it also feels like they used Amazon's mechanical turk with a task like "write a page of samples and documentation", it got distributed to 100 different people, and then they just combined them and that's the manual.
For real questions i actually don't use the manual first or alone.? I actually just use ilspy or dotpeek, and see what the assembly actually does first, then read the manual and put the two together.? It's much easier to understand the manual once you see "what is the current implementation doing".?
That is not a great state.
To the original question of a simple relay driver - i went looking when I started. On public github, there are only two people who have repositories that contain crestron home extension drivers.? ? One of them appears to be ... wait for it .. a relay driver.
Now, unfortunately, it's not well commented, and seems to delve into the programmatic functionality.
The other extension retrieves the weather from the web, and may be a simpler example for your purposes:
--Dan
|
Hi Jay,
First, I wanted to thank you for your code development over the years. I have used the Prowl module at home and it is great.? Second, have you have any progress on the Tempest driver for Home??
|