Show HN: Nissan's Leaf app doesn't have a home screen widget so I made my own
kevintechnology.comNissan'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.
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....
> 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.
> 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.
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.
This is the kind of thing that they frequently hand-wavingly claim, however, 'compliance'? I'm not aware of any US garage door regulatory body.
These same companies have you click through 1000 pages of legalese (that thoroughly covers their butts) in order to use their own apps, which are probably more likely to be compromised than a public API, so I don't know why that would come with more liability.
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.
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.
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.
This is why I avoid all those "smart" devices like the plague.
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.
Car APIs are $$$.
If you want to have some unified API check https://enode.com/connect, but that too costs a premium.
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!
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.
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...
Long-pressing the chat in your thread list gives you a quick preview seemingly without sending read receipts.
It is implemented in the app itself. WhatsApp > Settings > Privacy and turn off Read receipt.
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.
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
Actually it supports that, via notifications and peek. The intent is not nefarious, as I said before. I don't want the person who sent me the message think that I read their message and just tossed to a virtual bin.
I just did it yesterday. Somebody sent me a message, and I read it via notification, but they don't have the receipt yet. I'll write their answer with a fresh mind, and send the answer they deserve.
I don't think valuing the person on the other end of the line is a bad thing.
> Being able to read messages without sending read receipts via the widget is a great feature.
More like an unfair anti-feature
Hm? Should I as the user not be able to decide what I send or don't send?
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.
Thanks for sharing! Unfortunately I do have a model year newer than 2018.
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)
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
Daring to call cookie banners a benefit.
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.
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.
Oh hey that's my startup's app, Sidecar, mentioned! Cool to see :D
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
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?
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.
What recourse (if any) do owners have if that happens?
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.
I briefly worked with folks in this industry. They’re generally underpaid and under resourced.
It costs more time and money to set up these walls vs not bothering. And there was a time when they didn’t bother and hacking was easy. Not just in cars but any consumer facing product running software.
Blame management structure. They hire out security devs because its expected they have a security team like other companies or shareholders pillory them. These security devs trot off doing the expected work they are all trained to do from school or their work at other companies. You end up with the inevitable locked down shitware everyone was hired to make and will make. No one asked for this. They only asked for something one level deeper into the abstraction (shareholders want company to look like other companies to price it appropriately, managers want security team to appease shareholders, security team head wants to see certain things they saw at their last job, security dev wants to deliver and get a raise) but what they got was the chain reaction leading to the user hostile app.
What a persistence by the author, but why would Nissan make this so hard?
Cool! I like that it just works ™ and is a lot more resilient to the hostile first party than other approaches.
How often does the scraping of the app running on the RaspPi run and how much is the lag between that job running and the data appearing on your phone?
Thanks! The IFTTT widget can supposedly update within a few seconds of receiving the triggering email since this is a “real-time applet” (https://help.ifttt.com/hc/en-us/articles/4412435510171-What-...), but in practice it seems to update more on the order of several minutes after the scraping workflow runs.
I have been running the scraping workflow once per hour during waking hours the past week, but I reduced that recently because I was starting to feel nervous (but without any real evidence) that pinging the car too often could drain the 12V battery.
The scraping workflow takes between 2-3 minutes to run. You can view the history and duration of runs here if you’re curious: https://github.com/kevincon/nissan-leaf-widget-updater/actio...
I wish that US car manufacturers would finally realize that they're software companies with a hardware device, and pivot accordingly.
The differentiating factor between car models is not the hardware in the world of EVs. It's the software. And right now, if you aren't either on Tesla, Rivian, or Polestar the software experience is horrific.
I don’t want to drive a computer. I want to drive a machine. Give me some buttons to control the car and a decent screen for nav (CarPlay/android auto) and I’m happy.
All cars are computers, since at least 20 years. At minimum they do central locking, cruise control etc.
Plenty of car companies have realized the don't have core competency in software and simply run Android with some addons. Chevrolet for example does a fairly good job of this.
Tesla has some great software ideas, and awful execution. Yes, they have the ability to continuously improve vehicles after sale and they use it. But they use it to scramble the climate control location every third month, and to charge subscriptions for hardware their customers already bought.
This mindset gets the Demister function buried in a touchscreen. I don't want a touchscreen for most driving related functions; buttons or switches thanks.
I used to be in the space. Basically everyone would install an SBC behind the dash to listen to the canbus and then report things over cell often with ways of shorting a circuit in order to do features.
It's whackadoodle. I mean how different are cars, really? They have wheels, doors, windows, odometers, go places at various speeds, need fuel ... you'd think there'd be some agreed universal baseline like MIDI ... you'd think.
And the manufacturers held on to their protocols like they had done their own Manhatten project so everyone just had to backwards engineer things.
Why is inoperability so precious? Ultimately the purchasing decision is the car's price, features, availability, terms of the deal... The phone app has nothing to do with it, let it go.
It's coming. Ford and GM have started to build more software in house, while VW is partnering with Rivian partly to get their software expertise.
The problem car companies have is if they are beholden to android and apple then they are at the mercy of whatever those two want to charge.
Apple doesn’t charge for CarPlay (can’t speak to Android), so I’m unsure what you’re referring to.
Had a 2017 LEAF, and could never get that app working.
Like once in a while it would show correct status, or sometimes it would start heating.
But mostly it just lied. Like I could stand next to the car, issue the heating command, wait a minute, force it to check the car's status and it would tell me the car was heating while nothing had changed with the car.
So yea, gave up on the app, didn't use it the last years I owned it.
That said, enjoyed the writeup, looks like a nice project and as a bonus I learned about some new tools.
Nobody wants to hear it in 2025 but this is one of the reasons Tesla is still a much better experience than most of the legacy car manufacturers. Car People like to think of apps as a weird Tech People affectation, but in actual day-to-day usage, they're invaluable.
> apps as a weird Tech People affectation
Maybe I never had the right luxury brand car, but I still see it as such.
If I want to have an app for my car, I’m my opinion that car failed me to provide with a simple, convenient driving experience.
I want to get in the car, check if it’s charged / filled up enough, check for errors (as a routine, but there shouldn’t be any), and drive.
If I need to change anything (AC, light, volume) I should be able to do it without having to take my eyes off the road.
What features do you like so much that you consider them “invaluable”?
I would say the place where I differ is here:
> I want to get in the car,
I don't want to have to get in the car to do any of this. I'm able to get the climate control started in the car by saying out loud "Hey Siri, warm up car" (a shortcut I set up exposed by the Tesla app). The location is always up-to-date so if my wife is driving the kids in it, I can see their current location and ETA. I want to be able to open the door without unlocking the car manually. I want to be able to close the trunk remotely if I carried in a load of groceries. Etc.
None of this is some kind of alien technology that Tesla invented, but rather the vast majority of legacy car manufacturer apps are just total garbage piles that were outsourced to some low-bidder somewhere. It shouldn't be that hard.
Having used a car for many years, I suppose these things are nicer than not having them, but they also sound like the kind of features I’d come up with if you said to me, “we already developed an app for our latest car model. What should it do?”
They're nice to haves for ICE vehicles. Pre-heating an EV cabin before departing, when the car is plugged in, increases range by a lot. Turning charging on and off via lets you take advantage of low electricity rates.
Ok, that makes a bit more sense, especially since I have not owned an EV.
> Pre-heating an EV cabin before departing
Cars have been doing this for a years now with a keyfob. But I suppose over network/cell gives you greater range.
> Turning charging on and off via lets you take advantage of low electricity rates.
I would have thought that'd be a feature of the charger, not the car, but not an EV owner so maybe I'm just wrong here. That does make more sense for an app, but also sounds like a feature that could work fine without one too.
> But I suppose over network/cell gives you greater range.
Useful if you're charging in the parking lot at your work, or at a mall or whatever.
Finally I get to ask this of a real person.
How important are these things for you? If the automatic trunk motor broke, how much would you be willing to pay to fix it? What is the value difference for you to be able to heat up the car from outside the car?
My questions point towards some variation of my central question: why does any of those things matter to you in a car? The primary purpose of a car is to get me places, everything else is optional. Is it because all the cars are equally sufficient for getting you places or so you actually value remotely controlling your car higher than the cars ability to drive you places?
For myself all of those gimmicks are just more complication that can break. I value a car that is fun to drive and with minimal abstraction. It sounds like you value maximal abstraction, and that's quite odd to me. I wish to understand your viewpoint.
(Not the person you’re replying to) I’ve never had a car with an automatic trunk motor, so I can’t answer that one, but back when I lived in the Midwest, if my ability to remote start the car to power climate control (particularly of the windshield defrost) stopped working, that definitely would have been in the “I’m willing to pay thousands to fix this” realm. In some cases, that would absolutely limit the ability for the car to get me places; you’re not going very far with a quarter inch of ice on the windshield.
In the summer, it gets closer to “gimmick” territory, but there are also totally times when interior surfaces of the car were too hot to touch, and that affects driving in its own right if you can’t grab the steering wheel.
You can scrape the ice off manually and wear adequate clothing to “survive the drive”. Toughen up, dude!
You know you can just scratch the ice off, right?
And they could just walk.
The luxury of not having to stand in the cold reaching over the windshield scraping is worth so so so much. Add to that not having to sit in a cold car, waiting for it to warm up, is also worth a lot.
If something is broken to the point that the car can't heat up, yet it's cold that there is thick ice on the windshield I would think twice about driving. Even if you could remove the ice.
No one said anything about anything being broken, just about the ability to remotely heat up the car before starting to drive. Having a heating and having a remote controlled heating that works with the car switched off are two separate things.
> No one said anything about anything being broken,
Yes they did. Both the guy you asked and the one he responded to.
Sry, what I meant to say was "No one spoke about the complete heating being broken. Heating is a basic requirement in a car imo. Remote-controllable, engine-off heating is not."
Many cardiac events start that way.
Dude if scraping ice off a windshield gives you a heart attack you have way bigger problems than your car not heating up remotely. Go see a doctor.
Huh?
Across decades, I've heard of many cardiac events from shoveling the driveway, but absolutely zero from scraping ice off a car windshield. This correlates to the vast difference in effort required by each action — scooping, lifting and moving tons of snow, vs scraping at a few ounces of ice (which is even easier if you let the car run a few minutes with the windshield defrost on).
Now, if we had car (not trucks setup for plowing) that could automatically clear the driveway, that would be a must-have feature in areas with winter climates...
I want to chime in. I drive Skoda Enyaq (VW Family EV, think ID.4) and have all these gimmicks. I ruled out a Model 3 because at that time it didn’t come with some of these features like notarized trunk etc.
I have my car on a schedule and it automatically heats up, turns on the seat heaters and defrosts the windshield. By the time I leave the house I have seither a snuggly warm car or pre cooled car. That is a huge time saver for me. One annoying part on this car is the fact that the LED headlights don‘t defrost. It sounds like a real first world problem but when it’s real cold outside and the car warms up etc I need to manually scrape the ice from the headlights. I would pay some money to get this „fixed“…
Pro tip: a sealable plastic sandwich bag filled with boiling water from the kettle. Rub it on the ice; watch the ice vanish extremely quickly.
Will try that next winter. The other annoying part is the fact that I back in reverse in my parking spot. So I usually don‘t see the headlights. I realize that something is off when I‘m already on the road.
For things like remote heating or auto trunk operation, the cost I’d be willing to bear is gated mostly by how much the delta to just buying a new car would be. Especially since having kids, a lot of this stuff makes my life a lot easier. If I’m trying to carry a crying toddler and a large bag of groceries into the house, I don’t want to be struggling to try to get the trunk closed. Being able to completely de-ice the car from inside while I’m getting kids dressed for school instead of needing to spend an extra five minutes doing it manually is likewise huge.
The Tesla (like any EV I’ve driven) is also fun to drive, but I’d trade away the instant torque for the other features if you made me choose.
Remote deicing of the windows in the winter sounds rad and more then just a gimmick.
Even with gloves on it can be quite cold to remove the all the ice from windows. Or you sit in the cold car for 5 minutes waiting for it to defrost on it's own.
And yes, if your climate control is broken I would pay to fix it.
Edit: When you share a car and have no dedicated parking spot the location information can also be interesting.
How important is it for you to have a garage door opener? As opposed to manually getting out of your car, opening it, and then closing it manually
I see these extra features as similar to a garage door opener. It is convenient and I'd be willing to pay to fix it if it ever broke
Most people just fill their garages with crap and leave their cars outside anyways.
It's all managed by the car's computers, the complications are already there. You just don't get to control them how you like, for no good reason.
The only two features I use of my car app (which is also a Leaf), is to remote start the heater, and check the charge level. This car is the first one I've owned with remote heating. Is it essential? No. But after scraping ice off my car manually for 20 years, I don't ever want to go back. But that's all I use the remote heater for - de-icing.
As for battery charge level, I don't know why the various charger apps can't read that info off the car as it charges, but I'm sure there's some incredibly dumb reason for that.
I see plenty of cars which say "Welcome to your new Ford/Tesla/whatever. Please choose a language to start" on the touchscreen.
Ie. The owner has owned the car for multiple years and has never touched the touchscreen even once.
Tesla's UI experience is just about as shitty as of other automakers. And you don't have the escape hatch of CarPlay/AA.
It really just isn't, especially when it comes to the app. I've dealt with Ford in the past and Kia in the present, and it's like having a carrier-supplied dumb phone vs an iPhone in 2007. Completely separate experience.
I stopped using the official Tesla app entirely. It's so freaking sluggish and useless. They spent all their effort on drawing a toy car with shiny animations, and neglected everything else.
E.g. if I want to turn on the seat and wheel heaters, I click on it, and then I need to wait 3 seconds to see if it actually turned them on. Or maybe they were already on, and my click turned them off instead.
The service chat section is entirely useless, and was probably written by somebody drinking bong water. And you _have_ to use it. Tesla even sends you freaking text messages with just a link to the app instead of actual text of the updates.
And I once spent 20 minutes trying to find how I can remove a guest driver from my account. Turns out that there's a small gray button "Manage Drivers" at the very bottom of the screen, past the odometer data.
Sorry. But Tesla is as shitty as other automakers. Or even shittier, because other automakers don't force me to talk with their service centers solely through their crapps.
> and then I need to wait 3 seconds to see if it actually turned them on
If you want to unlock a Kia with the app, first you need to pay $15/month, and then you need to press and hold for one second the unlock button, after which you have a 30-50% chance of the unlock request going through. To let you know that it went through, you will receive an email. It's the most user-hostile app I still have on my phone.
So no, Tesla is not as shitty as other automakers. The bar is so much lower than you can imagine.
I had remote unlock for my Chevy Volt in 2012. It was as fast as Tesla's.
So yep, Tesla sucks. Other car makers can suck a bit more, but that doesn't make Tesla any better.
Even this example is terrible, I don't "remote unlock" my Tesla, it's just unlocked when I get close to it. It used to be 95% reliable (not great), but now that they added an Apple Watch app, it's 100% reliable (either my phone or my watch unlocks it via proximity).
I wonder how much is the Tesla and how much is the phone. I used to have 98% success with just walking up to my Model Y, phone in pocket. These days it is more like 80% and sometimes it can take over a minute before the car accepts that a "key is present", even after manually unlocking with the app, sitting in the drivers seat and having an established bluetooth connection that is playing through the car speakers.
I just carry a keyfob. It's also helpful for opening the trunk.
This is also in turn why cars without apps or screens are even better still.
> Nobody wants to hear it in 2025
I'd say most people do want to hear it. The anti-tesla crowd is very loud, but very small. As are most movements borne of emotion and not logic.
[dead]
[flagged]
A huge number of people. They're a very well selling car
Me! Best car I ever owned. It’s got the turning circle of an oil tanker and and is frustratingly easy to turn on wrong, but I like it a lot. Maybe I need to aim higher?
I'm not a car person, but as an Ubuntu Touch user I have ran into issues with bike share providers who only allow renting a bike through an app which is only available for Android or iOs. I take umbrage at that and liken it to cars: imagine if you could only unlock your car with an Android phone or an iPhone. If your phone were to malfunction or got stolen or whatever you wouldn't be able to get into your car.
Now, as not a car person I don't know if there are cars like that, but seeing:
> it seems like the NissanConnect app [...] may detect when x86_64 Android is being used and then refuse to sign in.
Imagine having a ZenPhone 2, downloading an app to manage your car and it refusing to work. I'd go ape.