mtgeekman / Home_Assistant_NeoSmartBlinds

Adds NeoSmart Blinds support to Home-Assistant.
45 stars 14 forks source link
hassio home-assistant home-assistant-component home-assistant-cover

Custom Component for NeoSmartBlinds Integration on Home Assistant

The NeoSmartBlinds platform allows you to control a NeoSmartBlind / group of NeoSmartBlinds via a NeoSmartBlinds controller.

There is currently support for the following device types within Home Assistant:

Installation

To begin with it is recommended you ensure your NeoSmartBlinds controller has a static IP addresses, you may need to configure this via your router's DHCP options.

  1. Download the latest release from: https://github.com/mtgeekman/Home_Assistant_NeoSmartBlinds/releases
  2. Extract the file
  3. Copy the whole neosmartblinds folder from custom_components/ to your own config/custom_components/ directory
  4. Go to Config -> Server Controls -> Under "Server Management" click restart
  5. Go to configuration example for how to setup your config.

Alternatively, you can install through HACS by adding this repository.

Cover Configuration

Example of basic configuration.yaml

cover:
  - platform: neosmartblinds
    name: Blind One
    host: 192.168.0.13
    hub_id: 000000000000000000000000
    protocol: http
    port: 8838
    blind_code: 021.230-04
    close_time: 30
    rail: 1
    percent_support: 1
    motor_code: bf
    start_position: 50
    parent_group: 021.230-15

Configuration variables

cover:

platform (String)(Required)
Must be set to neosmartblinds

host (String)(Required)
The IP of the NeoSmartBlinds controller, e.g., 192.168.0.10.

Getting the IP:

Getting the IP

hub_id (String)(Required)
The 24 character device ID of the Smart Blinds Hub, found in the APP

App Main Screen App Menu App Controllers

protocol (String)(Required)
The protocol to use for sending commands. (http, tcp)

port (String)(Required)
Port use for the connection. for TCP use 8839, for HTTP use 8838

name (String)(Required)
The name you would like to give to the NeoSmartBlind.

blind_code (String)(Required)
The blind code. - This is available from the NeoSmartBlind app
Getting the codes:

Blind Code

“​ID1.ID2-CHANNEL”
“ID1” : controller byte 1, from integer “000” to “255”
“.” : address separator
“ID2” : controller byte 2, from integer “000” to “255”
“-” : channel separator
“CHANNEL” : channel, individual channel from integer “01” to “14”, use channel “15” for a group

close_time (String)(Required)
Time taken in seconds to close this blind (use a stop watch to measure)

rail (string)
Rail Number used to determine top or bottom rail on top down/bottom up blinds.
1 = Top Rail
2 = Bottom Rail

percent_support (int)
Determines how requests to position by percentage are handled. As the blinds do not report back their position, this integration can only estimate the position based on the close_time option
0 = No support (Default)
1 = Percentage positioning supported directly by blind, integration only reports position based on estimate
2 = Percentage positioning emulated completely by this integration.

Notes:

motor_code (string)
Defines the motor code listed in the neo smart blinds app on your phone. Listed below the 'Blind Code' on the control page for the blind
This is required for some smart hubs to work (model C-BR300)

start_position (int)
Optional starting position for the blind when HA starts up. If not specified, the integration will restore the position saved from the last time HA was shutdown. This value is ignored if percent_support is zero.

parent_group (String)
See blind_code for instructions on how to find the room code. This parameter is optional.
If the same group is specified for multiple blinds, the integration will pause briefly (250ms) before issuing a command to see whether to send to the individual blind or to the parent group. As the hub is limited in the number of requests it can handle, this can help in cases where multiple blinds are controlled in home assistant or via Homekit / Alexa etc.



Entity Options in UI:

Entity Options

Entity Control allows for fine adjustment and extra controls:

Entity Control

Lovelace ui panel provides basic control

Lovelace UI panel

Supported features

Open Up

Close Down

Tilt-Up Micro-Up

Tilt-Down Micro-Down

Set-Position & Favourite Position - please note this is calculated using the close_time

Setting the position if "percent_support" is 0:

==50 will set your blind to its stored first favourite position

==51 will set your blind to its stored second favourite position

Setting the position if "percent_support" is 1:

Setting position Use the position slider to select how, blind will move to that position

Setting favorite postion 1 Use the tilt slider to select a value less than 50

Setting favorite postion 2 Use the tilt slider to select a value greater than 50

Setting the position if "percent_support" is 2:

Setting position Use the position slider to select how, integration will move blind to position and then send stop command

Setting favorite postion 1 Use the tilt slider to select a value less than 50

Setting favorite postion 2 Use the tilt slider to select a value greater than 50