Giter Site home page Giter Site logo

home_assistant_neosmartblinds's Introduction

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:

  • Cover

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

  • Room Code: will control all blinds in that room
  • Blind Code: will controll only that blind

“​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:

  • If the blind is controlled outside of HA (e.g. in native app, using remote), this integration has no mechanism to discover the position from the hub so HA will get out of sync with the blind.
  • For the same reason, the integration will initialise on startup according to start_position. This is a guess. Issuing an open or close command to the blind (through this integration) will allow the positions to sync. Depending on setup, an automation that listens for HA to start could be used to either open or close the blinds to get them into sync.
  • If exposing the blind via HomeKit, either option 1 or 2 should be selected to keep the actual position and Home in sync.

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

home_assistant_neosmartblinds's People

Contributors

mtgeekman avatar gee-jay-bee avatar 4n0nd3v3l0p3r avatar jturnbull avatar clara-j avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.