Jonathan Gitlin
Before last week, owners of certain Mazda vehicles who also had a Home Assistant setup could create some handy connections for their car.
One CX60 driver had a charger that would only power on when it confirmed his car was plugged in and would alert him if he left the trunk open. Another used Home Assistant to control their charger based on the dynamic prices of an Agile Octopus energy plan. Yet another had really thought it through, using Home Assistant to check the gas before their morning commute, alert them if their windows were down before rain was forecast, and remotely unlock and start the car in cold conditions. The possibilities were vast and purportedly beyond what Mazda’s official app offered.
Mazda, however, had issues with the project, which was largely the free-time work of one software developer, Brandon Rothweiler. In a Digital Millennium Copyright Act (DMCA) notice sent to GitHub, Mazda (or an authorized agent) alleges that Rothweiler’s integration:
- contains code that “is violating [Mazda’s] copyright ownership.”
- used “certain Mazda information, including proprietary API information,” to “create code and information.”
- contained code that “provides functionality same as what is currently” in Mazda’s apps posted to the Apple App Store and Google Play Store for Android.
One day later, Rothweiler made a pull request to the Home Assistant core project: “I’m removing the Mazda integration due to a legal notice sent to me by Mazda.” The Home Assistant project pushed an update to remove the integration, posted about the removal, and noted that they were “disappointed that Mazda has decided to take this position” and that “Mazda’s first recourse was not to reach out to us and the maintainer but to send a cease and desist letter instead.”
Ars Technica reached out to Home Assistant and Mazda for comment and will update the post with any new information in response.
Frequent Home Assistant contributor J. Nick Koston, or bdraco on GitHub, was the first of many commenters confused by Mazda’s code claims. “I couldn’t find any of the copyrighted code in the pypi package that they reference in the notice so I’m not sure which code they are referencing (unless they mean the API itself?),” they wrote. Others noted that Rothweiler’s extension, written in Python and JavaScript, was unlikely to have copied Mazda’s mobile app code.
Reverse engineering for interoperability, such as exposing the Mazda app’s particulars to Home Assistant, could be considered a fair use exception to the DMCA, as explained by the Electronic Frontier Foundation. And while the Supreme Court declined to rule on whether APIs are subject to copyright, it ruled in Oracle v. Google in 2021 that, depending on certain factors, re-implementation of an API, particularly for the purpose of connecting and extending products, is protected under fair use.
Shortly before the Mazda integration’s removal, Home Assistant’s analytics showed 227 users; analytics are opt-in, however, and Home Assistant estimates only about one-third of users opt in. Integrations involving other car brands, including Subaru, the Nissan Leaf, and Tesla’s Wall Connector, are still present.
Rothweiler, reached by email, said he could not comment on the specifics of his integration’s operation. His integration was a hobby, he said, as was true for other integrations, and Home Assistant as a whole. “Users donate their spare time to help each other accomplish their home automation goals,” Rothweiler wrote.
“When Mazda contacted me, my options were to either comply or open myself up to potential legal risk. Even if I believe that what I’m doing is morally correct and legally protected, legal processes still have a financial cost. I can’t afford to take on that financial risk for something that I do in my spare time to help others,” he wrote.
Home Assistant noted in its blog post that Tesla has recently opened up API documentation for third-party software and that Volkswagen Group’s software platform (however turbulent) has a Home Assistant app.
“We’re sad to see users locked out of their data on their devices,” wrote Home Assistant founder Paulus Schoutsen in an email. “It once again shows that owning a cloud-connected device means that you’re forever relying on the grace of the manufacturer, even if you’re paying for it, as was the case here.”
Schoutsen said he hoped Mazda would reconsider providing API access, as it is “nearly impossible” to keep a car integration working without manufacturer support.
“When users go out of their way to use a device with Home Assistant, this is an opportunity for the vendor to build community and excitement around their platform or device,” Schoutsen wrote. “It’s behavior that should be encouraged, not fought.”
This post was updated at 9:30 pm Eastern on Oct. 17 to note the opt-in rate for analytics and add a comment from Home Assistant’s founder.