anotherjulien / MyHOME

MyHOME integration for Home-Assistant
GNU Affero General Public License v3.0
135 stars 53 forks source link

"Failed to set up" Full details, logs, images provided. #115

Open kartalsmart opened 6 months ago

kartalsmart commented 6 months ago

I really hope someone can assist. I followed the configuration, inputting the MAC address of the model and the correct model number in a myhome.yaml file in the same directory as the configuration.yaml (1).

The hub is discovered immediately, it autofills the password "12345" which is correct, then says "failed to connect" (2).

The log is attached (3)

"Source: custom_components/myhome/config_flow.py:231 Integration: MyHome (documentation, issues) First occurred: 7:36:49 PM (2 occurrences) Last logged: 7:47:20 PM [MH201 gateway - 192.168.0.58] Connection requires a password but none was provided for test session. [mh201 gateway - 192.168.0.58] Connection requires a password but none was provided for test session."

A password WAS provided.

Next Log:

Logger: homeassistant.config_entries Source: config_entries.py:444 First occurred: 7:36:19 PM (3 occurrences) Last logged: 7:47:23 PM

Error setting up entry MH201 Gateway for myhome
Error setting up entry mh201 Gateway for myhome

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/config_entries.py", line 444, in async_setup result = await component.async_setup_entry(hass, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/myhome/init.py", line 51, in async_setup_entry _validated_config = config_schema(yaml.safe_load(await yaml_file.read())) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/myhome/validate.py", line 177, in call data = super().call(data) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 272, in call return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 595, in validate_dict return base_validate(path, iteritems(data), out) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 433, in validate_mapping raise er.MultipleInvalid(errors) voluptuous.error.MultipleInvalid: expected a dictionary for dictionary value @ data['mh201']['light']

Next Log: Logger: aiohttp.server Source: runner.py:188 First occurred: 7:41:56 PM (2 occurrences) Last logged: 7:48:45 PM Error handling request

1 2 3 .

kartalsmart commented 6 months ago

1111

I found a mistake in the MAC address, however I'm now geting the following error in the log:

sxpert commented 6 months ago

the contents of your myhome.yaml file would be useful thanks

kartalsmart commented 6 months ago

Thanks very much for your fast response, this is myhome.yaml. I've tried to put in a couple of lights from myhomesuite:

mh201: mac: '00:03:50:87:1A:DD' light: garage: where: '11' name: Garage dimmable: False manufacturer: Arnould model: 64391 dining_room: where: '31' name: Dining room dimmable: False manufacturer: BTicino model: F411U2 switch: [...] cover: [...] climate: [...] binary_sensor: [...] sensor: [...]

In this image you can see my full set-up as determined by Myhomesuite, it also shows the mh201 and it's MAC address.

homesuite

This is an example of one of my actuators, there is no indication to what it does - whether it's a light or shutter - on any of them.

kartalsmart commented 6 months ago

homesuite1

Image didn't attach in previous post.

sxpert commented 6 months ago

can you use the 3-backticks syntax for your myhome.yaml so that it displays like a file and showing the tabs, thanks ? here's what mine looks like:

f454:
  mac: "00:03:50:86:03:b2"
  light:
    foyer:
      where: "21"
      name: "Entrée"
    kitchen:
      where: "24"
      name: "Cuisine"
    corridor:
      where: "02"
      name: "Corridor"
[...]

Your devices are using physical configuration, you won't do much with myhome suite apart from scanning the existing configuration currently done with resistive jumpers in the back of each module.

As for myhome_suite not knowing what they do this is perfectly normal. none of that information is stored in device... more so when using physical configuration. When using virtual configuration, you can save the data in the .plant file generated by myhome suite.

you may find information in the configuration of the MH201 though.

kartalsmart commented 6 months ago

There must have been some tiny difference in the formatting because your version has worked. Thank you very much for taking the time to assist me.

Regarding the .plant file, can this be used to populate the myhome.yaml in any way? I was under the impression I needed to combine two figues in the myhome suite (A + PL1) in order to find the "where" input.

kartalsmart commented 6 months ago

I'm just doing it trial and error, this is the most fun I've had in a while. I'm doing all the lights first. When I tried to add a shutter for some reason it broke everything, I'm still getting the hang of it! Thanks again sxpert, you're a kind person to help.

sxpert commented 6 months ago

Regarding the .plant file, can this be used to populate the myhome.yaml in any way? I was under the impression I needed to combine two figues in the myhome suite (A + PL1) in order to find the "where" input.

note: I am not the original developer, but I know my way around the bticino / SCS / MyHome / whatever_commercial_name_of_the_day_they_come_up_with

There are multiple things not yet implemented in this integration:

  1. Getting the configuration from the system itself (sort of similar to point 2, really)
  2. Creating / modifying virtual configurations for devices (I have reverse engineered the process, not sure how to integrate this in the code)
  3. Importing the plant file
  4. Exporting plant files

more info is available at my own repository here: https://gitlab.sxpert.org/web-applications/myhomepy/-/tree/master/docs?ref_type=heads

kartalsmart commented 6 months ago

I had a look at your Repository earlier while stuck, I'm afraid it is infinitely beyond my capacity to understand. This is my first attempt into this kind of thing ever, I'd never even visited Github before - I'm happy to say I have successfully added all lights and shutters.

sxpert commented 6 months ago

next step is removing the configuration jumpers and jump to virtual configuration in myhome_suite (copying the existing configuration at the begining, one device at a time) this will allow you to log the missing information in your myhome_suite plant file, and understand which device / address does what exactly

f18m commented 6 months ago

hi @sxpert , @kartalsmart , sorry I don't want to hijack this issue but I wonder: what do you think is the best way to populate the "where" field in the myhome.yaml? I see from screenshots above that you are using the Java Windows app MyHome SUITE to discover these details? Is it possible from MyHome+PROJECT android app to get the "ambient" and "point light" indication somehow?

PS: @sxpert it would be so nice to integrate your reverse-engineered procedure to learn the system topology directly from the myHomeServer into this HomeAssistant plugin... I'm confident with Python and asyncio... if time permits it would be nice to work on that. However I'm not sure if the original author @anotherjulien is still active/has-time for this project or not...

sxpert commented 6 months ago

hi,

Java Windows app MyHome SUITE to discover these details?

MyHome_Suite is actually written in some form of .Net, no Java involved

Is it possible from MyHome+PROJECT android app to get the "ambient" and "point light" indication somehow?

I have not used this application yet, I don't have a MyHomeServer1 device

PS: @sxpert it would be so nice to integrate your reverse-engineered procedure to learn the system topology directly from the myHomeServer into this HomeAssistant plugin... I'm confident with Python and asyncio... if time permits it would be nice to work on that. However I'm not sure if the original author @anotherjulien is still active/has-time for this project or not...

Indeed, that was sort of my intention. though I have more grandiose plans including replacing MyHomeSuite for configuration with an opensource alternative

kartalsmart commented 6 months ago

"sorry I don't want to hijack this issue but I wonder: what do you think is the best way to populate the "where" field in the myhome.yaml?"

I successfully achieved this via the application in my images, mysuite. You do a scan and click through each module - A PL1 is one "where". A PL2 is another "where". All of mine were 2 digit "wheres".

On my image above you can see PL1 PL2 PL3 PL4 - this is because each module is controlling 4 lights. A combines with each PL.

You have you go through manually adding them into Home Assistant and running around your house to see what it did.