-
-
Notifications
You must be signed in to change notification settings - Fork 31k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lamarzocco Integration: Setup fail with http error 400 #131180
Comments
Hey there @zweckj, mind taking a look at this issue as it has been labeled with an integration ( Code owner commandsCode owners of
(message by CodeOwnersMention) lamarzocco documentation |
@martingruening Can you please try what happens if you enter an IP address? |
@zweckj Connection refused ('Verbindung fehlgeschlagen').
Nothing in the debug log.
…________________________________
Von: Josef Zweck ***@***.***>
Gesendet: Donnerstag, November 21, 2024 4:42:00 PM
An: home-assistant/core ***@***.***>
Cc: Martin Grüning ***@***.***>; Mention ***@***.***>
Betreff: Re: [home-assistant/core] lamarzocco Integration: Setup fail with http error 400 (Issue #131180)
@martingruening<https://github.com/martingruening> Can you please try what happens if you enter an IP address?
—
Reply to this email directly, view it on GitHub<#131180 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIXWEHRCNNO5RAKFI6OZIST2BX5MDAVCNFSM6AAAAABSHHN4RCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJRGU3TOMBSGE>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
that's weird. it should log something on error level in this case (coming from lmcloud) |
Sorry, my mistake. I grepped for the wrong keyword.
2024-11-21 20:33:15.209 ERROR (MainThread) [lmcloud.client_local] Local API returned 403.
…________________________________
From: Josef Zweck ***@***.***>
Sent: Thursday, November 21, 2024 8:50:56 PM
To: home-assistant/core ***@***.***>
Cc: Martin Grüning ***@***.***>; Mention ***@***.***>
Subject: Re: [home-assistant/core] lamarzocco Integration: Setup fail with http error 400 (Issue #131180)
that's weird. it should log something on error level in this case (coming from lmcloud)
—
Reply to this email directly, view it on GitHub<#131180 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIXWEHQPPYNUTOLKYK6LTWD2BY2SBAVCNFSM6AAAAABSHHN4RCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJSGEZDSNJQGI>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Hm. I'm a bit clueless tbh. I don't have any of those issues. You're machine is correctly added to your account in the app? |
Yes, it is. Looks like an authentication problem to me.
…________________________________
From: Josef Zweck ***@***.***>
Sent: Thursday, November 21, 2024 10:15:48 PM
To: home-assistant/core ***@***.***>
Cc: Martin Grüning ***@***.***>; Mention ***@***.***>
Subject: Re: [home-assistant/core] lamarzocco Integration: Setup fail with http error 400 (Issue #131180)
Hm. I'm a bit clueless tbh. I don't have any of those issues. You're machine is correctly added to your account in the app?
—
Reply to this email directly, view it on GitHub<#131180 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIXWEHQ7XQ4PJQ546NALBJD2BZEQJAVCNFSM6AAAAABSHHN4RCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJSGM2TEMBTGY>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Oh no wait. For that 403 I got an idea. Try to setup the integration with local IP again, but only after you connected (successfully) to it with the official app. Wait a bit between the official app login and integration setup. |
I restarted the app, connected to the machine, switched on the boiler, waited for some time (3 minutes) and then retried the integration setup. Same result with error codes 400 and 403. My HA instance and the Linea Micra are on different subnets with a router/firewall in between. The firewall rules have been checked multiple times. The Micra can connect to anything via TCP. The HA instance is allowed to connect to port 8081 on the Micra via TCP. My mobile is on a third subnet and has appropriate firewall rules. I can see those connections to port 8081 happening from HA and my mobile phone. I see no blocked connections to/from the Micra IP address. So that should not be the issue, right? Gateway Firmware is v3.6-RC4 and machine firmware is 1.17 |
It sure sounds like. What I don't understand is why you are the first one having those issues and it seems to be working fine for everybody else (including me). Bit of technical background: The local 403 is sometimes happening if the local API is stilled locked, which needs a cloud command after machine restart to be unlocked, which the integration currently doesn't give on setup, but that also shouldn't be an issue if you have connected with the app before... For the cloud block I'm wondering whether they started blocking consecutive login attempts (the integration does setup in cloud only mode but then fail right?), but again why only you then? |
I agree - impacting only me is strange. My machine and my account are fairly new (3 days old). Maybe they have changed API settings, but keep compability for older accounts (would seem weird). http 400 means: So a http 400 in request for the oauth token could mean they have changed authentication somehow for newer user accounts. A check for that would be somebody that has a working setup deleting the old user account and creating a fresh one. Edit: |
I did this auth.txt contains Response is
Afterwards I deleted the account in the app, created a new one (
So the problem with my account now seems to be solved. The integration still produces the same behaviour. There must be something different happening between my curl-command and the token request in lmcloud that makes the request fail. A nice first improvement could be to report the error_description back in HA when the token request fails. |
that's interesting. I'm trying to add a logout after each login, to avoid sending consecutive logins with #131240. But |
Could be that it's just an encoding problem. If there's still a "+" in your username, the integration does not encode that. |
A plus sign is valid in any email address, so the lmcloud client should encode that properly. When I use I have now switched my username to |
I did add it to the library, but you will get those changes earliest in the next HA beta on wednesday. import asyncio
from pylamarzocco.client_cloud import LaMarzoccoCloudClient
async def main():
cloud_client = LaMarzoccoCloudClient(username, password)
fleet = await cloud_client.get_customer_fleet()
config = await cloud_client.get_config(serial_number)
asyncio.run(main()) |
No error message shown. |
import asyncio
from pylamarzocco.client_cloud import LaMarzoccoCloudClient
async def main():
cloud_client = LaMarzoccoCloudClient(username, password)
fleet = await cloud_client.get_customer_fleet()
config = await cloud_client.get_config(serial_number)
cloud_client = LaMarzoccoCloudClient(username, password)
fleet = await cloud_client.get_customer_fleet()
config = await cloud_client.get_config(serial_number)
asyncio.run(main()) Thanks for helping! Let's see if two consecutive login attempts change something |
Sure, I am happy to get your support too. Runs slightly longer, no error message. |
import asyncio
from dataclasses import asdict
from pylamarzocco.client_cloud import LaMarzoccoCloudClient
from pylamarzocco.client_local import LaMarzoccoLocalClient
serial_number = "LM000000000"
username = "username"
password = "password"
host = "192.168.1.42"
async def main():
cloud_client = LaMarzoccoCloudClient(username, password)
try:
fleet = await cloud_client.get_customer_fleet()
config = await cloud_client.get_config(serial_number)
except Exception as ex:
print(ex)
exit(1)
else:
print(asdict(config))
cloud_client = LaMarzoccoCloudClient(username, password)
try:
fleet = await cloud_client.get_customer_fleet()
config = await cloud_client.get_config(serial_number)
except Exception as ex:
print(ex)
exit(1)
else:
print(asdict(config))
local_client = LaMarzoccoLocalClient(host, fleet[serial_number].communication_key)
try:
config = await local_client.get_config()
except Exception as ex:
print(ex)
exit(1)
else:
print(asdict(config))
asyncio.run(main()) now I REALLY don't know what's going on. This should print your machine's status 3 times to the console. I'm not interested in that content, I just wanna see if it's able to get it. |
The problem
Steps to reproduce:
Resultat: integration is not working, reporting in the UI "Request to endpoint https://cms.lamarzocco.io/oauth/v2/token failed with status code 400"
Strangely, afterwards the login in the app is not working anymore. Seems like the account has been locked. Password change is then the only way to get it going again.
What version of Home Assistant Core has the issue?
core-2024.11.2
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
lamarzocco
Link to integration documentation on our website
https://www.home-assistant.io/integrations/lamarzocco
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
Additional information
La Marzocco Linea Micra
The text was updated successfully, but these errors were encountered: