Git Product home page Git Product logo

tahoma_extended's Introduction

WARNING This component isn't maintained anymore. A new component is under development to improve the tahoma integration: https://github.com/iMicknl/ha-tahoma

tahoma_extended

hacs_badge

Extend the home assistant tahoma integration with new features not yet published to HA.

Add the following to your configuration.yaml:

tahoma_extended:
  username: 'tahoma login'
  password: 'tahoma password'

Currently this extension adds support for the following elements:

  • Somfy's smartlock through the Tahoma box (opendoors:OpenDoorsSmartLockComponent)
  • Atlantic IO pilot wire interface (Somfy ref: 1822452, io:AtlanticElectricalHeaterIOComponent)
  • Somfy's smart thermostat and related sensors (somfythermostat:SomfyThermostatThermostatComponent, somfythermostat:SomfyThermostatTemperatureSensor, somfythermostat:SomfyThermostatHumiditySensor).
  • Somfy's RTS light switch (rts:LightRTSComponent).

Climate integration is a bit of hack. To use it, you need a controller such as the Atlantic IO controller or the Smart Thermostat, and a temperature sensor. The temperature sensor can be any sensor added to HA. Add the following to your configuration.yaml:

climate:
  platform: tahoma_extended
  sensors:
  - name: Name of the climate device in the Tahoma Box
    entity_id: sensor.associated_temperature_sensor

The name of the device MUST be the same as in the Tahoma Box. For instance, if your Atlantic IO Controller is called "Radiateur Parents" in the Tahoma Box,

Radiateur_Parents

and your temperature sensor is sensor.netatmo_parents_temperature, then the corresponding configuration section is:

climate:
  platform: tahoma_extended
  sensors:
  - name: "Radiateur Parents"
    entity_id: sensor.netatmo_parents_temperature

Contributing

To contribute, run the following python script and PM me on the Home Assistant Community forum with the output written in devices.txt and details on the device you want to be added.

import sys
try:
    import pyhoma
except ModuleNotFoundError:
    import subprocess
    subprocess.check_call([sys.executable, "-m", "pip", "install", "pyhoma"])
    import pyhoma

print("Input login: ")
userName=input()
print("Input password: ")
userPassword=input()

orig_stdout = sys.stdout
f = open('devices.txt', 'w')
sys.stdout = f

import pyhoma
api=pyhoma.PyHoma(userName=userName, userPassword=userPassword)

api.login()
api.get_setup()

devices = api.get_devices()

from pprint import pprint
for k,v in devices.items():
    print("****************************************")
    print("Label: " + v.label)
    print("controlableName: " + v.type)
    print("uiClass: " + v.uiclass)
    print("widget: " + v.widget)
    print("=== States ===")
    states = v._Device__states_def
    for s in states:
        pprint(s, indent=4, width=20)
    print(" ")
    print("=== Commands ===")
    commands = v._Device__command_def
    for c in commands:
        pprint(c, indent=4, width=20)
    print(" ")

sys.stdout = orig_stdout
f.close()

tahoma_extended's People

Contributors

cedricgatay avatar vlebourl avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tahoma_extended's Issues

Extend the Tahoma component

      {
         "creationTime":1541775044000,
         "lastUpdateTime":1541775044000,
         "label":"Zonnetent",
         "deviceURL":"rts://",
         "shortcut":false,
         "controllableName":"rts:HorizontalAwningRTSComponent",
         "definition":{
            "commands":[
               {
                  "commandName":"close",
                  "nparams":0
               },
               {
                  "commandName":"deploy",
                  "nparams":0
               },
               {
                  "commandName":"down",
                  "nparams":0
               },
               {
                  "commandName":"identify",
                  "nparams":0
               },
               {
                  "commandName":"my",
                  "nparams":0
               },
               {
                  "commandName":"open",
                  "nparams":0
               },
               {
                  "commandName":"rest",
                  "nparams":0
               },
               {
                  "commandName":"stop",
                  "nparams":0
               },
               {
                  "commandName":"test",
                  "nparams":0
               },
               {
                  "commandName":"undeploy",
                  "nparams":0
               },
               {
                  "commandName":"up",
                  "nparams":0
               }
            ],
            "states":[

            ],
            "dataProperties":[
               {
                  "value":"0",
                  "qualifiedName":"core:identifyInterval"
               }
            ],
            "widgetName":"UpDownHorizontalAwning",
            "uiClass":"Awning",
            "qualifiedName":"rts:HorizontalAwningRTSComponent",
            "type":"ACTUATOR"
         },
         "attributes":[
            {
               "name":"rts:diy",
               "type":6,
               "value":true
            }
         ],
         "available":true,
         "enabled":true,
         "placeOID":"",
         "widget":"UpDownHorizontalAwning",
         "type":1,
         "oid":"",
         "uiClass":"Awning"
      },
      {
         "creationTime":1541775139000,
         "lastUpdateTime":1541775139000,
         "label":"Living",
         "deviceURL":"rts://",
         "shortcut":false,
         "controllableName":"rts:ExteriorBlindRTSComponent",
         "definition":{
            "commands":[
               {
                  "commandName":"close",
                  "nparams":0
               },
               {
                  "commandName":"down",
                  "nparams":0
               },
               {
                  "commandName":"identify",
                  "nparams":0
               },
               {
                  "commandName":"my",
                  "nparams":0
               },
               {
                  "commandName":"open",
                  "nparams":0
               },
               {
                  "commandName":"rest",
                  "nparams":0
               },
               {
                  "commandName":"stop",
                  "nparams":0
               },
               {
                  "commandName":"test",
                  "nparams":0
               },
               {
                  "commandName":"up",
                  "nparams":0
               }
            ],
            "states":[

            ],
            "dataProperties":[
               {
                  "value":"0",
                  "qualifiedName":"core:identifyInterval"
               }
            ],
            "widgetName":"UpDownExteriorScreen",
            "uiClass":"ExteriorScreen",
            "qualifiedName":"rts:ExteriorBlindRTSComponent",
            "type":"ACTUATOR"
         },
         "attributes":[
            {
               "name":"rts:diy",
               "type":6,
               "value":true
            }
         ],
         "available":true,
         "enabled":true,
         "placeOID":"",
         "widget":"UpDownExteriorScreen",
         "type":1,
         "oid":"",
         "uiClass":"ExteriorScreen"
      },

Help for atlantic heaters and sliding gate

Hello, can you please help the beginner that I am for enriching your component for atlantic heaters and sliding gate connected to my tahoma/hassio
That would be great. thanks Vincent.

2020-02-21 23:59:55 WARNING (SyncWorker_19) [homeassistant.components.tahoma] Unsupported type io:AtlanticElectricalHeaterWithAdjustableTemperatureSetpointIOComponent for Tahoma device Milo
2020-02-21 23:59:55 WARNING (SyncWorker_19) [homeassistant.components.tahoma] Unsupported type io:TemperatureInCelciusIOSystemDeviceSensor for Tahoma device Milo-1
2020-02-21 23:59:55 WARNING (SyncWorker_19) [homeassistant.components.tahoma] Unsupported type io:ContactIOSystemDeviceSensor for Tahoma device Milo-2
2020-02-21 23:59:55 WARNING (SyncWorker_19) [homeassistant.components.tahoma] Unsupported type io:OccupancyIOSystemDeviceSensor for Tahoma device Milo-3
2020-02-21 23:59:55 WARNING (SyncWorker_19) [homeassistant.components.tahoma] Unsupported type io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor for Tahoma device Milo-4
2020-02-21 23:59:55 WARNING (SyncWorker_19) [homeassistant.components.tahoma] Unsupported type rts:SlidingGateOpenerRTSComponent for Tahoma device Portail

Add support for io:SimpleBioclimaticPergolaIOComponent

SimpleBioclimaticPergolaIOComponent

      "definition": {
        "commands": [
          { "commandName": "closeSlats", "nparams": 0 },
          { "commandName": "delayedStopIdentify", "nparams": 1 },
          { "commandName": "getName", "nparams": 0 },
          { "commandName": "identify", "nparams": 0 },
          { "commandName": "openSlats", "nparams": 0 },
          { "commandName": "refreshMemorized1Orientation", "nparams": 0 },
          { "commandName": "setMemorized1Orientation", "nparams": 1 },
          { "commandName": "setName", "nparams": 1 },
          { "commandName": "setSecuredOrientation", "nparams": 1 },
          { "commandName": "setOrientation", "nparams": 1 },
          { "commandName": "startIdentify", "nparams": 0 },
          { "commandName": "stop", "nparams": 0 },
          { "commandName": "stopIdentify", "nparams": 0 },
          { "commandName": "wink", "nparams": 1 }
        ],
        "states": [
          {
            "type": "ContinuousState",
            "qualifiedName": "core:Memorized1OrientationState"
          },
          { "type": "DataState", "qualifiedName": "core:NameState" },
          {
            "type": "ContinuousState",
            "qualifiedName": "core:PriorityLockTimerState"
          },
          { "type": "ContinuousState", "qualifiedName": "core:RSSILevelState" },
          {
            "type": "ContinuousState",
            "qualifiedName": "core:SecuredOrientationState"
          },
          {
            "values": ["closed", "open"],
            "type": "DiscreteState",
            "qualifiedName": "core:SlatsOpenClosedState"
          },
          {
            "type": "ContinuousState",
            "qualifiedName": "core:SlatsOrientationState"
          },
          {
            "values": ["available", "unavailable"],
            "type": "DiscreteState",
            "qualifiedName": "core:StatusState"
          },
          {
            "values": [
              "comfortLevel1",
              "comfortLevel2",
              "comfortLevel3",
              "comfortLevel4",
              "environmentProtection",
              "humanProtection",
              "userLevel1",
              "userLevel2"
            ],
            "type": "DiscreteState",
            "qualifiedName": "io:PriorityLockLevelState"
          },
          {
            "values": [
              "LSC",
              "SAAC",
              "SFC",
              "UPS",
              "externalGateway",
              "localUser",
              "myself",
              "rain",
              "security",
              "temperature",
              "timer",
              "user",
              "wind"
            ],
            "type": "DiscreteState",
            "qualifiedName": "io:PriorityLockOriginatorState"
          }
        ],

[tracking item for the feature I am working on at the moment]. I have currently built those features in the original Tahoma component, but it doesn't look like they will be merged into core.. Will do some more testing and add them to this repository.

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.