Support for Velbus Home Automation

yeah this was probably introduced with the following pull-request

Since now Iā€™m part of the beta channel. I have 2 RPi working on my network and I usualy test new things on the RPi3 while the RPi4 is reserved -with my approval after some tests- for real automations and controls of my installation

@Cereal2nd :
Sorry for later reply, didnā€™t get to the upgrade process, but was able to today.
I updated all Velbus modules to their newest firmwares, and updated HomeAssistant to 2021.12.4. Still the same issue for the covers though.

The position value is correct and thus the arrows to control the covers are enabled correctly when the cover is up or down. The ā€œstateā€ value is always ā€œopenā€ though, because after closing the covers, it triggers an ā€œopenā€ state again, since 2021.12.0.

Here you can see the arrows are correct, because these are probably based on the position of the cover:
Image1

In the logs we can see the ā€œwas closedā€ when the covers are being closed, but once they are fully closed a few seconds later, the ā€œwas openedā€ state triggers for some reason:
Image2

  • In all integrations, the entity ID containing a character with an accent in its name is replaced by the caracter itself without the accent while in the Velbus integration the accented characters are completely removed and the specials characters also : Ā° ,^ā€¦

  • In the History I have a lot of Alarm 1, Alarm 2, Heater, Boost, Cooler and Pump with an entityID *_x who doesnā€™t identify the real binary sensor. Is there a way around this problem ?

thanks to bdewitte123 Ā· GitHub

with his effort the covers and the negative temperatures should be fixed in the 2022.2.0 release

1 Like

yeah this is not optimal, but it was build like this when the first verlbus integration was added to hass (a long time ago)
Its not easy to change stuff like this, if we do we will break a lot of installations

Iā€™ve the HA version 2022.2.3 on a Rpi3 and two Velbus devices are missing (they exist on the other Rpi4).
Yesterday, Iā€™ve deleted the Velbus integration and added again. The Velbus integration installation now sees the USB connection without the need to enter ā€œ/dev/ttyACM0ā€ or something eslse.
The problem is now when calling the velbus:Scan service, the service gives an error " The interface provided is not defined as a port in a velbus integrationā€¦"

with the autodiscovery it can be that the path to the usb dev is different.
in your config dir there is a hidden folder .storage, inside that folder there is a file core_config_entries and here you can find the new/full path.

once this PR is merged it will be a lot simpler to debug stuff like this

Hello Cereal2nd,

Today I did upgrade from 2022.2.2 to 2022.2.6 and now some sensors are unavailable, the strange thing is an other module with the same type VMBGP4PIR and the same firmware all the sensors are working



image
Kind regards

Hello,

UPDATE!

The problem is fixed, i did clear the velbuscash folder and reload the integration.
Now its working fine again.

Hi,
After the latest update my velbus devices donā€™t have the correct feedback.
So If itā€™s on, I can turn of the light, and the slider goes to of, but the slider revers back to off automatically after 2 seconds or soā€¦
So the software state of the device is not in sync with the real state.
So if the light is on, and the software state is off,
I have to turn the light on (a turn on command is sent witch is ignored)
Then during the 2sec the software state is on, I press the switch again, and a turn off command is sent that is executed
And then the software state goes back to offā€¦
Really annoyingā€¦
Is it a general velbus issue? Or is my install bugged?

from what version and to what version did you upgrade?

Iā€™m currently running Home Assistant 2022.4.7
no idea what the previous version wasā€¦

can you get met the diagnostics info?

Couldnā€™t attach file, ok like this?

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2022.4.7",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.9.9",
    "docker": true,
    "arch": "armv7l",
    "timezone": "Europe/Brussels",
    "os_name": "Linux",
    "os_version": "5.10.103-v7l",
    "supervisor": "2022.04.0",
    "host_os": "Home Assistant OS 7.6",
    "docker_version": "20.10.9",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "velbus",
    "name": "Velbus",
    "documentation": "https://www.home-assistant.io/integrations/velbus",
    "requirements": [
      "velbus-aio==2022.2.4"
    ],
    "config_flow": true,
    "codeowners": [
      "@Cereal2nd",
      "@brefra"
    ],
    "dependencies": [
      "usb"
    ],
    "iot_class": "local_push",
    "usb": [
      {
        "vid": "10CF",
        "pid": "0B1B"
      },
      {
        "vid": "10CF",
        "pid": "0516"
      },
      {
        "vid": "10CF",
        "pid": "0517"
      },
      {
        "vid": "10CF",
        "pid": "0518"
      }
    ],
    "loggers": [
      "velbusaio"
    ],
    "is_built_in": true
  },
  "data": {
    "entry": {
      "entry_id": "689fb721e522722e4baa4b56fb5d3a9d",
      "version": 1,
      "domain": "velbus",
      "title": "verlbus",
      "data": {
        "port": "/dev/ttyACM0"
      },
      "options": {},
      "pref_disable_new_entities": false,
      "pref_disable_polling": false,
      "source": "user",
      "unique_id": null,
      "disabled_by": null
    },
    "modules": [
      {
        "type": "VMB4RYNO",
        "address": [
          1
        ],
        "name": "RYNOHout1",
        "sw_version": "795-1.20.9",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "Reserve",
            "is_loaded": true,
            "address": 1,
            "on": false
          },
          "2": {
            "num": 2,
            "name": "HeatMid",
            "is_loaded": true,
            "address": 1,
            "on": false
          },
          "3": {
            "num": 3,
            "name": "Fans",
            "is_loaded": true,
            "address": 1,
            "on": false
          },
          "4": {
            "num": 4,
            "name": "Clients",
            "is_loaded": true,
            "address": 1,
            "on": true
          },
          "5": {
            "num": 5,
            "name": "Virtueel relais",
            "is_loaded": true,
            "address": 1,
            "on": false
          }
        }
      },
      {
        "type": "VMB4RYNO",
        "address": [
          2
        ],
        "name": "VMB4RYNO2eKantoor",
        "sw_version": "34612-1.20.9",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "K21",
            "is_loaded": true,
            "address": 2,
            "on": true
          },
          "2": {
            "num": 2,
            "name": "K22",
            "is_loaded": true,
            "address": 2,
            "on": false
          },
          "3": {
            "num": 3,
            "name": "K23",
            "is_loaded": true,
            "address": 2,
            "on": true
          },
          "4": {
            "num": 4,
            "name": "K24",
            "is_loaded": true,
            "address": 2,
            "on": false
          },
          "5": {
            "num": 5,
            "name": "Virtueel relais",
            "is_loaded": true,
            "address": 2,
            "on": false
          }
        }
      },
      {
        "type": "VMB4RYNO",
        "address": [
          3
        ],
        "name": "RYNOHout2",
        "sw_version": "42117-1.20.9",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "GHRechts",
            "is_loaded": true,
            "address": 3,
            "on": true
          },
          "2": {
            "num": 2,
            "name": "GHMidden",
            "is_loaded": true,
            "address": 3,
            "on": true
          },
          "3": {
            "num": 3,
            "name": "GHlinks",
            "is_loaded": true,
            "address": 3,
            "on": true
          },
          "4": {
            "num": 4,
            "name": "GHHeatSide",
            "is_loaded": true,
            "address": 3,
            "on": false
          },
          "5": {
            "num": 5,
            "name": "Virtueel relais",
            "is_loaded": true,
            "address": 3,
            "on": false
          }
        }
      },
      {
        "type": "VMB4RYNO",
        "address": [
          4
        ],
        "name": "VMB4RYNO licht WB",
        "sw_version": "60394-1.20.9",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "WB1",
            "is_loaded": true,
            "address": 4,
            "on": false
          },
          "2": {
            "num": 2,
            "name": "WB2",
            "is_loaded": true,
            "address": 4,
            "on": false
          },
          "3": {
            "num": 3,
            "name": "WB3",
            "is_loaded": true,
            "address": 4,
            "on": false
          },
          "4": {
            "num": 4,
            "name": "WB4",
            "is_loaded": true,
            "address": 4,
            "on": false
          },
          "5": {
            "num": 5,
            "name": "Virtueel relais",
            "is_loaded": true,
            "address": 4,
            "on": false
          }
        }
      },
      {
        "type": "VMB4DC",
        "address": [
          5
        ],
        "name": "VMB4DC",
        "sw_version": "22983-3.21.9",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "Dimmer 1",
            "is_loaded": true,
            "address": 5,
            "state": 100
          },
          "2": {
            "num": 2,
            "name": "Dimmer 2",
            "is_loaded": true,
            "address": 5,
            "state": 100
          },
          "3": {
            "num": 3,
            "name": "Dimmer 3",
            "is_loaded": true,
            "address": 5,
            "state": 100
          },
          "4": {
            "num": 4,
            "name": "Dimmer 4",
            "is_loaded": true,
            "address": 5,
            "state": 100
          }
        }
      },
      {
        "type": "VMB4RYNO",
        "address": [
          6
        ],
        "name": "VMB4RYNOTech0",
        "sw_version": "33819-1.20.9",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "WaterTerras",
            "is_loaded": true,
            "address": 6,
            "on": false
          },
          "2": {
            "num": 2,
            "name": "Koeler",
            "is_loaded": true,
            "address": 6,
            "on": true
          },
          "3": {
            "num": 3,
            "name": "PersluchtKlep",
            "is_loaded": true,
            "address": 6,
            "on": true
          },
          "4": {
            "num": 4,
            "name": "Relais 4",
            "is_loaded": true,
            "address": 6,
            "on": false
          },
          "5": {
            "num": 5,
            "name": "Virtueel relais",
            "is_loaded": true,
            "address": 6,
            "on": false
          }
        }
      },
      {
        "type": "VMB4RYLD",
        "address": [
          7
        ],
        "name": "VMB4RYLD licht WB",
        "sw_version": "42766-1.20.9",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "WB5",
            "is_loaded": true,
            "address": 7,
            "on": false
          },
          "2": {
            "num": 2,
            "name": "WB6",
            "is_loaded": true,
            "address": 7,
            "on": false
          },
          "3": {
            "num": 3,
            "name": "Poorten",
            "is_loaded": true,
            "address": 7,
            "on": true
          },
          "4": {
            "num": 4,
            "name": "WB4.5",
            "is_loaded": true,
            "address": 7,
            "on": false
          },
          "5": {
            "num": 5,
            "name": "Virtueel relais",
            "is_loaded": true,
            "address": 7,
            "on": false
          }
        }
      },
      {
        "type": "VMB7IN",
        "address": [
          8
        ],
        "name": "VMB7IN",
        "sw_version": "34709-3.24.34",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "Drukknop 1",
            "is_loaded": true,
            "address": 8,
            "Unit": "kWh"
          },
          "2": {
            "num": 2,
            "name": "Drukknop 2",
            "is_loaded": true,
            "address": 8,
            "Unit": "kWh"
          },
          "3": {
            "num": 3,
            "name": "Drukknop 3",
            "is_loaded": true,
            "address": 8,
            "Unit": "kWh"
          },
          "4": {
            "num": 4,
            "name": "Drukknop 4",
            "is_loaded": true,
            "address": 8,
            "Unit": "kWh"
          },
          "5": {
            "num": 5,
            "name": "Drukknop 5",
            "is_loaded": true,
            "address": 8
          },
          "6": {
            "num": 6,
            "name": "Drukknop 6",
            "is_loaded": true,
            "address": 8
          },
          "7": {
            "num": 7,
            "name": "Drukknop 7",
            "is_loaded": true,
            "address": 8
          },
          "8": {
            "num": 8,
            "name": "Virtuele knop 1",
            "is_loaded": true,
            "address": 8,
            "enabled": false
          }
        }
      },
      {
        "type": "VMB4DC",
        "address": [
          9
        ],
        "name": "VMB4DCventilatie",
        "sw_version": "41163-4.25.21",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "Dimmer 1",
            "is_loaded": true,
            "address": 9
          },
          "2": {
            "num": 2,
            "name": "Dimmer 2",
            "is_loaded": true,
            "address": 9
          },
          "3": {
            "num": 3,
            "name": "Dimmer 3",
            "is_loaded": true,
            "address": 9
          },
          "4": {
            "num": 4,
            "name": "Dimmer 4",
            "is_loaded": true,
            "address": 9
          }
        }
      },
      {
        "type": "VMB4RYNO",
        "address": [
          10
        ],
        "name": "VMB4RYNO1eKantoor",
        "sw_version": "50582-1.20.9",
        "is_loaded": true,
        "channels": {
          "1": {
            "num": 1,
            "name": "Relax",
            "is_loaded": true,
            "address": 10,
            "on": true
          },
          "2": {
            "num": 2,
            "name": "Kantoor1en2",
            "is_loaded": true,
            "address": 10,
            "on": true
          },
          "3": {
            "num": 3,
            "name": "Refter1",
            "is_loaded": true,
            "address": 10,
            "on": true
          },
          "4": {
            "num": 4,
            "name": "Refter2",
            "is_loaded": true,
            "address": 10,
            "on": false
          },
          "5": {
            "num": 5,
            "name": "Virtueel relais",
            "is_loaded": true,
            "address": 10,
            "on": false
          }
        }
      }
    ]
  }
}

this looks ok, so not sure what could be the problem.

maybe try the folowing:

  • stop hass
  • removed the velbuscache dir in the config folder
  • start hass (this will take some time)

ok itā€™s fixed
Tx
So apparently the problem was there were 2 instances of velbus integration 1 new unconfigured one and the old oneā€¦
I deleted the old one and and configured the new one and it workedā€¦

Hi,

I have a feature request :blush:
I have a lot of VMBPIRC sensors (the bigger ones not the mini version) and one VMBPIRO (oudoor sensor). For the VMBPRIRO i see the light sensor value, but for the VMBPIRCā€™s this value remains at 0.
For the VMBPRIO then again, where Light and temperature is working, I donā€™t get any sensor updates on DARK/LIGHT nor Motion, which is weird.
A friend has a small version (the VMBPIRM), on this version the light sensor does work.
Another great feature to have would be simulating a button press to trigger velbus automations from HA. The VMBELOā€™s have tons of buttons to link stuff to :smiley:

Sorry if it is to much to ask, I will try to dig into the code myself aswell over time.

Thanks in advance for your reply.

Kind regards

for the pir sensor, it seems that not all messages are handled correctly invelbusaio
please raise a bug report on

for the button press, this is available, i use an automation for this (pushbutton 4 is a button on the vmbelo)

alias: Kachel
description: ''
trigger:
  - platform: state
    entity_id: binary_sensor.push_button_4
    from: 'off'
    to: 'on'
condition: []
action:
  - service: switch.toggle
    target:
      entity_id: switch.kachel_on_off
    data: {}
mode: single

Hi,

Thank you for your reply (and sorry for my late reply!)
I will make a bug report on the PIRO motion sensor data.
For me however at the moment the most blocking part is that motion updates to home assistant seem to have a 5-10 second delay once triggered, and I donā€™t understand why, it might have something to do with the fact that itā€™s a low priority message and is not updated to the buss instantly. A button push for example does update instantly. Any ideaā€™s on this?

As for the question of simulating a button press, I think you misunderstood my intent.
In the VelbusLink software you can ā€œsimulate button pressā€ and virtually click on a button which triggers what has been linked to that button, I think that would be a nice feature to have in home assistant.
My usecase is for example: I have some velbus glass pannels with leds on the outside, in velbus i can link an override of the colors on those pannels and link them to a button push, but I canā€™t trigger the change from within HA.

Kind regards