-
Notifications
You must be signed in to change notification settings - Fork 33
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
Allow for posting to appliance #26
base: main
Are you sure you want to change the base?
Conversation
Very nice!! Thank you for this |
Did you figured out how to actually start a program? (e.g. dishwasher, but I guess it will be similar to other) I can turn it on and successfully tried some other features, which have explicit write access according to the config.json. But I have no idea where to get the structure of the json data for even only starting the pre-set program. Already tried to post to '/ro/activeProgram' but always getting a "400 Bad Request response", no matter which combination even with options I tried. PS: I already have done some work using your PR as base branch to implement the Homie-MQTT protocoll for auto-detection in e.g. smart-home environments. Is it better to make a PR to your branch or directly into the main of this repository? |
No i did not, but as said it is very alpha. i could look into that, but i need to bring my android phone back to live to see how the home connect app does that stuff. You could best bring a PR to my branch. I doubt if @osresearch is looking into these PR's... The development is not very active. |
The json data for /ro/activeProgram should looks like this: |
Thank you both! "program" was the missing keyword! |
Is there any documentation regarding what resource values exist when making requests and general information regarding the structure of the data variable? I assume that there isn't any... If that's the case, what would be a good way to intercept and decode the packets without needing to root an android phone? As a side note, I'd be interested in hidden features. I have a fridge/freezer and I would like to monitor the temperature inside. However, that doesn't seem to be part of ro/allMandatoryValues. It is a pity that they didn't include it. I'm wondering if some debug style output would include it. Alas... |
First. There is documentation on how to use the cloud api, which seems to be very similar to the api exposed by the devices: Second. If your device has got |
It seems to be that i am wrong about the x86 version of the app: and it seems that i am wrong about the emulation: |
@Skons thanks a lot for the advice. I'll try to use wireshark to get an insight into what's going on. I was considering contacting the BSH Group, but I don't think they would disclose that information. Even their API is free but not open source. I tried reverse engineering the local network HTTP communication using their cloud API as a blueprint but it's not one to one. The mismatch between the two is very significant. |
A list of possible resource values is here: https://github.com/osresearch/hcpy/blob/main/HCDevice.py. For |
re: emulators and all that of course, Windows 11 can just run Android apps (through the magic of emulators and all that, but it's all concealed from the user), so that's an interesting tool. Just got a Home Connect Dishwasher, and discovered that IFTTT has been completely neutered, so I'm going to have to build something myself. I guess this means I become active on this project :-) Either that or I setup a proper HomeAssistant and/or Node-RED .. but this seems like the best option. I intend to write an app that will keep track of the state of the dishwasher, and notify people that it's done with what it's doing. And have it get progressively more annoying the longer it goes without someone unloading it. :-) but I'd also like to implement control capability as well, because why not? so.. here I am :-) If there's anything I can do to help reverse the protocol, I'd be happy to load it up on one of my win11 machines and mess with it. Just let me know what needs to happen |
|
||
if 'min' in feature: | ||
min = int(feature['min']) | ||
max = int(feature['min']) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be 'max'
This update allows to change settings at the appliance. My main goal was to set the time, and that seems to be working. I have seen mixed results on switching the appliance on or off, sometimes error 516 will show up. I haven't figured out what that error is yet. For now it has a basic implementation of being able to send information to the appliance.
See the README for information how to send messages to an appliance.
I also updated the logging to see which message belongs to which appliance.
This PR integrates #25 and #19. It solves issue #17 and #3