This morning, I find myself with a small corral of naked Yaks. I’m guessing most people know about Yak Shaving Here’s how it went this morning.
Actually, it started yesterday. I wanted to change the thermostat setting at the Cabin so it’d be nice and toasty when we got there. Can’t for some reason. Dig into the HomeAssistant console and discover the reason is that the component for my Venstar ColorTouch thermostat isn’t disabling the schedule so changing the temperature fails and generates an error from the thermostat. I should fix it.
I figure out how to fix the bug but in order to submit a patch, I need to upgrade my HomeAssistant installation.
So do all the requisite ‘git fetch; git merge upstream/….’ stuff, and then upgrade everything in the virtual environment.
Unfortunately, I can’t upgrade the virtual environment because my Python is too old.
Can’t ‘apt install’ a new Python because I’m on an old Ubuntu 16.04. Don’t want to go down that path right now.
Download a new Python, build, install.
Create a new virtual environment and reinstall all of the packages.
Installing packages fails (Twisted) because libbz2-dev wasn’t installed.
Rebuild Python and reinstall.
Create a new virtual environment with the new python and reinstall all of the packages.
Installing packages fails due to a build problem with libopenzwave.
Looks like I need to upgrade my toolchain (g++ specifically).
I don’t like the look of that particular Yak. Lets try upgrading to Ubuntu 18.04.
My current version of ProxMox doesn’t support Ubuntu 18.04.
I need to upgrade ProxMox first. Oh, that’s the greasiest Yak yet. It’s a major version upgrade.
I should really just build a new ProxMox from scratch, while running the old one.
I don’t have enough hardware to build a new ProxMox server, even temporarily.
I think I’m on the last Yak. So in order to submit a patch against HomeAssistant, I need to go to the Hardware Store.
The thermostat arrived and I was excited. I plugged it in on my bench at home and the first thing I found was the temperature sensor was off by about 5F. I knew I could set the calibration in the menus but wasn’t sure if the amount it was off was linear or not. I contacted tech support and received a response back almost right away. After a couple of back/forths with tech support, they offered to send me a wired temperature sensor to try instead. That was on November 12th. Since then, I’ve updated the firmware on the thermostat and now it has, twice, locked up completely. I have to cycle the power on it to get it to come back. I fired off another question to tech support and received no response.
It is now December 11th and I’ve not heard anything from tech support since the first instance on November 12th.
In the meantime, I’ve mounted the thermostat on the wall and hooked it up to my furnace and it seems to work fine enough. I’ve also modified a few scripts so I can continue to monitor it remotely. I’ve even written a bit of an API for it in Python.
It hasn’t hung on me since I mounted it to the wall so I’ll continue to keep an eye on that.
It’s still a great thermostat as long as you don’t want tech support.
Edit: Tech support is actually responsive. The problem is that my emails don’t reach them. They claim to have never received any emails from me even though I’ve confirmed in my mail logs that their MX has accepted my message. If I communicate with them via their web-form then tech-support is very responsive. Clearly they have some aggressive anti-spam filters on their email that are generating false-positives.
If you’ve looked at the rest of my blog you’ll see that I’m a bit of a control freak. I like to gather data and use that to monitor and control my environment; specifically our cabin. When we first bought our cabin and put in the new furnace, I also bought an RCS TR60 thermostat with an RS-485 interface. I wrote some python scripts to monitor it (and put data into a Mysql DB) as well as control it with the primary goal of setting the temperature before we leave home so the house would be at a comfortable temperature when we arrive. As a side effect, I also used the Heat setpoint as an occupancy signal to HomeAssistant. Unfortunately, before buying the TR60, I also bought a Radio Thermostat CT80. A month or so after installing the CT80, we arrived at the cabin to find the inside temperature was over 90F and the buttons on the CT80 were unresponsive. The unit failed in the ON position. This is only slightly better than failing in the OFF position (frozen pipes anyone?).
Well, after 8 years, the RS485 interface on our TR60 has stopped responding. The thermostat still works but I just can’t communicate with it through the serial interface so it’s time to buy another one. Anyone whose tried to do the same will be disappointed that the vast majority of thermostats out there require cloud access. Ignoring the sheer stupidity of handing over control of your house to a third party with unknown security and coding practices, it also assumes an active internet connection and finally, assumes the company isn’t going to decide one day that its business model can no longer sustain its cloud service. In the latter case, you end up with nothing more than an old fashioned smart thermostat.
It looks like there are a few options for us out there:
These guys have a developer site and nicely document the API for you!
Another option is to build your own using an Arduino or Raspberry Pi. I’m very much not in favor of this approach. There are a lot of edge cases that I can think of and, as someone who does embedded firmware for a living, think that my time is better spent elsewhere. My furnace is not a hobby; it’s something I want to “just work”.
Having learned from my RadioThermostat days, I’m going to buy myself a couple of the old-style mechanical thermostats. One I will wire in series with the heat wire to prevent the inside temperature from getting too high and the other I will wire in parallel with the heat wire to prevent the inside temperature from getting too low. This way I can ensure that any failure of my smart thermostat will not end up with frozen pipes or excessive gas/electricity usage.
I’ll report back on how the Venstar ColorTouch experience goes.
Angus and I are working on a project together and he decided to try to do the PCB using Upverter. He’s had some limited success with it at one of his customer sites and as we all know, KiCad isn’t exactly the easiest tool in the bench…
Upverter might be an ok hobbyist tool but $100/month/seat, they’re dreaming. Maybe at $5.00/month for hobbyists but in no universe is any enterprise going to buy into this. I’ve spent time using Mentor Graphics which is an actual enterprise tool and Upverter is like comparing Sketchup to Autodesk Inventor.
In addition to instabilities, I haven’t quite figured out how to communicate with my collaborator(s) in Upverter and it would seem that there isn’t actually a way. That’s a very obvious omission for which there is a lot of precedent (google docs anyone?)… I want to highlight an area of the schematic and refer to it in a chat window… I feel kind of stupid because I can’t see how something like this isn’t prominent in the app but I just can’t find it.
The next major irritation is screen real-estate.. When I’m doing CAD, I want to see as much of my design as possible. I try to make toolbars go away but with the Upverter app running inside a browser tab, I lose a ton of screen real estate to the URL bar and the tab bar. Then inside the tab is the Upverter toolbar that also doesn’t appear to want to be hidden away in any fashion.
This is all just from browsing around. I haven’t even tried to design anything with it. It just reinforces my conclusion that online ‘software as a service’ type applications are a waste of time and I’m taking bets on just how long Upverter will be around. I certainly wouldn’t put any of my designs on there because I don’t see them being around in a year or maybe two at the most.
To me, a company that “gets” e-commerce is one that sends you an order confirmation, and then provides a decent interface to track your order. Your order is fulfilled quickly, as in the same or next day. The package is shipped the next day at the latest (barring an item that needs to be manufactured first, and that should be stated clearly before accepting the order)… Also, shipping cost is reasonable. Handling should be part of the price.
Digikey.ca is such a company. Recently, and on two separate occasions, I placed an order after 6PM. I received a FedEx tracking number within 2 hours. The package was at my door 14 hours later (North Dakota to Calgary, Canada) Shipping was $8.00. Simply amazing. You’d never buy parts from Digikey for a mass produced item, but for the home DIYer, it’s an awesome service.
Contrast ZoroCanada against Digikey. I placed an order on March 8th. By March 12th, the status on their useless web interface said “Pending Fulfillment”. When I called, I was told the package was being shipped from their warehouse to their fulfillment center via UPS at which point it would be given to DHL and I would receive it within 48 hours. By March 14th, I received a DHL tracking number. However, the tracking number was essentially that a Waybill had been created but the package had not actually been picked up because, presumably, ZoroCanada hadn’t actually called DHL. March 16th, the DHL tracking number indicated movement. Unfortunately, what happened next was quite surprising. March 18th, I receive a Canada Post tracking number. DHL handed off the parcel to Canada Post at the border and as of March 19th, Canada Post tells me the parcel will be delivered on March 22nd. Shipping cost was $55.00. Now I understand why shipping was so expensive. They had to pay 3 separate carriers! The contents of this package were needed by me before today.
As I get older, I find my desire to do sysadmining is waning. I just want stuff that works; I already have plenty of hobbies. I got tired of dealing with disk failures on my Plex server and my distaste for sysadmining overrode my tendency towards thriftyness. I decided spending $500-$600 on a NAS was a worthwhile purchase. A friend mentioned that a friend of his had a Drobo that he was happy with and I looked there. I compared features with the QNap and Synology units available at the local retailer and decided a Drobo-5N was just the thing.
I was attracted to:
no tools disk install
no real need to do administration. Just slide disks in and it figures everything out on its own.
availability of plugins
industrial design (magnets are what hold the front panel in place)
But mostly, I wanted something that would ‘just work’ and not turn into a hobby. So I bought it, and a couple of 4TB disks and brought it home.
I installed 2 4TB disks, 2 2TB disks and a 1.5TB disk. The lights flashed and all kinds of stuff happened and after installing the Drobo Dashboard software, it all looked cool.
So I went to droboports.com and selected a few packages. Since I wanted NFS for my Plex server, I installed it, along with ssh, vim, and a couple others. In order to install ssh, there’s some jumping through hoops you have to do with /etc/group, /etc/passwd, and so forth. This is where the problems started.
In short, I bricked the Drobo 5N. I followed the instructions on droboports to the letter but it was dead. I realized I’d screwed up so went with a ‘Factory Reset’ but that didn’t solve the problem. I tried the reset button on the back but all I managed to do was clear out my settings but still it was unhappy and I couldn’t use it. I should mention in all of this that my previously created mountable volume became erased as well. Good thing I’d only copied about 4TB onto it that I still had stored elsewhere. But the act of hitting the ‘Factory Reset’ button causes all of your setup to go away, including your disk volumes.
After a bit of back and forth with front-line tech support wherein all the stuff I’d already tried was suggested, I was referred to second tier support who immediately came back with “reflash your firmware, here’s a link to the image and instructions”… After reflashing the firmware, all was well again.
I rebuilt my volume and got NFS installed. I also tried to install Crashplan by clicking the checkbox in Drobo Dashboard but the installation failed. After some googling, it turns out you have to use Droboports again to install Locale and Java. The side question is: why provide a checkbox to install a package when you still have to do all kinds of commandline installs of dependancies? A bit of false advertising there.
I got my Plex media server to stream off the NFS mounted Drobo volume and everything looked great. I settled in for some well earned TV viewing. About an hour in, the NFS mount stalled and the Drobo seemed to hang. Rebooted the Drobo as well as the Plex media server and tried again. It hung again. I punted and went with an SMB mount. That worked well enough. A little sub-optimal but whatever. I guess this Drobo ports thing isn’t all it’s cracked up to be.
I went away for a 4 day weekend, and when I came back, the Drobo was bricked again. In short, I couldn’t get it to respond to the Drobo Dashboard app. After starting another tech-support ticket and going through 7 days of back and forth with frontline support, (one exchange per 24 hour period) I was finally referred to second tier support. By this time, I had discovered that if I removed all the disks, I could talk to the Drobo but of course couldn’t do anything. If I re-inserted the disks one by one, I could talk to it until I put the 5th disk in; then it went unresponsive. The love affair was over. It seems as though I lost a disk (the 1.5TB). The disturbing thing is that this is exactly the scenario that prompted me to buy the Drobo. However, even with the 4 original disks, the Drobo was unable to mount the volume. The message was “there are not enough disks to mount the volume – mount failed”… This is not how a NAS is supposed to work. While messing around, I’m still waiting to deal with Tech Support. All of my exchanges with them told me that they’re not capable of reading the ticket so I was asked to try things I’d already tried and itemized in the first message. Remember, each exchange is about 24 hours. After a few days of this, it came down to “Do a Factory Reset and start over”.. In other words, throw away all of my data and recreate the volume. I asked “is there no useful diagnostic information to be gleaned here as to what happened?” … The answer, “maybe. Let me transfer you to second tier support. After a couple of useless exchanges, wherein we were running out of things to try, tech-support went dark. Over 48 hours with no response and a couple of “Hello? Is there anyone there?”, I decided enough was enough, I went back to my retailer to return the unit. They have a 7 day exchange policy but after reading through a transcript of my tech-support tickets, they refunded my money. I got the impression they weren’t surprised, as in this had happened before. I think it’s likely they’re going to drop Drobo.
After some googling, I decided upon a Synology DS414. I brought it home, installed the 4 disks that were previously in my Drobo 5N (leaving out the 1.5TB that conceivably failed) and it’s been trouble free for over a month. In fact, I’ve started migrating services over to the Synology including DNS forwarding, DHCP, and Asterisk. I’ll move my Subversion repository over to it as well, and then I’ll be able to turn off one of the machines in my rack and realize some power savings. The best part is there’s been a relatively steady stream of free firmware updates which address linux security vulnerabilities and a major upgrade with new features. All free!
I did finally hear back from Drobo tech support with a “Sorry about the silence. I was sick and out of the office”. So apparently there’s nobody managing tech-support. Tech support is ‘a guy who responds to tickets’, not a department with a manager who makes sure all tickets get timely responses. When I responded “Too late, I already returned the Drobo and bought a Synology”, the response (the next day) was “Great!” and the ticket was closed with “Solved”.. I was then sent a Support Survey link where I unloaded my mental baggage itemizing my poor experience with their product. Either nobody reads the surveys or they don’t care because nobody ever contacted me. If I was running a small company in a highly competitive consumer electronics vertical market, I’d be right on top of bad survey returns.