I’m giving up on Apple HomeKit

My setup for Apple HomeKit was an iPad, a HomePod Mini, and my personal iPhone. The iPad was where I would configure Shortcuts > Automation > Personal Automation, which would light up Bluetooth and play playlists. My goal was to replace my Amazon gear as my home alarm clock. The Amazon Echo system started well, but enshitification happened, and I removed all that gear from my life.

The HomeKit solution mostly worked, except when it didn’t. The iPad would, once in a while, simply register an error instead of doing the automation task. It can be a real bummer when your alarm clock doesn’t go off. I lived with the poor behavior because it only happened every week or two or so. But I had a nagging feeling that long term, this is not going to be acceptable to me. Computers can be reliable, and I’m not willing to pay Apple’s price for an Apple TV. I think I confused the Mac Mini with the Apple TV; the Apple TV is about the same price as what I went with later.

Speaking of which, I’ve abandoned the low quality competitor, too: my Roku Ultra is powered off and headed for the scrap heap.

The thing that kicked my ass into gear on abandoning HomeKit was the most recent upgrade of iPadOS. I forget if it was 18.1 or 18.2, but after the upgrade, all my playlists were empty. The MP3 files are still on the iPad, but the playlists I’d programmed into Apple Music were empty. Would I like to add my music from the Apple iTunes store? Go kick rocks. I copied the MP3 files to the box for a reason.

So now I have a choice: recreate the playlists on a box I don’t think is going to work out in the long run, or, start over on something new.

I chose to start over on something new.

Nicely enough, my brother gave me a great Christmas gift last year: the Morefine M8S N100 Alder Lake PC. My brother specifically looked for one of these because a reviewer he listens to said this small form factor PC is one of the quietest boxes with active cooling, and specifically is Linux compatible. I wiped Windows off of it and installed Manjaro Linux, just like my main desktop. The HDMI on it drives my television (monitor) and I use Bluetooth to connect to the soundbar.

As mentioned in the Home alarm clock: no progress post, I’m not having success running it headless. So why not go whole hog in the other direction? I have a work-around: turn the display panel off. I have to use the TV remote to pull up the menu which lets me power down the display panel. If I want to see the screen again, I use the remote. Other than that, the Morefine M8S is a normal Linux desktop driving a television set, and the television set never turns off (well, the electronics driving the tuner / HDMI ports, at least). This also lets me use Rumble as a YouTube replacement, with a wireless mouse and keyboard from my bed. But I digress.

I’m using KAlarm to run commands on a schedule. The commands are:

vlc --intf dummy /path/to/music/playlist.file

And so far, it hasn’t failed to play an alarm yet.

A bonus feature I didn’t expect: the alarm music sounds better. Of course it does, an iPad playing an MP3 to a soundbar doesn’t do 5.1 stereo; but Manjaro on the Morefine M8S does know how to send that type of stream over Bluetooth. My guess is that Apple was nerfing the MP3s in favor of AAC from the Apple iTunes store; I don’t know. But I do know that the new setup simply sounds way better.

And a future bonus feature will be that I could write a Perl script to replace the contents of the .pls or .m3u files if a desire for variety should strike me.

The only downside has been that the HomePod Mini is now kind of useless. It was nice, having the automation on the iPad to be able to play something in either the soundbar in my bedroom (mornings and evenings) or the HomePod Mini in the living room near my main PC (lunch break times).

I am going to flash a Raspberry Pi with Homebridge, but I don’t know if that will let me send a VLC stream to the HomePod.

Still, I have a great setup for watching Rumble or such while I fold my laundry, listen to a podcast to fall asleep to, and I have faith that my alarms will no longer fail me.

Home alarm clock: no progress

Today was pretty depressing. I want my morning alarm clock to be some sort of automation that plays three MP3 files I own on the sound equipment in my bedroom. I spent a lot of time today and do not have a solution.

When I bought the soundbar from Costco, I didn’t know to shop for something Home Assistant compatible. Although, even if I did know that, I think I’d still be stuck because I would feel like an absolute fool to pay $1,000 for a Sonos Soundbar. Sonos is the only vendor of soundbars that plays really nice with Home Assistant.

Apparently, way back when, some LG Soundbars had Ethernet ports on them, and they played nice with Home Assistant. Those aren’t available anymore; with everything having switched over to Bluetooth.

My current solution is an iPad using Bluetooth to light up the soundbar I hooked up to my TV. It works, often. But it doesn’t work 100%, which is a problem for the functionality of an alarm clock.

Also, there is no volume control: whatever the TV left the volume at, the music will play at that volume the next morning. This is sometimes a problem if the movie the night before was really loud, and I needed to turn down the volume to not blast out the neighbors or the speakers. I want automation to make my life less manual control, instead of “Oh! I changed the volume on the TV! I need to reset to xx for tomorrow morning!” just before I fall asleep. That’s the opposite of starting a nice night’s sleep.

My brother gave me a Mini PC running Windows 11 for Christmas. I was hoping that today I could set it up to use the soundbar as a Bluetooth speaker. Well, yes, when connected to a monitor and keyboard and mouse, I did get an MP3 file to play via Bluetooth on the soundbar.

So close.

But what about when the Mini PC is running headless? Nope. Could not get that to work. It is Microsoft Windows, after all. I’ve been using Microsoft products for 30 years, and they just are not good at automating anything. I suspect they think that automation is a Bad Thing, and should only be wielded by wizards instead of mere mortals.

So here I am at the end of a wasted day, without a better solution for my home automation alarm clock that mostly works. It is depressing.

Man I hate the Orbit B-Hyve sprinkler controller

A while ago, I reconfigured my network, and I got an email from Orbit that they hadn’t seen my device check in with them in a while. Yes, it was going to need to be reconnected to WiFi. Today, the weather is getting warm, and I need to connect the thing up. It won’t connect.

I vaguely remember that it was super difficult to connect the first time, too.

Later, I wanted to change my email address, and I called their technical support number and talked with a guy: how do I change my email address? You don’t. They don’t have a way to allow someone to change their email address. I could create a new account at the new email address, but then I’d have to re-do the setup all over again.

My experience with Apple is that you can never actually delete an app with old data. They store it in their cloud, and the reinstall always brings back the old data. I had even called Apple technical support, and a very nice lady remembered that once-upon-a-time apps could be deleted from a person’s account in the cloud. She checked with a developer, and sure enough, they removed that ability a couple iOS versions back.

So now I have this fear that if I were to delete the Orbit B-Hyve app, I wouldn’t actually be able to delete it and it’s data. I’d try to reinstall, but it would bring back the bad data Apple has stored in their cloud. Remember kids, Apple app data becomes a part of your permanent record….

I have zero faith that the Orbit people can code up an app that deals with this situation. I mean, they can’t even code up an email address change….

The Orbit device is super frustrating because their stupid instructional video acts as if everything is going to Just Work. It doesn’t, and that’s the end of their knowledge. Of course I went searching on the Internet, and Reddit has some people with similar problems, and

  1. Technical support is stupid and can only ever tell their customers to uninstall and reinstall the app. Anything more than that, and they have to RMA the unit. I’ve had the unit long enough, it’s no longer under warranty.
  2. Apparently, some people got the connection to work by turning on location services on their smartphone. Orbit technical support didn’t know that was something that had to be done. In my case, location services are already turned on, but I don’t see the Orbit B-Hyve app in the list of apps that request location services. I am loathe to delete the app and start over because of the iCloud behavior mentioned above.
  3. The instructions do make clear that the sprinkler controller can only do 802.11b (1999) and 802.11g (2003). Well, that’s a stupid design choice, but should not be a problem for me because the WiFi router I’m hooking it up to is one of those. No good reason to waste an otherwise okay router; it’s not like IoT devices need a lot of bandwidth.

Problem is: I’ve got to connect to the controller with my “modern” iPhone. The iPhone seems to intensely dislike the old WiFi. That may be a reflection on Apple for not playing nice with others.

Still, I’m in a situation where stuff doen’t work. If Orbit hadn’t built a box with ridiculously old technology, -or- built firmware updating into the box, these problems could be solved.

What is so frustrating is that the Orbit instructions say that once the box is in WiFi pairing mode, it will stay there for an hour. Reality is that the SSID shows up for about 15 seconds and then vanishes. It takes a whole system reset (clear CMOS) to get it to go into pairing mode again.

Even when I do get my iPhone to connect to the Orbit SSID, it doesn’t stay connected long enough for the app to see the device.

The iPhone does warn me that the WiFi connection is in plain text / unencrypted. Because the Orbit only powered up a few seconds ago, I’m sure the date is 2015-01-01. I don’t know if the iPhone is okay with that or going to “protect me” from connecting to such a wide open network. The iPhone keeps advancing with updates in security standards; I’m pretty sure the Orbit never will.

All I really know is that my lawn and shrubbery are going to start dying in the heat unless I can get this sprinkler controller connected.

Nothing gives me hope that it will connect easily, if at all.

I should have bought a unit from Hunter or Rachio. Way more expensive though. Who would have thought that you get what you pay for?

I goofed and tried to secure a web admin interface

Now Firefox won’t let me log in. I’m going to have to factory reset the router, configure it all over again, and this time leave it configured for clear text only.

This seems like going backward.

I mean, I get it: it is clear that RC4 is too easily broken, so support for it was removed.

But I’m not so wealthy that I want to just throw away an otherwise fine – old – router. I put the latest version of Tomato on it that still runs on that platform; but, that version of firmware is from 2010.

This is for my Internet of Things network. Nothing on that network is going to be terribly fast, so I certainly don’t need a high powered router. Still, if a lightbulb gets compromised, I’d like there to be at least a tiny bit of work involved in capturing the router’s password. RC4 may be brute forced in minutes with a GPU, but a lightbulb doesn’t have that sort of processing power.

Anyway, I goofed up. I saw an article about how to convert the web admin interface to use https only, so I pushed the button to generate a new certificate. Now I’m locked out and have to wipe the router back to factory reset.

The official error message is: Error code: SSL_ERROR_NO_CYPHER_OVERLAP

Thank you smarter people than me, for not allowing an override, even temporarily. Thank you smarter people than me, for making sure my IoT wireless access point web admin interface password has to remain in clear, plain text, forever.

Trendnet EdgeSmart switch VLAN configuration – set one port on a different VLAN

This was difficult, so I will provide a How-To here. The goal was to put port 8 on my switch on VLAN 4084. This is my Internet of Things (IoT) VLAN.

A prerequisite of course, is that the downlink from the router to the switch has the VLAN 4084 tag in it. For me, that will be port 1 on the switch.

Another PITA is that the Trendnet EdgeSmart switch self configures to 192.168.10.200 – and that is hard-coded. After you get a machine directly connected to it (with a static IP address), then you can configure the switch to use DHCP to put it on your main LAN. But if you find that you want to factory reset to start over, you’re going to have to go back to the static IP config on 192.168.10.x. The MAC address doesn’t show up in the router until after the DHCP inspired reboot, so you have no idea of what the new web admin interface IP address is. After the switch has rebooted, then you can go in to the DHCP leases and find out what the new IP address is. I don’t know that I would have bothered, except that the laptop I was using has a little smaller screen, and the Trendnet web interface is primitive. I could not get decent screen shots on it because of the primitive web page rendering, so I needed to access it from a bigger screen, which meant making it available on my main LAN, which meant DHCP. But I digress.

What I’m trying to get to:

End result is 802.1q VLAN tagging on downlink port 1 and no tagging on port 8

First step: Modify VLAN ID 1

Here is what the web admin page looks like after a factory reset:

After factory reset, you have only VLAN 1 on all ports – but no tagging anywhere

VLAN ID 1 is the default VLAN. But if you never turned on VLANs, it would never have mattered. The default configuration (out of the box) is that if a frame with that VLAN tag were to show up on the switch, all the ports on the switch would strip that tag out (“un” tagging) before putting the frame on the wire of the ports. However, port 8 is a member of VLAN 1. That would cause us trouble later.

On the VLAN ID 1 modify page, we want to set this:

First, on VLAN 1, move port 8 to not-a-member away from static untagged

First, we move VLAN 1 to not-a-member away from static untagged for port 8. Then we apply the change. This will free up port 8 to be assigned a different VLAN later.

What it looks like after:

VLAN ID 1 untagged ports are 1-7 leaving port 8 available

I may be overly sensitive here; but this is a terrible user interface. If I didn’t know better, I would think that the top part (which is really for adding a new VLAN) was telling me the current status of the ports. It is not. But it looks like all the ports are in the not-a-member group. They used a whole bunch of screen real estate to not show me what the actual status is, but what it could be if I were to proceed. I wonder if putting the “Tagged VLAN Table” at the top would be better, and not showing the grid layout of port assignments at all until someone clicked Modify or View.

Second step: adding the new VLAN

Now we can add our VLAN 4084 with port 8 assigned:

On the main web admin screen, create the new VLAN and assign it

So I typed 4084 into the VLAN ID field, added the descriptive name, then clicked in the Static Untagged section on port 8, and then clicked Apply. This gave me the screen below. Note that we are not done yet.

This was the problem: the web interface uses what looks like radio buttons, so the idea that seems to be presented is that clicking on Static Untagged port 8 should move the port from VLAN 1 to VLAN 4084. But attempting to click on port 8: Static Untagged did nothing.

Behind the scene, port 8 was still a member of VLAN 1, so the admin interface would not assign Static Untagged to port 8 in VLAN 4084. It was super frustrating that clicking on port 8 static untagged did nothing: no errors, no warning – just a refusal to work with no response or feedback at all. I could put port 8 in the static tag membership, but those frames would (likely) not be understood by the IoT device. Although the interface showed me the radio button, I could not put port 8 in the Static Untagged membership. A better developed interface would have prompted me with something like “Assigning this port to Untagged will remove VLAN 1”. Okay, do that. Please.

We’re almost there. The configuration will now look like this:

VLAN 4084 is defined and will present on port 8 (once it gets there)

Step 3: add the trunk to the uplink port

Modify VLAN 4084:

Modify VLAN 4084

Make the modification: frames to port 1 should be tagged with VLAN 4084. This is because I chose port 1 as the uplink port. The uplink is the trunk connection to the core of the network. But when the switch presents the frame on port 8, the tags should be stripped off (“un” tagged):

VLAN 4084: port 1 tagged, port 8 untagged

Apply our changes, save the configuration, and reboot the device on port 8.

If our VLAN 4084 is otherwise configured correctly, our IoT device should now be on the IoT VLAN. Enjoy.

As painful as this was, I wish I’d bought something else with a better web admin interface than these Trendnet switches. Ultimately, they worked, but man I wasted a lot of hours trying to get them to work. That was four hours of my life I’m not getting back. I should have spent the extra $15 for a switch with software / documentation that doesn’t suck.

Apple HomePod is still a fail

I’ve got two devices which tell me that the HomePod is on the wrong Wi-Fi network. Yes, I can believe that. Care to help a fellow out and fix it? Apparently that’s not a thing they had to program.

Extra points to Apple that the electric power plug cannot be disconnected at the device; but requires me to crawl under my desk and unplug it from the wall. I have no idea if a hard reboot by unplugging the power will help, but that appears to be the only option.

At least the Amazon Echo devices had particular button sequences for various levels of reset. Also, the power cord detached at the device, too.

But Apple is too cool for buttons and plugs. You dimwits.

Anyone can whine; how about a solution, David? Sure. It’s stupid, but it works:

  • Switch your iPhone / iPad to the correct Wi-Fi
    • Why do you even have more than one Wi-Fi network, David? The answer is Three Dumb Routers.
    • Remember: the S in IoT stands for Security.
  • Exit the HomePod app on your phone
    • I don’t know for certain that this step is required. But I do know that when it comes time to reach out to the HomePod, the act of opening the app will trigger an inventory to be taken. Probably there is some sort of polling cycle that tells the app to inventory this IoT device: but why leave that to chance?
  • Unplug the router providing the wrong Wi-Fi the HomePod is clinging to.
    • The stupid HomePod won’t be able connect to a Wi-Fi network that is off.
  • Unplug the HomePod
    • Leave it off for 15 seconds or more.
      • Decades ago in electrical engineering class, one of the professors gave us an extra credit math problem to calculate the amount of signal left in circuits as the capacitors drained. The clock crystal is still running; signals are still generated. Generally speaking, for computer circuits, it took about five seconds for the capacitors to drain. Best practice in engineering is to triple anything safety related – so: 15 seconds. This is safety related because you don’t want some weird random signal triggering some logic just because a capacitor wasn’t fully discharged: you could fry something and then the magic smoke escapes.
  • Plug the HomePod back in
  • Visit the HomePod in Apple Home app
    • It will whine that the HomePod is on the wrong network; but this time it will do something about it.
  • Plug your main router + Wi-Fi back in
    • Thank goodness the Apple programmers didn’t program the HomePod to have affinity to the previous Wi-Fi just because it returned to existence.
    • Since it was my secure devices Wi-Fi, I do actually want that network to work.
    • If I had a family here, I would have needed to blast out prior warning that the network was going away. Good times.

I don’t know. Maybe the people at Apple never thought people ought to secure their home with more than one Wi-Fi network?

Amazon Echo abandonment, a month in.

I’m trying Apple HomeKit stuff instead. It is very disappointing. Amazon understands “cloud” and Apple does not. Or maybe Apple’s heart just isn’t in it. Perhaps someone there felt a need to compete with Amazon, so they started HomeKit. But, once the reality hit of how much change it would take to do a great job, they grew disheartened and gave up.

Either way, the Apple HomeKit stuff is a Yugo to Amazon’s Porsche.

Of course, the Apple stuff is as expensive as a Porsche, so it’s a bad deal.

I was watching the television show Silicon Valley and at one point they openly mocked Apple that Apple Maps was so bad. Worse was Microsoft Zune which made me LOL. Point is, Apple then decided to make Apple Maps good, and today it is. In fact I had an address here in town I needed to get to, and Google Maps completely failed it. So I tried Apple Maps and it worked. That was quite a good accomplishment in my view: Apple delivers a better app than Google.

But HomeKit today is no bueno.

It increasing looks like I need to invest some time and effort into Home-Assistant.io

Amazon disappointment – I’ve removed my Echo (Alexa) devices

There was a recent policy change at Amazon which I hate, and as a result, I have removed the Amazon Echo (Alexa) devices and app from my life. It does mean I’ll be carrying my phone with me more.

A part of the Vision Statement for Amazon is “Our vision is to be earth’s most customer-centric company”. Well, this change in policy belies that; trying to annoy their customers for more money is the new practice. That’s the nice way to put it; predation is the stark reality.

So, what happened?

  1. Amazon Music started inserting audio advertising into my morning music play. This happened four days ago.
  2. Amazon raised their prices on Prime membership, and I opted-out at the beginning of October (about one month ago).

I’ve mentioned before that I hate bullies, and dislike advertising. I also really liked setting up my morning wakeup routine to start the day with inspirational music. This change by Amazon crossed all three lines.

So if my morning wakeup routine is spoiled anyway, what really do I need these devices for?

Other than as voice controlled light switches, they are sometimes a convenient voice controlled timer. I don’t need this – it’s a nicety at best.

The bargain was they would listen in, the app on my phone would do tracking, and Amazon would do (whatever) with that data. I assumed they were monetizing it somehow; that was fine – that was the bargain. But now that they’ve crossed the line and spoiled my morning wakeup routine, I’m out.

Really, the only power consumers have is the power of money; either the boycott or favored trade.

Part of the annoyance is that I purchased the .mp3 files outright. I made my playlists out of only these files. Yes, I wanted the artists to get paid for their work, and thought is was only fair that Amazon also got paid for doing the work to set up the deal, import the files and handle the transactions to the artists. My point is that I paid for these files. Anyone that would wrap my files inside their advertising is a bully / predator.

This morning, the advertisement specifically said “Buy Amazon Music Unlimited and you won’t get advertisements”. Or, I can just completely opt out. Spotify costs the same as Amazon Music Unlimited, they do have Joe Rogan, and they have an API I can use to create my morning playlist programatically.

In that way, Spotify is better: I can write a Python script to classify songs into lists, and pick two from the spirtitual category, one from the energetic category, build today’s list and program Spotify to play that. I could even then put the songs in a FIFO queue (perhaps with some randomization). Much better than anything I could get with Amazon Music.

It’s not lost on me that the Open Source community has a project, Mycroft, which would let me connect to my IoT devices without the data tracking which was the part of the Amazon Echo bargain. I’ve already got one Raspberry Pi. All it really needs is a microphone. Guess what I’ve got on order?

Maybe I don’t even need Spotify. Maybe I can just get Mycroft or Home Assistant to play .mp3 files on various Bluetooth connected devices.

Until I get that set up, I’ll have to use my phone apps for controlling the lights and keeping timers. This is a minor inconvenience at worst. And if eventually I hook Mycroft up to a Home Assistant and a Magic Mirror, the better.

Apple is smarter than I am so I’m buying an Amazon Echo alarm clock

It’s been a week, and apparently that was Apple Music’s reset timer for re-enabling all the songs I told it I hate.

Okay then. Time to take it to the next level: delete every song in iTunes. THAT will keep the stupid app from offending me.

Problem is, I used some of the songs in the iTunes library as my alarm clock songs. I loved that feature. But this is the dilemma: keep iTunes and wake up to inspirational music, but, also have Apple Music assault me in my car when I don’t pre-launch some other audio app. I can have one, but would have to accept the other too. That feels like a violation I shouldn’t have to put up with.

The Apple Clock app does play ringtones even with the music library empty – because I didn’t empty the ringtones library. This would have been a nice work-around, but the songs I listen to are 3 – 4 minutes long, and ring tones are limited to 30 seconds.

How about a third option? Instead of using my iPhone as an alarm clock, I can buy a stand-alone alarm clock that knows how to access my Amazon Music library. That would be Echo Dot (4th Gen) Smart speaker with clock.

This still leaves me in a bind when I’m traveling. Normally, every day or so I go through all the open apps in my iPhone and “swipe up” to get rid of them – all of them. If I need an app I can launch it again. The Apple Clock app doesn’t have that choice, so it is always running (which is a good thing). My alarms in the morning were set it once and forget it which was pretty nice. But now, none of those alarms are going to work*.

This means that when I am traveling, I’m going to have to 1) remember to be running the Alexa app on my iPhone when I go to sleep, and 2) set alarms to launch in the Alexa app “on this device” which is the iPhone. This is definitely worse than when I was able to rely on the Apple Clock app.

It sure would have been better if Apple would give me an option of which app to launch when some Bluetooth device (my car) announces it is ready to play.

Still, if this is the worst thing to happen to me in a week, I’m living a pretty charmed life.

*It would more accurate to say they will launch, but no sound is going to come out of them, because the Apple Music Library has been emptied.