Skip to content
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

Missing default Country value leads to problems on first startup #59

Closed
theimo1221 opened this issue Feb 6, 2021 · 31 comments
Closed
Assignees
Labels
bug Something isn't working documentation Improvements or additions to documentation

Comments

@theimo1221
Copy link

Hello Grizzelbee,

as my new Purifier arrived yesterday I'd like to connect it with IoBroker.
Unfortunately it seems like there is a problem during setup:
image

Do you think this is a network issue, or could it be some interference with special chars in my password (15+ chars)?

Best Regards

Thiemo

@Grizzelbee
Copy link
Owner

Grizzelbee commented Feb 6, 2021

Hi Thiemo,

as far as I can see in your log snippet the adapter is missing it's config or config isn't valid. Which means that you need to give some additional config values to the adapter:
grafik

Please fill out the complete config and refer to the readme if there are questions - if readme dosen't claify all, please ask.
The dyson account the adapter asks for is the same which is used for the dyson mobile app.

And - yes: special chars may be a problem in the password. But I haven't tried it. Best is to use a-z, A-Z and std english special chars like #!$? and some more. Keep away from german "Umlaute". But this is a general hint Not special for this adapter.

But: This is not the current problem. If there had been a problem with your credentials the adapter has thrown an accoring error.

@theimo1221
Copy link
Author

theimo1221 commented Feb 6, 2021

Thanks for the recommendations, as I'm using a password manager I'm not using german special chars.
I changed the password to numbers/chars only but still have the same issue as above

This is my config:
image

Edit: I just checked with Postman, atleast for the "https://appapi.cp.dyson.com/v1/userregistration/authenticate?country=de" I get a valid response (at least from my main pc) so it shouldn't be a firewall/security gateway issue

@Grizzelbee
Copy link
Owner

I'm pretty shure that it has nothing to do with your firewall/security gateway.

May I ask you to please switch the adapter to debug logging (Tab Instances ; expert mode) and post the log?
Best is to filter to the dysonairpurifier.0 instance before posting (most left column).

@Day1983
Copy link

Day1983 commented Feb 7, 2021

the same Problem - with 0.7. run the adapter, bute with 0.7.1 dosnt...

My tree is deleted

image

@Grizzelbee
Copy link
Owner

AH! You ran 0.7.0 before?

Then please reenter the password in the config as mentioned in the readme and changelog.
I had to change something in the pwd-encryption routine.

That should solve your problem.

@mrtzlbm
Copy link

mrtzlbm commented Feb 7, 2021

Hi, I just had the same problem as @Day1983, however I did a fresh install of 0.7.1. I got the same errors as @Day1983. I had to change all adapter settings (including the preset ones) once. After restarting the adapter I got the adapter to show up in the object tree with the 'correct' errors. 👍
Bildschirmfoto 2021-02-07 um 15 18 50

@Grizzelbee
Copy link
Owner

Grizzelbee commented Feb 7, 2021

Okay. Seems that we have two different things here:

  1. Seems like I have messed up something with saving and loading of the config. This is not unlikely since I worked on it. I'll check it.
  2. The green Part in @mrtzlbm 's Screenshot: Starting with V0.7.1 I try to connect to the device by it's serialnumber - which is also it's default hostname. This will work under two circumstances: 1. You have a FritzBox or you are running a dedicaed DNS in your LAN. 2. you haven't changed the default hostname of your device. If you can't answer all of these with YES - you'll need to enter the IP of your device since all the time before. Of course you can enter the IP even if you answerd all with yes. Neither your LAN nor the adapter should care.

@mrtzlbm
Copy link

mrtzlbm commented Feb 7, 2021

@Grizzelbee I just hadn't set up the DNS record yet. Everything works fine for me, thanks :)
Just wanted to check in and describe how I got around the issue with the adapter config.

@Grizzelbee Grizzelbee added bug Something isn't working documentation Improvements or additions to documentation labels Feb 7, 2021
@Grizzelbee Grizzelbee self-assigned this Feb 7, 2021
@Grizzelbee
Copy link
Owner

Grizzelbee commented Feb 8, 2021

@theimo1221 : Is your Issue also solved? Or are you still struggeling?

@theimo1221
Copy link
Author

theimo1221 commented Feb 8, 2021

@Grizzelbee I'm still struggeling:
image

If you want feel free to contact me directly in Discord, so I can share my screen/problem with you today evening

EDIT: Some more information:

  • This is my first installation of this adapter (I haven't run 0.7.0 before)
  • The adapter config doesn't have a field for the devices IP Adress, it seems to crash before offering me that field (as written in readme)

@viper4gh
Copy link

viper4gh commented Feb 9, 2021

I have the same problem with a fresh 0.7.1 installation, I configured username and password in the adapter config with the same result:
2021-02-09_10-03-25__logs - ioBroker

There is no device in the device tree where I can configure the ip address. There must be something wrong on the first start of the adapter.

The Dyson API is also accessable from the iobroker system, tested with:
curl -X POST -H "Content-Type: application/json" -k 'https://appapi.cp.dyson.com/v1/userregistration/authenticate?country=DE' -d '{"Email": "[email protected]", "Password": "xyz"}'

@Grizzelbee
Copy link
Owner

@viper4gh, @theimo1221
Okay. I'm just debugging the load/save config routines and enhancing the testConfig method. So please be patiend and wait for the upcoming version 0.7.2 - which should hopefully solve your problems. I'll keep you informed.

theimo1221 pushed a commit to theimo1221/ioBroker.dysonairpurifier that referenced this issue Feb 9, 2021
@theimo1221
Copy link
Author

@Grizzelbee Okay, I spotted the issue, it seems like the Country is null
I'll dig deeper

theimo1221 pushed a commit to theimo1221/ioBroker.dysonairpurifier that referenced this issue Feb 9, 2021
@theimo1221 theimo1221 changed the title Problem at first start (Special Chars in Password?) Missing default Country value leads to problems on first startup Feb 9, 2021
@theimo1221
Copy link
Author

By default country was empty while the browser selects "Deutschland" as the shown value for the country selection thus making the user believe country beeing correctly chosen.

Pull Request #61 resolves this.

@viper4gh
Copy link

viper4gh commented Feb 9, 2021

I can confirm, select the country again, solves this problem.
But now it stucks at the ip address.
I stopped the adapter, filled in the ip address at the Hostaddress datapoint in the device tree and started the adapter again.
Now the log still shows "No host address given. Trying to connect to the device with it's default hostname", which is not resolved by DNS in my case.
Will do some tests tomorrow again, maybe I did something wrong.

Update:
I tested again, but the ip address will not to be saved in the config, the adapter always uses the default hostname.
The only workaround was adding an Alias of the default name to my DNS server.

theimo1221 pushed a commit to theimo1221/ioBroker.dysonairpurifier that referenced this issue Feb 10, 2021
@viper4gh
Copy link

@Grizzelbee
I reverted my workaround with the DNS Alias for the default Hostname to check, if the configured Hostaddress datapoint is working now after all data is received, but it is not.
That means the Hostaddress datapoint is still not read by the adapter and I get the log message "No host address given..." on startup.
Is there anything I need to pay special attention to for the ip address?

Grizzelbee added a commit that referenced this issue Feb 10, 2021
Resolve #59 Missing default Country value leads to problems on first startup
@Grizzelbee Grizzelbee reopened this Feb 10, 2021
@Grizzelbee
Copy link
Owner

Grizzelbee commented Feb 10, 2021

@viper4gh What version are you on? Or in other Words: Have you tried 0.7.3 already? This should fix this issue.

@theimo1221
Copy link
Author

theimo1221 commented Feb 10, 2021

@Grizzelbee with newest version there might be an error regarding credentials
image

EDIT: I recieve {"Message":"Unable to authenticate user."} within Postman, while I can login through the dyson Homepage. So I'm not sure if this is a problem with latest changes.

@viper4gh
Copy link

viper4gh commented Feb 10, 2021

@viper4gh What version are you on? Or in other Words: Have you tried 0.7.3 already? This should fix this issue.

I was still on 0.7.1, then I will test it with the new version and will give you feedback.

@Grizzelbee
Copy link
Owner

Grizzelbee commented Feb 10, 2021

@theimo1221 Please try to re-enter your password. There are some changes at this position which might lead to this.
Btw: Since I can't find the original question/conversation: Yes - your fix regarding the <select> has been deleted intentionally since we solved it in parallel and my fix changed more code. So it was the easiest way to drop only one line knowing the other code to work.

Btw-2: The easist way to check your enterd credentials might be to get into index_m.html line 104 and change type="password" to type="text" - that displays the unencyrpted pwd in config.
<input class="value" id="Password" maxlength="32" **type="password"**>

@theimo1221
Copy link
Author

@Grizzelbee I just changed my password on dyson.de and even with new password it doesn't work

On my ioBroker Server I get following response as well: {"Message":"Unable to authenticate user."} so I don't know if I'm banned from the api
This was the request I made curl -X POST -H "Content-Type: application/json" -k 'https://appapi.cp.dyson.com/v1/userregistration/authenticate?country=DE' -d '{"Email": "...", "Password": "..."}

@viper4gh
Copy link

I updated to 0.7.3, configured all settings again and now get the following:

2021-02-10_16-08-13__logs - ioBroker

It detects the controller 3.1.6, but says that the requirement of version 3.0.0. is not fulfilled.

@viper4gh
Copy link

viper4gh commented Feb 10, 2021

I completely uninstalled the adapter instance and the adapter, which uninstalls the device tree, too.
Then installed 0.7.3 again, configured all settings and now have the same problem as @theimo1221 :

2021-02-10_16-19-14__~capture

Update:
And I get the same message on the curl command now, what was working today in the morning:
{"Message":"Unable to authenticate user."}

@Grizzelbee
Copy link
Owner

Grrrrr!! Seems to be a timing issue.
Facing it on my instances now as well where it worked first.

Sorry for that. Debugging ...

@theimo1221
Copy link
Author

What does this mean, are our accounts now rate limited, or is that a temporary thingy?

@Grizzelbee
Copy link
Owner

What does this mean, are our accounts now rate limited, or is that a temporary thingy?

I'm sorry - but currently I don't know. Debugging says: Credentials are okay. So it's no timing issue. My idea was, that the password is used for login before it is decryted. But thats not the case. Maybe dyson locked the adapter out. Or it's really a temporary thing. Let's wait a while and see what happens ...

@viper4gh
Copy link

I tested the curl command again and still get:
{"Message":"Unable to authenticate user."}

It seems indeed we are now banned.
At least the Dyson Link app still works.

@Grizzelbee
Copy link
Owner

I tested the curl command again and still get: {"Message":"Unable to authenticate user."}

Same on my side in a few different tests.

It seems indeed we are now banned.

I still don't believe really in being banned. The error message doesn't fit. But on the other hand I don't have any clue what really happend.

@theimo1221
Copy link
Author

theimo1221 commented Feb 11, 2021

Maybe the server tries to prevent unauthorized access by flagging those accounts which switched countries in a short time frame

@viper4gh
Copy link

After the adapter is working now with the workaround (#65 (comment)) I can say that the adapter is using the configured Hostadress now, which was not working in my case before.

@Grizzelbee
Copy link
Owner

Solved by PR #66

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

5 participants