Support for GE Appliances (SmartHQ)

On the reconnect question. Yes the new driver copes much better with reconnect issues and the connection moved into the app, so the old per-device initialize trick doesn't work anymore. Since there are still cases it wont recover from automatically I've added a reconnect command to all the appliance drivers.

Because the whole integration now runs over a single connection, you don't need to hit every device: just point your "no activity in 12 hours" rule at any one appliance and run its reconnect command. That re-logs in and rebuilds the connection for all your appliances at once.

One thing to note — after you update, you may need to open the device and hit Save Device once for the new reconnect button to show up.

Longer term I'm planning to build this straight into the app as an automatic check, so it'll kick a stale connection on its own and you won't need the rule at all. But this gets you back to where you were in the meantime.

And thanks for the rinse aid code — send it my way whenever and I'll fold it into the dishwasher driver.

I did on May 8th in a PM did you not get it?

I don't see a reconnect button on any of my devices. Where should it be?

Where the button lives
It's on the device detail page, not a dashboard. Go to Devices → click one of your SmartHQ appliances, and look in the Commands section (the block of buttons near the top, alongside Refresh/On/Off). Hubitat title-cases it, so it'll read "Reconnect". It won't appear as a dashboard tile unless you add it as one.

Confirm the hub is actually on 1.0.7
The command only exists in 1.0.7. In HPM → check the installed version of SmartHQ. If it still says 1.0.6, run Package Manager → Update.

If you're on 1.0.7 but still no button
An already-loaded device page won't show a newly-added command until the driver is re-read. Open the device and hit Save Device once (or just reload the page). That forces Hubitat to re-render the command list, and Reconnect should appear.

Found it and added in. thanks!

That was the problem. I was still on 1.0.6

@craigde I updated my C7 hub to 2.5.1.143 yesterday and my devices stopped updating. When I turned on debug logging and clicked Done in the SmartHQ app, I got this in the logs:

token failed (2): groovy.lang.MissingPropertyException: No such property: ** for class: com.hubitat.hub.executor.helpers.ExecutorHttpClient5

I reverted the hub to 2.5.0.159 and it is working again.

edit: I used Claude AI to create a fix, submitted as PR # 17. It is working for me now on 2.5.1.143.

Thanks. Merged and live in HPM

Did this get taken out? I just updated and the rinse agent code was not in there.

Sorry my bad. Should be back.

Just noticed today that setting the number of pods on the dishwasher no longer seems to work. Played around a bit using AI to see if I could figure out why but had no luck. Can still update via the Smart HQ IOS app. I know in previous versions it did work. That part of the driver code is the same as the original, so maybe GE changed something.

Ill add some more debugging in that area and capture what they return. Look for an update tomorrow.

I have been out of town and just got back to look at this. Just updated the driver and tried to set the number of pods. I got the following error.

SmartHQ request rejected (POST /v1/appliance/007AD6DD5F78/control/dishwasher-set-pods): 400 The request could not be understood by the server due to malformed syntax - Invalid JSON.

Tried set subtract and add all three gave same error.

@terminal3 Found it — thanks for grabbing that error, it's what cracked the case.

**What was wrong**

There are two different ways to change a setting on a GE appliance: send a command to GE's cloud ("set pods to 60"), or write the number directly into a slot on the dishwasher itself. The driver has always used the command route. GE has switched that off — that's the "Invalid JSON" error you got. The command arrives, GE looks at it, and refuses it. Nothing wrong with your setup, and nothing we did; they retired it at their end. The pod command was originally worked out by reverse-engineering the phone app back in 2022, so it was always a bit of a guess that GE could change at will.

**What I changed**

I went and read the Home Assistant integration, since we know that one still works. Turns out it doesn't use the command route at all — it writes the pod count straight into the slot on the dishwasher. In fact it never sends commands for anything any more; that code exists in their library and nothing calls it. They'd already moved on. So the driver now does the same thing: writes the number directly. Version 1.0.11, will be in HPM in the next few days.

**One thing that changes for you**

Writing the slot can only set an exact number. There's no "add 12" — only "make it 72". GE's cloud used to do that sum for us; now the hub does. That means **add** and **subtract** only work if the driver already knows your current count. If it doesn't, you'll get a warning in the log telling you to hit Refresh first. **Set** always works and never needs it. If your count has drifted while this was broken, use **set** to resync it. Also, subtracting more pods than you have now leaves you at 0 rather than going negative.

**Please let me know how it goes**

I don't have a GE dishwasher to test on, so I've matched what Home Assistant does rather than confirmed it on real hardware. If it still doesn't work, you'll now get a clear reason in the log instead of silence — post whatever warning you see and I'll take another look.

Did you see the private message I sent? Do you think you might update the rinse agent code?

I will update and let you know how it goes.

Sorry I have been traveling and did not update it yet. I will check the private message and do it tonight.

@terminal3 Both of your things are done.

Pods (1.0.11, in HPM now)

That error you posted was enough to figure it out. There are two ways to change
a setting on these appliances. You can send a command to GE's cloud, or you can
write the value straight into a slot on the dishwasher itself. The driver was
sending a command and GE has turned that off. That's the Invalid JSON message.
Nothing wrong on your end.

So I went and looked at how the Home Assistant integration does it, since we
know that one still works. Turns out it doesn't send commands at all anymore,
it writes the count straight into the slot. The driver does that now too.

One thing to know. Writing the slot sets an exact number. There is no "add 12",
only "make it 72". GE's cloud used to do that math and now the hub has to. So
add and subtract only work if the driver already knows your current count. If
it doesn't you'll get a warning in the log telling you to hit Refresh first.
Set always works. If your count is off after all this, use set to get it back
in line.

I don't have a GE dishwasher here so I couldn't test it for real, I just
matched what Home Assistant does. Let me know how it goes. If it still doesn't
work you'll at least get a proper reason in the log now instead of nothing.

Rinse agent (1.0.12)

Your info was right, and it turned out my original code had a bug in it.

I checked against the Home Assistant library and the bits are exactly what you
said. Bit 0 clean the filter, bit 1 rinse aid low, bit 2 sanitized. They call
the field "reminders" too, not anything to do with rinse aid, and they pull all
three bits out as separate sensors.

The bug was that my code looked the value up in a list that only had 0, 2, 4
and 6 in it, which were the values you had seen. Anything else came back as
"unknown". The odd numbers are the ones with the filter reminder set, so the
first time your drain filter needed cleaning the rinse aid reading would have
just gone to unknown and stayed there. Would have looked like a random glitch.
You hadn't run into it yet because that reminder hasn't come on since you added
this.

Now it just checks the bit, so it should work on any model instead of only ones
that match your numbers.

The other two bits were being read and thrown away so I've added them too:

filterStatus - normal or replace, for the drain filter
sanitized - yes or no

Heads up on sanitized, the dishwasher clears that bit as soon as you open the
door. So if you want to use it in a rule, trigger off end of cycle rather than
checking later.

After you update, open the device and hit Save Device once or the new stuff
won't show up. Same as with the reconnect button a while back.

Thanks for both of these.

Thank you for updating. It seems to be working great.