Yes, you fixed it! The Printer Message is updated now: it clears after I insert the tray again.
Yes, you fixed it! The Printer Message is updated now: it clears after I insert the tray again.
That closes every point you raised. Thank you — genuinely.
For the record, what your reports actually fixed: the waste bottle read upside down and rang a false alarm, empty manual feed slots kept the paper alarm on permanently, the capability icons were unreadable on mobile, a low-supply warning could never be cleared after an update, and printer alerts stayed stuck on the last complaint. Five real bugs, none of which I would have found on an Epson.
Along the way I gave you three wrong diagnoses on that Lexmark, and each time a screenshot of yours was what corrected me. That’s the argument for asking for readings instead of reasoning from the code, and I’ll keep taking it.
I think you might be able to use the onoff capability for that. Homey’s setUnavailable() is only meant for reporting when a device is offline or unavailable. You can also provide a custom message there. Examples of usage: when Homey can’t connect to a device or a manufacturer’s server, when the manufacturer’s server reports the device as offline, if the function to poll the data threw an error, etc.
Yes, better now! Thx…
That was the last outstanding report in this thread — every one of them is now confirmed fixed on the reporter’s own hardware. Thank you for chasing it down with me.
But “class 3” and “class 4” is the actual toner left
It isn’t, and your own two screenshots prove it: the Ricoh’s web page shows Cyan at Resterend niveau 5 and the other three at niveau 4 — yet all four read class 3 in the app. If class were the level, Cyan would differ.
class is the printer telling us what kind of supply it is: 3 = a consumable that drains, 4 = a receptacle that fills. That’s why your Waste Cartridge is the only class 4 on the list.
The reason those cartridges show as unknown is separate: your Ricoh reports level -3, which in the standard means “there is some left, and I won’t put a number on it”. Its 1-to-5 gauge exists only in Ricoh’s own web page.
That distinction was worth making visible, so v1.0.17 now says some left rather than unknown for a -3, on both cartridges and trays. Same for your Tray 1. It doesn’t invent a percentage — a number that isn’t there shouldn’t be guessed — but it stops a healthy printer looking like a broken one.
Is transfer and fuser reported too?
Yes, whenever the printer puts them in the standard supplies table — a Lexmark C3326dw in this thread lists Fuser and Transfer Module and they show up as their own tiles. Yours doesn’t: it publishes only five rows there (four toners plus the waste bottle). The fuser, transfer unit and transfer roller on your web page live in Ricoh’s private MIB, which the app deliberately doesn’t touch — guessing at a vendor’s private OIDs without the hardware to test on is how you end up showing people wrong numbers.
Homey’s
setUnavailable()is only meant for reporting when a device is offline or unavailable.
You’re right, and that’s the lesson I took from this thread the hard way — a user asked for a greyed-out tile, I reached for that flag, and he got his readings hidden plus a prompt to repair a printer he’d switched off himself. v1.0.13 lets him turn the flag off entirely; onoff would be the better answer rather than just an escape hatch.
One caveat before I do it: onoff is settable by default, and this app is strictly read-only over SNMP — there’s no wake-on-LAN here, no way to switch a printer back on. So it would have to be declared setable: false, otherwise every printer grows a switch that does nothing.
With that, it does look like the right mechanism: the tile dims the way people expect, the levels stay on screen at their last reading, and the auto-generated Flow cards come free. Thanks for the pointer — it’s the kind of thing that’s obvious once someone who knows the SDK says it out loud.
Done — v1.0.18, in review now.
The device carries a read-only onoff, true whenever a read succeeds and false the moment one fails. The tile dims straight away, the last levels stay on screen, nothing prompts for a repair, and the Flow cards come along for free. setable: false, since SNMP can’t power a printer back on.
Marking the printer unavailable is now the separate, stronger step it should always have been — still there for anyone who wants it, still skippable, and no longer the only way to get a tile to grey out.
Thanks for the correction. It took a user being annoyed by the symptom and you naming the mechanism to get this right.
Is my understanding correct that after the change related to the unavailable status in v1.0.18, it is still possible to keep the capabilities displayed with their last known status? Instead of the repair screen?
If so, how can I achieve that? In the prior version I had set the ‘Show offline after’ setting to 0 seconds to have the capabilities displayed when the printer is switched off (not available).
In v1.0.18 this no longer works, though the help text at the ‘Show offline after’ setting, still indicates that I need to set the value to 0 seconds to keep the capabilities displaying their last known value when the printer is not available.
Is my understanding correct that after the change related to the unavailable status in v1.0.18, it is still possible to keep the capabilities displayed with their last known status? Instead of the repair screen?
Yes — and you found two real bugs in the way of it. Both fixed in v1.0.19, on Test now.
The Responding row was never added to your device. Every capability is added from a successful read, which is right for the rest of them — they describe what the printer reported. This one describes whether it reported at all, so the case it exists for is a printer that is off when the app starts, and that is exactly the case no read can cover. If your printer was off when 1.0.18 installed, you got no Responding row and no dimming at all. It is now added at startup.
In the prior version I had set the ‘Show offline after’ setting to 0 seconds
And 0 only ever declined to set the unavailable flag — it never cleared one already set. That flag survives an app restart, and only a successful read lifted it. So a device flagged before you turned the setting off stayed flagged, showing the exact repair screen the setting exists to prevent, with no way out but the printer coming back on. It is now cleared on the failing check, and the moment you save the setting.
It is still 0, same as before; only the hint wording changed. If 1.0.19 still greys you out, tell me two things: whether the device now has a Responding row, and what Show as offline after reads on it.
I checked version v1.0.20: you fixed it.
When my printer is powered down (offline) the device tile is dimmed and the last known capability values are available:
After I power up my printer, the device tile becomes grey/shows the on state and capabilities are updated.
I also noted that I now have a button tab with a read-only on/off button (as you indicated in one of your prior posts). My ‘Show as offline after’ setting is still at 0.
If by ‘Responding row’ you mean the entry in the device tile’s log tab, then yes it is there:
The first (most recent) entry indicates that the printer responded (after I switched it on). The second (older) entry was created when I updated the app and the printer was still powered down.
So, all in all, it seems to work as expected. Thanks again for your quick fix
.
Yes, you need to run setAvailable() before your app sets the capabilities
Question: what will happen to the existing insights of the various trays, when the media type changes? So when the tray contains a different paper size/type than when during pairing the printer to the app.
Since the capability names and hence insights contain the type of media (like iso-a4-white and iso-a5-white), next to the name of the tray, will that result in new insight items every time you change the media type in a tray?
Or is the capability (and insight) name fixed based on the media that was loaded in the tray when the printer was first paired with Homey?
v1.1.1 is on Test. Two things in it are worth more than the feature work, so those first.
The condition card “a supply is below a level” has never worked. Not a regression — it has answered not below whatever threshold you set, in every version this app has ever published. If you built a Flow on it, that Flow has quietly done nothing since the day you wrote it.
The argument is an autocomplete, and Homey hands the run listener the whole object you picked, not its id. The code expected an id, matched nothing, and read that as “no level, so not below”. Fixed, and measured on a cartridge at 20 %: before, below 99 → false; after, below 99 → true, below 1 → false.
Worth re-checking any Flow you have on it.
Question: what will happen to the existing insights of the various trays, when the media type changes?
Nothing — the series continues, it just gets renamed. Insights is keyed on the capability id, and the media only ever appears in the title. I checked yours rather than guessing:
id: homey:device:…:measure_tray.1
title: "Sheet feeder bin 1"
Change the paper and the title follows the printer; the id is fixed by the tray’s position, so the history stays in one unbroken graph. That was already true before 1.1.0 — printer_tray_1 was position-based too.
you need to run setAvailable() before your app sets the capabilities
Correct, and I had it the wrong way round: the failure path wrote the values first and lifted the flag afterwards, so a device still carrying it dropped the very writes meant to dim its tile and only caught up a poll later. Reordered — thank you, that is twice now.
What else is in 1.1.0/1.1.1
- Every consumable gets its own row, however many the printer reports. The old ceiling of eight unnamed supplies is gone, and the four fixed paper trays with it. A laser listing toner, photoconductor, waste bottle, fuser, transfer module and rollers no longer drops one on the floor while the low-supply alarm keeps counting it.
- Levels can be shown beside the device icon as the indicator.
- The printer-error and cover alarms now use Homey’s own capabilities, so they come with built-in Flow cards instead of ones I had to write.
- Paper trays no longer lose their Insights history when a single reading is missed.
Two costs, stated plainly. Every level was renamed, so its Insights history restarts, and a Flow that inserted a level as a tag needs that tag picking again — cards that read a level keep working. And it needs Homey firmware 12.11 or newer.
@SunBeech, @Henk_Renting — one favour when you get to it. Your Lexmark and Ricoh are the only machines here that report a waste bottle and separate parts, and those are the two migration paths that have never run on real hardware; my Epson produces neither. If your waste tank and fuser come back with sensible levels and the right names after updating, that closes it. If a row goes missing or lands on the wrong part, I would rather hear it early.
Takk for informasjonen!
Thank you for this app!
Confirmed working with HP LaserJet CP1025nw.
It wasn’t discovered automagically (different subnets), but it works once I entered the IP address.
Thanks again, @byackee1!
Your app is already popular, considering the posts here… ![]()
This is what my Ricoh shows like now:
Have also sent you a diagnostic report, if that helps…
c964f391-956f-4e24-aad1-44affa639f2c






