core icon indicating copy to clipboard operation
core copied to clipboard

Add integration lamarzocco

Open zweckj opened this issue 8 months ago • 11 comments

Breaking change

Proposed change

Start bringing the custom_component lamarzocco to core. The integration allows to interact with La Marzocco coffee machines, through a mix of cloud calls, local API calls, websocket calls and Bluetooth (like the official app does).

Type of change

  • [ ] Dependency upgrade
  • [ ] Bugfix (non-breaking change which fixes an issue)
  • [x] New integration (thank you!)
  • [ ] New feature (which adds functionality to an existing integration)
  • [ ] Deprecation (breaking change to happen in the future)
  • [ ] Breaking change (fix/feature causing existing functionality to break)
  • [ ] Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request: https://github.com/home-assistant/home-assistant.io/pull/29436

Checklist

  • [x] The code change is tested and works locally.
  • [x] Local tests pass. Your PR cannot be merged unless tests pass
  • [x] There is no commented out code in this PR.
  • [x] I have followed the development checklist
  • [x] I have followed the perfect PR recommendations
  • [x] The code has been formatted using Black (black --fast homeassistant tests)
  • [x] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • [x] The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • [x] New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
  • [ ] Untested files have been added to .coveragerc.

To help with the load of incoming pull requests:

zweckj avatar Oct 19 '23 07:10 zweckj

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks :+1:

Learn more about our pull request process.

home-assistant[bot] avatar Oct 27 '23 08:10 home-assistant[bot]

Please make sure CI is passing. Currently, there is a dependency conflict

I can't trigger that by myself, or can I?

zweckj avatar Oct 27 '23 16:10 zweckj

that's weird. The mypy in my local venv seems to want a different annotation on that import... Will look into that.

zweckj avatar Oct 28 '23 15:10 zweckj

This PR is already big don't add any new features to it like [add options flow](https://github.com/home-assistant/core/pull/102291/commits/b3cb2ebc6826cee6c0d683cc4b66f348357de8b1)

These features can be added in a follow up PR. Please only fix the CI

edenhaus avatar Oct 31 '23 09:10 edenhaus

This PR is already big don't add any new features to it like [add options flow](https://github.com/home-assistant/core/pull/102291/commits/b3cb2ebc6826cee6c0d683cc4b66f348357de8b1)

These features can be added in a follow up PR. Please only fix the CI

Fair point. That conflict is new though... -.-

zweckj avatar Oct 31 '23 10:10 zweckj

CI should be passing now.

zweckj avatar Nov 05 '23 13:11 zweckj

@edenhaus apologies for the ping, but the bot somehow didn't trigger a request when I converted the draft back to "ready to review" and I also don't understand which requested changes are not addressed yet (except the CI which I can't trigger by myself...)

zweckj avatar Nov 06 '23 13:11 zweckj

through a mix of cloud calls, local API calls, websocket calls and Bluetooth (like the official app does).

This sounds messy... Please explain in more detail which protocol is used and when.

Is the communication device dependent? Meaning one device model will only communicated via Bluetooth, another only via cloud?

It is a bit messy unfortunately, but it's what their official app does... Some commands will be sent through Bluetooth (if available, otherwise through the cloud), some commands are cloud only. Some data can be retrieved through local HTTP calls (or through the cloud) and some data is only available on the WebSocket, to which the machine pushes updates...

I'm supporting all of those to avoid using the cloud whenever possible and replicating the official app as closely as possible.

zweckj avatar Nov 07 '23 15:11 zweckj

Why are you deleting tags and releases in your third-party library?

edenhaus avatar Dec 11 '23 13:12 edenhaus

Why are you deleting tags and releases in your third-party library?

Because I pushed something by mistake which was very broken.

zweckj avatar Dec 11 '23 13:12 zweckj

I removed all the Bluetooth parts for now, will add in a separate PR.

zweckj avatar Jan 12 '24 08:01 zweckj

Please address the comments in a new PR. Thanks!

PR is here

zweckj avatar Jan 16 '24 15:01 zweckj