Originally Posted by IVB
For those of you who have attended one of my "Intro to HA" webinars, remember when I said that of the 1000 hours i'd have to spend building out a complete smart home if I was starting over, the GUI would represent somewhere between 10-100 hours? That's what DavidL/Smoothtlk is referring to.
That is an interesting time allocation. I find that drawing or customizing GUIs and writing the associated code for them is what takes the most time. If you are using a 14" touch panel or web tablet it's no big deal. When move down to 4-6" touch panels it becomes more intersting, in terms of exiting out features or distilling the essential features for that device and then writing the code for it. It is true that I have to deal with panels from 4.6" to 17" diagnals, some 4:3 or 800x600 and some wide screen or 1368x768. That's a ton of Photoshop work to make everyting look right. When you are combining small and large panels, including global control on some but not others developing the UI over a variety of panels can take a fair amount of time. I think 100 hours might be insufficient for a first timer with little or no experience to hit upon the right solutons for his system.
Driver creation can be fairly quick. I can take most protocols and have a 1 way driver in less than 60 minutes and a 2 way driver in a few days. Feedback is a pain largely because it is rarely in the form that is 100% dependable and secondly there are often strange timing issues that need to be taken into account and that only gets worked out with trial and error. The more feedback the longer it takes for the driver.
CD servers and security systems can take a while to work out, especially the latter as they are notorious for not being all they appear at first sight.
Having once looked at your screen shots my biggest problem is that your GUIs were coded for power users. I try to code mine for the basic user, while letting the power user have more control but forcing him to work a little harder. I find it hard to believe that even a graphic artist could generate the graphics in less than 30 hours and few graphic artists in my experience understand touch panels or UI's. I'd think you'd need at least 100 hours and perhaps more time to develop a userable UI for the basic user that satisfies the power user--and anyone participating on this board is apt to be a power user.
Every system and languge has its quirks. I cannot speak for CQC or the other DIY solutions since I have not played with them. Crestron certainly has its quirks. In the old days you had to trigger a DELAY with a one shot to make it work. Why? Becuase. You need to manage the amount of data going over Crestnet. But I'll also suggest that these past 2 weeks, I've been spending rediculous amounts of time coding systems. Identical code worked in one system while the second required me to rewrite the entire lighting logic. Since I perform a spectrum analysis of the RF in that enviorment before deciding on what wireless frequancies to assign all wireless devices all I can say is that you are apt to run into quite a few unforseen stumbling blocks.
There is most certainly a satisfaction from seeing the code you've written work. There is some satisfation in being able to design the UI as you see fit, not as some else thinks you should or is able to code for it. Still assigning only 10% of ones time to the UI seems low to me. My experience is that 30-40% of my time is UI related. It does matter that I program for a number of different firms whose salesman foolishly sell features that require--sometimes endless--editing or redrawing of my UI. It also does not help me that I code the way I feel something should work and not the fastest method that gets me out of the job. Lighting for example, I don't hard code the logic but let the scenes be programmed in run time ( with defaults built in so the logic will work out of the box. ) That requires a lot of dumb data entry as every system is different. There will be fewer or more loads in any job. I also made the time consuming and possibly foolish decsion not to code in the fastest way, by using numbers ( zone 1, lts_f1_r1) but by using room or zone names. That increases my data entry, often by a factors of 10. Still, the UI is the single most time consuming part of my job. If I could only standardize it for every job and every client I could lower my programming time by at least 30%.
But maybe I'm not as smart as some others and make up in effort what I lack above the shoulders. Or I still provide custom solutions whereas more successful institutions provide repeatable solutions.