Show HN: Nissan's Leaf app doesn't have a home screen widget so I made my own
98 comments
·April 14, 2025STELLANOVA
Great work! I love commitment to make it at no cost as @liamwire mentioned. Still not sure why on Earth car manufacturers would not just release APIs open to all owners (basically issue API key based on VIN) and let them use it. For developers to build apps that will only require API key to be entered would be win/win for everyone....
xp84
> Still not sure why on Earth car manufacturers
Like all similar "why don't they have at least a self/community-supported open basic API" questions, the answer is usually the same: They're afraid someone else might create something of value, in part using their API, without them getting their own beaks wet in the process. If you want to integrate with a Nissan Leaf, even if all you wanted were the most harmless read-only access, they'd like you to request a biz dev meeting with them where they'll be happy to talk ruinous terms.
For a related story, see how Chamberlain (MyQ) torched the great, community-built Home Assistant integration it once had for no reason at all. They're afraid somehow they could stop getting the kickbacks from the likes of Walmart and Amazon delivery which they enjoy today, seeing themselves as co-owners of your garage door.
smokel
> They're afraid someone else might create something of value, in part using their API, without them getting their own beaks wet in the process.
In most cases it's not about profit, but about having to invest serious amounts of effort to please one or two hackers, who will then DoS your API as soon as you've made a mistake.
robertlagrant
Indeed. The day to day compliance work will be very expensive, and in addition you would need to put a lot of money aside in case of a security flaw.
xp84
Well, that certainly is the disingenuous corporate line. But the 'hackers' required nothing of Chamberlain -- what they built was already working, until they played a cat-and-mouse game to block them until the maintainer gave up. There are hundreds of companies that do support Home Assistant integrations or at least let them exist, and maintainers are always eager to fix any issue that comes up.
It's really not a dichotomy between aggressively blocking users from having any control over their own home, vs. some kind of imaginary concierge red carpet public API service that hijacks the company's product roadmap. The open source community will basically do 100% of the work for any firm which doesn't opt to actively sabotage.
mook
Pretty sure Chamberlain/MyQ was because they made their API go through the cloud for no reason (that garage door opener isn't going to get out of WiFi range), so the only way to make the app reliably work was to hit their servers. Which they then had to pay for.
Had the whole setup been local first, they wouldn't ever had that issue. But again, that makes it hard to charge people for using it.
xp84
I agree with you. Of course, they already made the money selling the garage door openers, and make more money on the millions of people who use the Amazon and Walmart integrations (they get a little fee for opening the door for those). But if this cut their cloud bill by $200 a month or something I guess they feel vindicated.
andrepd
This is why I avoid all those "smart" devices like the plague.
baloki
They’re API used to work via just providing a VIN however that also allowed remote control so you could just run through all the VINs Nissan uses and turn on remote heating, etc.
This was reported in the media which caused Nissan to start locking down their API something fierce.
Then the three years free of many services have started to expire for most vehicles, so locking it down more became a potentially profitable exercise so now they actual have development work against it.
0XAFFE
Car APIs are $$$.
If you want to have some unified API check https://enode.com/connect, but that too costs a premium.
63
That's pretty cool! It's extremely frustrating that they go through so much effort to block third party apps, but the solution of just downloading and emulating the android app is simoultaneously very clever and very straightforward. A nice reminder not to overthink simple things. Cheers on a project well done!
liamwire
I love the commitment to getting this to work at no cost, on principle. Many of my favourite personal projects have followed similar paths, and have often been fun challenges for that reason alone. Great article, thanks for sharing.
wizerno
Does anyone else miss the functionality of the Android WhatsApp widget [1] on iOS? Being able to read messages without sending read receipts via the widget is a great feature. The iOS notification 'peek' is a clumsy substitute.
Is this a fundamental limitation of iOS widgets/APIs, or just something WhatsApp hasn't implemented? Curious if others have found better ways to handle this on iPhone.
[1] https://www.tomsguide.com/how-to/how-to-use-the-WhatsApp-wid...
russum
Long-pressing the chat in your thread list gives you a quick preview seemingly without sending read receipts.
nikanj
It is implemented in the app itself. WhatsApp > Settings > Privacy and turn off Read receipt.
bayindirh
The use case is slightly different. I prefer to send read receipts, but I also like to peek at messages without sending them and removing unread counts because I want to add the message to my mental queue, but don't want the false impression that I didn't bother to answer the said message.
nikanj
Ah, you want to read messages without letting the recipient know you've read the message, while still having read receipts enabled. I'm not surprised WhatsApp does not support this one, I think they want their users to be able to trust the read receipt indicators
createaccount99
> Being able to read messages without sending read receipts via the widget is a great feature.
More like an unfair anti-feature
mort96
Hm? Should I as the user not be able to decide what I send or don't send?
Ambadassor
If you're running Home Assistant and your LEAF is from before 2019, you may be able to replace the scraping part with the Nissan Leaf integration https://www.home-assistant.io/integrations/nissan_leaf/. Their iOS app also has support for custom widgets https://companion.home-assistant.io/docs/integrations/ios-wi... which might suffice for what you're trying to achieve.
It's unfortunate that newer cars are not supported.
kcon
Thanks for sharing! Unfortunately I do have a model year newer than 2018.
djaychela
Just like OBD, I think api access to data like this should be open to the car user. If the manufacturer is taking the data ( as they do with my renault zoe) then it should be available to the end user at a standard API which is available across all manufacturers, so if you change car you can just point your setup at a new endpoint with new credentials and all the endpoints and responses are standard, just like OBD2 is
(yes I know manufacturer tools go deeper but that's another issue)
smokel
In the EU, this may soon be covered by the Data Act [1]. It'd be interesting to see if other continents will benefit as well, similar to how cookie banners are now a global thing.
[1] https://digital-strategy.ec.europa.eu/en/policies/data-act
Gasp0de
Daring to call cookie banners a benefit.
kjkjadksj
You should be able to intercept inspect and modify any data in any device you own. I’m not even sure what the reason for locking things down really is anymore. It isn’t any more secure as hackers breach into these things routinely anyhow, and everyone running the same software expands the risk envelope and reward of hacking greatly. It turns power users away who might have added to sales just buying your product to use as a dummy sensor for some other purpose vs the ones marketing come up with.
So it is arguably more dangerous and leads to fewer sales. But again businesses don’t take positions that are rational if they can take an irrational position that every other business in the sector also takes and therefore easily justify to shareholders without having to present actual numbers they might reject anyhow.
vincekerrazzi
I had the same situation with my Polestar app up until recently. My solution was perhaps fewer moving parts? Worked well for nearly a year before I didn’t need it anymore.
-my backup phone connected to my NAS, running a signed in polestar app - a homebridge plugin that called a shell script that used adb to unlock the phone, open the app, grab the screen contents and parse it.
Boom, lock and battery status in homebridge and access to dozens of other tools for creating widgets and shortcuts.
null
featherless
Oh hey that's my startup's app, Sidecar, mentioned! Cool to see :D
mxmilkiib
I love the modern GitHub Actions composition process the project uses
I've seen Actions that create a usable Arch etc repos where other software that has been build can be listed
What's the most creative set-up using a number of Actions that anyone has seen? On GitHub or elsewhere
P.S. Could that computational paradigm somehow be extended to a Yahoo! Pipes form of visual [data]flow? For some kind of personal orchestrations
Gasp0de
I wonder if the OBD alternatives mentioned in the article actually work? I'd imagine that they wake up the entire CAN bus frequently, quickly draining the cars 12V battery?
MBCook
Ford will flat out lock your account so even the official app won’t work for you if they notice you using a 3rd party app.
DaSHacka
What recourse (if any) do owners have if that happens?
light_hue_1
It's not that bad, unless you don't have a backup way of getting into your car handy. You create a new account and associate your car with it.
Many people have been bitten by this, it's a common thread on related forums. https://www.macheforum.com/site/threads/ford-suspending-acco...
I don't understand Ford, VW, etc. They make these nice cars that are just unusable junk because of their software.
standyro
I briefly worked with folks in this industry. They’re generally underpaid and under resourced.
russum
What a persistence by the author, but why would Nissan make this so hard?
Nissan's official mobile app for their LEAF electric car doesn't have a widget for quickly checking the car's battery charge status on your phone's home screen, so for a fun side project I decided to make my own using free tools like GitHub Actions, Appium, Tailscale, and Apple Shortcuts.