New platform for My Home bTicino

Hi Clau67,
I am also interested can you share your progress with us?
I am new to the word of Home Assistant and any help will be very appreciated.
I do have Bticino My home cabled system in my house and I want to get the best out of it.
Are you having the same configuration?
Ciao

Hi,
I upload here the actual state for this platform


The platform is able to monitor the light status also if you use wall switch, and can also monitor the thermal unit and probe of the system.
There is a delay caused of the update of the system, but it can be reduced if you
add:

_emphasized text_scan_interval: number of sec for update

in the light platform

by default is 30 sec

3 Likes

Hi Clau67,
thank you very much for sharing, I tried to install it but I get the same error you had:

File “/config/custom_components/light/my_home.py”, line 23, in
from OpenWebNet import OpenWebNet
ModuleNotFoundError: No module named ‘OpenWebNet’

can you help?

thanks a lot.

You have to install from Pypi the OpenWebNet module

pip3 install OpenWebNet

In the next day I’ll update the my_home.py .
I introduce the switch but I’m still testing it

Hi, Clau67,
I tried to install the custom component, I use Hass.io

I also installed OpenWebNet from the terminal with the command pip3 install OpenWebNet
I also updated pip3 to 10.0.1 and give me these errors:

core-ssh:~# hassio homeassistant check
ERROR
starting version 3.2.4
Testing configuration at /config
Failed config
General Errors:
- Platform not found: light.my_home
- Platform not found: sensor.my_home
Successful config (partial)
core-ssh:~#

Any suggestions? Thank you.

My configuration

######## Configuration.yaml file ########

######## MyHome bTicino ########
my_home:
host: 192.168.1.2
port: ‘20000’
password:! secret myhome_password

######## MyHome bTicino light ########
light:

  • platform: my_home
    devices:
    • name: test
      indirizzo: 21

sensor:! includes sensors.yaml

######## sensors.yaml file ########

######## Sensor MyHome ########

  • platform: my_home
    devices:
    • name: temp
      indirizzo: 51

######## path
/config/custom_components/Sensor/my_home.py
/config/custom_components/Light/my_home.py
/config/custom_components/my_home.py

Hi Caiosweet,
it seems like if the platform is not present, so check all this and try again:

  1. There are 3 files on GitHub, the firs one is on the root my_home.py and is for create the platform, this must be copied under custom_components

  2. Then you have to create (us have you done) the two directory Light and Sensor and copy in it the other two file you find under the matching directory

The configuration.yaml seem correct , if you respect the indentation, but change address to indirizzo ,sorry but I haven’t translate for the moment all file in English :grinning:
Let me know

thank you
I’m Italian too, sorry, I’ve also translated “indirizzo”

I think the problem is “Hassio”, and the installation of openwebnet.
I do not know how to install openwebnet, I think I need an addon :frowning: or the right command to install it on hassio

Thanks anyway.

PS after the hassio upgrade to 68 openwebnet has disappeared and I have reinstalled it like this:

➜  / pip3 install OpenWebNet==1.0.1 --no-cache
Collecting OpenWebNet==1.0.1
  Downloading https://files.pythonhosted.org/packages/86/b4/8e33fda92bd51c5e2bc0d7fc7df10f4a31ddf0e1227b30b6d7944b5d477d/OpenWebNet-1.0.1.tar.gz
Installing collected packages: OpenWebNet
  Running setup.py install for OpenWebNet ... done
Successfully installed OpenWebNet-1.0.1

➜  / pip3 freeze
awake==1.0
OpenWebNet==1.0.1
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Hi Caiosweet,
I thin you are right, could be “Hassio” the problem.
I’m using on Hassbian and I don’t have this problems:
I have some other problems but maybe I solved them today.
I’m doing some test.
Then if all ok, I’ll update all file.

2 Likes

Hi all
I have create a new version of OpenWebNet class and the new my_home platform for HA.
You can find it on GitHub.

hi guys,
I have painstakingly reverse engineered the official software, and am able to list all devices in the system and their configuration (working on programming)
see http://github.com/sxpert/myhomepy

2 Likes

Unbelievable! so are you able to make the official component? can also be used for HASSIO?

I do not know how, but I managed to make it work, the only problem is that it is slow, because it does not recognize the password … and it goes several attempts before it works (use MH200N)

Hi caiosweet,
the password recognition, it’s only one time when HA is starting, then if there aren’t problem on the net the password recognition is no longer used.
If I remember correctly with MH200N you can set a numbers of IP address that are able to connect with the gateway without the password.
Have you insert the IP address of your pc where Home Assistant is running on ?
I develop the OpenWebNet class in order to connect with my HL4684 that is not able to do this, so I need in any case to recognize the password.
This happen when the platform is setup.
If your system don’t ask for this could be that OpenWebNet class ask for something but your MH200N answer something other.
I used the new platform on an Hassbian and on a MacOS, and on both function.
But I don’t have HASSIO, for test it.:thinking:
Could you send me the log file, so I check if there is some info or error that can give me some indication about the problems
Please check it before to send, be sure you don’t give any personal info.

Forgive me, but I use the translator.
I have imposed the IP in the range for access permissions.
I tried not to put the password, but it is a mandatory option, the component does not accept the parameter without password …
Very kind, I would like to send the log in a clear and detailed, I promise to do it this weekend calmly.
I installed the new version of hassio, I have to check even if everything remained usable. The Deps folder is intently still there!
For now, thank you very much.

Sorrry sorry and sorry for google translate: D

Perdonatemi, ma uso il traduttore.
Si ho imposto li’IP nel range per i permessi di accesso.
Ho provato a non mettere la password, ma è un opzione obbligatoria, il componente non accetta il parametro senza password…
Molto gentile, vorrei inviare il log in maniera chiara e dettagliata, prometto di farlo questo fine settimana con calma.
Ho installato la nuova versione di hassio, devo controllare anche se tutto è rimasto fruibile. Intanto la cartella Deps c’è ancora!
Per ora grazie mille.

Sorrry sorry and sorry for google translate :smiley:

Ciao Caiosweet :grinning:
try removing the IP from range of authorized access.
In this way it must ask at the beginning the password.

It works like a charm!

I’m really stupid!
I’ll do the test anyway and post the log file.
I have to understand how to do the installation for Hass.io, the add-on, and it’s perfect!

Hola clau67, the lights go!
Now the problem is the sensors.
I have a central 99 zones with 4 + 1 zones set.
from your guide
“value you set with 2 jumpers on the probe or central unit wall es 11, 12 …”
But I have the following “addresses” as zones
Camera zona 1
Studio zona 2
Bagno zona 3
Salone zona 4
Quadro elettric

This is part of the Hass.io log and the MH200N monitor where the request is executed.
Thank you for your patience.

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 204, in async_update_ha_state
    yield from self.async_device_update()
  File "/usr/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 327, in async_device_update
    yield from self.hass.async_add_job(self.update)
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/sensor/my_home.py", line 95, in update
    self._state=self._gate.answ_read_temperature(self._indirizzo)
  File "/config/deps/lib/python3.6/site-packages/OpenWebNet.py", line 455, in answ_read_temperature
    valore = float(self.stato_answer('4',where,'0'))/10
  File "/config/deps/lib/python3.6/site-packages/OpenWebNet.py", line 409, in stato_answer
    return self.sensor_risposta[where]
KeyError: '2'

Thu May 31 2018 18:03:37 GMT+0200 (ora legale Europa occidentale)

Update for sensor.temp_quadro fails
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 204, in async_update_ha_state
    yield from self.async_device_update()
  File "/usr/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 327, in async_device_update
    yield from self.hass.async_add_job(self.update)
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/sensor/my_home.py", line 95, in update
    self._state=self._gate.answ_read_temperature(self._indirizzo)
  File "/config/deps/lib/python3.6/site-packages/OpenWebNet.py", line 455, in answ_read_temperature
    valore = float(self.stato_answer('4',where,'0'))/10
  File "/config/deps/lib/python3.6/site-packages/OpenWebNet.py", line 409, in stato_answer
    return self.sensor_risposta[where]
KeyError: '105'

Thu May 31 2018 18:03:37 GMT+0200 (ora legale Europa occidentale)

Update for sensor.temp_camera fails
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 204, in async_update_ha_state
    yield from self.async_device_update()
  File "/usr/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 327, in async_device_update
    yield from self.hass.async_add_job(self.update)
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/sensor/my_home.py", line 95, in update
    self._state=self._gate.answ_read_temperature(self._indirizzo)
  File "/config/deps/lib/python3.6/site-packages/OpenWebNet.py", line 455, in answ_read_temperature
    valore = float(self.stato_answer('4',where,'0'))/10
  File "/config/deps/lib/python3.6/site-packages/OpenWebNet.py", line 409, in stato_answer
    return self.sensor_risposta[where]
KeyError: '1'

###########################################################################
Socket MONITOR 

31/05/2018  18:03:03:580    Mon: *1*0*11##
31/05/2018  18:03:03:968    Mon: *1*0*31##
31/05/2018  18:03:07:676    Mon: *#4*105*0*0296##
31/05/2018  18:03:07:814    Mon: *#4*1*0*0262##
31/05/2018  18:03:07:927    Mon: *#4*2*0*0265##
31/05/2018  18:03:14:454    Mon: *1*0*31##
31/05/2018  18:03:14:517    Mon: *1*0*11##
31/05/2018  18:03:17:041    Mon: *#13**22*18*01*32*001*04*31*05*2018##
31/05/2018  18:03:25:435    Mon: *1*0*11##
31/05/2018  18:03:25:518    Mon: *1*0*31##
31/05/2018  18:03:36:427    Mon: *1*0*11##
31/05/2018  18:03:36:521    Mon: *1*0*31##
31/05/2018  18:03:38:648    Mon: *#4*2*0*0265##
31/05/2018  18:03:38:843    Mon: *#4*105*0*0296##
31/05/2018  18:03:39:026    Mon: *#4*1*0*0262##
31/05/2018  18:03:47:102    Mon: *#13**22*18*02*02*001*04*31*05*2018##
31/05/2018  18:03:47:430    Mon: *1*0*11##
31/05/2018  18:03:47:524    Mon: *1*0*31##

This is my config

sensor:
# NYHOME SENSOR
  - platform: my_home
    devices:
      - name: 'Temp camera'
        indirizzo: '1'

  - platform: my_home
    devices:
      - name: 'Temp Studio'
        indirizzo: '2'

  - platform: my_home
    devices:
      - name: 'Temp Quadro'
        indirizzo: '105

Hi caiosweet,
I understand your problems.
When I read the data from the bus I check if the address in the answer is the same of the address in config and then write the value of T in a dictionary. But I used ever two number for the address file 11, 12 and so on , but you have only one digit 1, 2 or 3 or in one case 3 digit 105, so the OpenWebNet class is not able to read in correct way.
I have to do an update of the Class.:face_with_raised_eyebrow:

1 Like

Hi Caiosweet,
I have updated the OpenWebNet.py on PYpi, now it must function also for sensor.
You have to disinstall the OpenWebNet from you system, on hassbian
pip3 uninstall OpenWebNet
then install the new version
pip3 install OpenWebNet==1.3.0
edit the my_home.py under custom_components, and change the line 21
REQUIREMENT = [OpenWebNet==1.2.9] with
REQUIREMENT = [OpenWebNet==1.3.0]
and test it.
When HA start need some seconds before update the sensor with the correct value.

1 Like

First of all, thank you.
I tried the new code, but unfortunately without changes.
To make sure the new code is installed, I report the error lines

409 return self.sensor_risposta[where]
462 valore = float(self.stato_answer(‘4’,where,‘0’))/10

Update for sensor.temp_camera fails
Traceback (most recent call last):
File “/usr/lib/python3.6/site-packages/homeassistant/helpers/entity.py”, line 204, in async_update_ha_state
yield from self.async_device_update()
File “/usr/lib/python3.6/site-packages/homeassistant/helpers/entity.py”, line 327, in async_device_update
yield from self.hass.async_add_job(self.update)
File “/usr/lib/python3.6/concurrent/futures/thread.py”, line 56, in run
result = self.fn(*self.args, **self.kwargs)
File “/config/custom_components/sensor/my_home.py”, line 95, in update
self._state=self._gate.answ_read_temperature(self._indirizzo)
File “/config/deps/lib/python3.6/site-packages/OpenWebNet.py”, line 462, in answ_read_temperature
valore = float(self.stato_answer(‘4’,where,‘0’))/10
File “/config/deps/lib/python3.6/site-packages/OpenWebNet.py”, line 409, in stato_answer
return self.sensor_risposta[where]
KeyError: '1

I am aware that you are not a developer, and I thank you for the effort, I hope others will give us a hand.

CaioSweet