{"id":15882600,"url":"https://github.com/pzim-devdata/tahoma","last_synced_at":"2025-07-30T21:34:50.019Z","repository":{"id":74493328,"uuid":"605109818","full_name":"pzim-devdata/tahoma","owner":"pzim-devdata","description":"[UP TO DATE]  Command Line Interface to Control ALL Somfy's Devices. 100% functional with ChatGPT","archived":false,"fork":false,"pushed_at":"2024-12-07T16:28:53.000Z","size":2133,"stargazers_count":5,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-08T21:58:59.196Z","etag":null,"topics":["api","automation","chatgpt","cli","command-line","connexoon","home","io","openai","overkiz","rts","somfy","somfy-api","somfy-motorized-shades","tahoma","tahoma-box","tahoma-chatgpt","tahoma-gpt","tahoma-python","tahomi-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pzim-devdata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-02-22T13:18:59.000Z","updated_at":"2024-12-07T16:28:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"ee2f7a34-fb1e-4980-a69a-448cbe99f47e","html_url":"https://github.com/pzim-devdata/tahoma","commit_stats":{"total_commits":43,"total_committers":1,"mean_commits":43.0,"dds":0.0,"last_synced_commit":"05eb56ecfec496b9132942a568f2b3af713c1f8c"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/pzim-devdata/tahoma","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzim-devdata%2Ftahoma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzim-devdata%2Ftahoma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzim-devdata%2Ftahoma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzim-devdata%2Ftahoma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pzim-devdata","download_url":"https://codeload.github.com/pzim-devdata/tahoma/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzim-devdata%2Ftahoma/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267945318,"owners_count":24170216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","automation","chatgpt","cli","command-line","connexoon","home","io","openai","overkiz","rts","somfy","somfy-api","somfy-motorized-shades","tahoma","tahoma-box","tahoma-chatgpt","tahoma-gpt","tahoma-python","tahomi-api"],"created_at":"2024-10-06T04:05:28.421Z","updated_at":"2025-07-30T21:34:49.997Z","avatar_url":"https://github.com/pzim-devdata.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tahoma\n[UP TO DATE] Tahoma is a simple API for controlling Somfy Tahoma devices using Python 3, thanks to the pyoverkiz API. With just a three-word input, you can control your devices. \nIt was initially created for Tahoma but also works with Somfy Connectivity Kit, Connexoon, and Cozytouch. You can also use ChatGPT to control it and for help.\n\n\n![Somfy](https://www.voletsdusud.com/wp-content/uploads/2018/04/logo-tahoma.jpg)\n\n\n\n[![GitHub license](https://img.shields.io/github/license/pzim-devdata/tahoma?style=plastic)](https://github.com/pzim-devdata/tahoma/blob/main/LICENSE)    ![](https://img.shields.io/badge/Works%20with-Python%203-red?style=plastic)    ![GitHub issues](https://img.shields.io/github/issues/pzim-devdata/tahoma?style=plastic)    [](https://github.com/pzim-devdata/tahoma/issues)    ![GitHub repo size](https://img.shields.io/github/repo-size/pzim-devdata/tahoma?style=plastic)    [![Visits Badge](https://badges.strrl.dev/visits/pzim-devdata/tahoma)](https://badges.strrl.dev)    ![GitHub release (latest by date)](https://img.shields.io/github/v/release/pzim-devdata/tahoma?style=plastic)    [![GitHub commits](https://img.shields.io/github/commits-since/pzim-devdata/tahoma/v2.2.0.svg?style=plastic)](https://GitHub.com/pzim-devata/tahoma/commit/)    ![GitHub All Releases](https://img.shields.io/github/downloads/pzim-devdata/tahoma/total?style=plastic)\n\u003c!---\nTHIS TAG DOESN'T WORK, DON'T TRUST IT : ![GitHub All Releases](https://img.shields.io/github/downloads/pzim-devdata/tahoma/total?style=plastic) \n--\u003e\n[![Downloads](https://static.pepy.tech/personalized-badge/tahoma?period=total\u0026units=international_system\u0026left_color=grey\u0026right_color=blue\u0026left_text=PyPI%20downloads)](https://pepy.tech/project/tahoma) \n\n\u003ca href=\"https://github.com/pzim-devdata/tahoma\" title=\"Click here to access the English version of the site\"\u003e\u003cimg src=\"https://cdn.countryflags.com/thumbs/united-kingdom/flag-round-250.png\" width=\"30\" height=\"30\" alt=\"British flag\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/pzim-devdata/tahoma/blob/main/README_FR.md\" title=\"Cliquez ici pour accéder à la version française du site\"\u003e\u003cimg src=\"https://cdn.countryflags.com/thumbs/france/flag-round-250.png\" width=\"30\" height=\"30\" alt=\"Drapeau français\"\u003e\u003c/a\u003e\n\n# Features\n\n![GifTahoma.gif](GifTahoma.gif)\n\n\n- Control Somfy Tahoma devices with a simple API written in Python 3\n- Create scripts or shortcuts to controle your house from a domestic server or your computer\n- With this API, you can integrate Somfy's products with other Matter-compatible devices\n- Works with Somfy Connectivity Kit, Connexoon, Cozytouch, and more\n- Support various Somfy's devices: alarm, shutter, plug, heater, sensors, scenes, and more\n- Compatible with Windows and Linux operating systems\n- 100% functional with ChatGPT\n\n\n## If you want to Test and Install tahoma with tahoma-gpt in a virtual environnement go [there](https://github.com/pzim-devdata/tahoma-gpt)\n\n![Picture tahoma-gpt](https://github.com/pzim-devdata/tahoma/blob/main/picture_tahoma-gpt.png)\n\n##############################################################################\n\n# Install tahoma from this Git\n**Note:** This is a portable version for direct downloading. It's not an installed package. To run the app, simply execute `python3 tahoma.py` in your imported folder. If you want to install the package using PyPI (pip version), go to : [How to install tahoma with pip ?](https://github.com/pzim-devdata/tahoma#install-the-main-package-) or directly visit the [PyPI Project Website](https://pypi.org/project/tahoma/#description) for an easier installation process.\n\nIf you like this program, please star it on GitHub to improve Tahoma's visibility so that others can also benefit from it. :star:\n\nThere is a ChatGPT functionality. See this [documentation](https://github.com/pzim-devdata/tahoma#add-chatgpt-functionalities-)\n\n# Quick Start\n\n#### 1. Download\nDownload the zip file and extract it to a choosen folder:\n\n[Download :inbox_tray:](https://github.com/pzim-devdata/tahoma/releases/latest/download/tahoma.zip)\n\n#### 2. Install dependencies\nRun the following commands in your imported folder:\n\n- `python3 -m pip install -r requirements.txt` in order to install dependencies\nand\n- `python3 tahoma.py`  to ensure that Tahoma starts.\n\n#### 3. Configure\nThere are just two commands to execute once to configure Tahoma:\n\nAll the details are explained in `python3 tahoma.py --help` and `python3 tahoma.py --info`.\n\n\n1. Specify your Somfy-connect login information and choose the Somfy server: :\n\n- `python3 tahoma.py --configure` or `python3 tahoma.py -c`\n\n2.  Retrieve the list of your personal Somfy devices: :\n\n- `python3 tahoma.py --getlist` or `python3 tahoma.py -g`\n\n#### 4. Retrieve your PERSONAL commands \n**USAGE:** `python3 tahoma.py [ACTION] [CATEGORY] [NAME]`\n\nFor example : `tahoma open shutter kitchen` or `tahoma ouvrir volet cuisine`\n\nTo retrieve your personal commands, you can use the following options:\n\n1. List all possible [ACTIONS] for each [CATEGORIES]: \n\n- `python3 tahoma.py --list-actions` or `tahoma -la`\nor\n- `python3 tahoma.py --list-actions-french` or `tahoma -laf`\n \n2. List available [CATEGORIES]:\n\n- `python3 tahoma.py --list-categories` or `tahoma -lc`\nor \n- `python3 tahoma.py --list-categories-french` or `tahoma -lcf`\n\n3. Retrieve the [NAMES] you have assigned to your personal devices in the Somfy's App:\n\n- `python3 tahoma.py --list-names` or `tahoma -ln`\nor\n- `python3 tahoma.py --list-names-french` or `tahoma -lnf`\n\n\nNow you are ready to use tahoma\n\nFor more info  refer to `python3 tahoma.py -h` or `python3 tahoma.py -i` \n\n\n\n# Use Cases: \n**Usage:** `python3 tahoma.py [ACTION] [CATEGORY] [NAME]`\n\nFor example : `tahoma open shutter kitchen` or `tahoma ouvrir volet cuisine`\n\n\n- You can specify the closing level for shutters or sunscreens with a numeric value as ACTION.\n\nFor instance, to close a shutter or a sunsceen to 25% : \n\n`tahoma 25 shutter kitchen`\n`tahoma 25 sunscreen kitchen`.\n\nPlease note that this feature only works with IO protocols and not with RTS.\n\n- You can use either a unique word : `bath` or the full name of a device in square brackets `[\"\"]` : `[\"bath 1st floor\"]`) as the NAME parameter.\n\nFor example :\n\n`tahoma open shutter garden`\n\n`tahoma arm alarm [\"garden door\"]`\n\n- Multiple commands can be executed in the same process without restarting Tahoma. \n\nFor example : \n\n`tahoma arm alarm garden open shutter [\"room 6\"] confort heater dining off plug office 25 sunscreen kitchen launch scene morning`\n\n- There is also a wait functionality with `wait for \u003cSECOND(S)\u003e` or `sleep for \u003cSECOND(S)\u003e` or `attendre pendant \u003cSECOND(S)\u003e` :\n\nFor example : `tahoma open shutter kitchen wait for 20 close shutter kitchen`\n\n- You can also wait for a specific time with `wait for \u003cHOUR:MINUTE\u003e` (24-hour format)\n\nFor example : `tahoma wait for 13:32 open shutten kitchen`\n\n- Since it is impossible to stop an RTS device, there is the possibility to cancel the immediate preceding command (without affecting a 'wait for \u003cSECONDS\u003e' command). To do this you can use the command 'cancel last action' or 'annuler precedente commande' just after a command that opens or closes an RTS device.\n\nFor example :\n\n`tahoma open shutter kitchen wait for 2 cancel last action` : It will stop the kitchen shutter after 2 seconds\n\n`tahoma open shutter kitchen open shutter room6 cancel last action` : It will only stop the room6 shutter\n\n- There is a `-n` or `--notification` argument for showing a desktop notification (Linux only) to override the default configuration in `tahoma -c`. This is useful if you want to create a shortcut with an execution notification even if in `tahoma -c` notifications are unset. For example : `tahoma open shutter kitchen -n`\n\n# Examples :\nHere are some example commands :\n\n- tahoma open shutter kitchen\n- tahoma 25 shutter Velux3  (Closes the shutter to 25%)\n- tahoma get sensor [\"Luminance sensor garden\"] (You can use the full name of the device with `[\"\u003cNAME\u003e\"]` )\n- tahoma get sensor door (Provides information about all sensors named \"door\" in the house)\n- tahoma get sensor [\"Front door\"] \n- tahoma on plug office\n- tahoma open shutter [\"room 6\"]\n- tahoma toggle plug kitchen (For IO devices only)\n- tahoma arm alarm garden\n- tahoma on light [\"kitchen light\"]\n- tahoma off spotalarm spot\n- tahoma comfort heater dining\n- tahoma get sensor ['heater dining room']\n- tahoma launch scene morning\n- tahoma wait for 13:32 open shutten kitchen\n- tahoma arm alarm garden wait for 10 open shutter room6 sleep for 7 comfort heater dining off plug office 25 sunscreen kitchen launch scene morning get sensor ['heater dining room']\n- tahoma comfort heater dining wait for 3 get sensor [\"Heater dining room\"]\n- tahoma open shutter kitchen open shutter room6 wait for 2 cancel last action` (It will stop the room6 shutter after 2 seconds)\n- tahoma open shutter kitchen --local (It will override the default API set in `tahoma -c` with the `--local` argument for using the local API (For Tahoma hubs only))\n- tahoma open shutter kitchen --username mail@address.com --password password --remote (You can provide the username and password with arguments to override the logins stored. This is useful if you have more than one Tahoma box)\n- tahoma my shutter kitchen --token 2343d8c7f23dd5f328de --pin 1234-1234-1234 --local (It will use the local API (for Tahoma hubs only) with the pin and token arguments. This is useful if you have more than one Tahoma box)\n- tahoma manual heater kitchen wait for 2 19 heater kitchen --server atlantic_cozytouch --username cozytouch_username --password cozytouch_password --remote (For some atlantic_cozytouch heaters, it is possible to use other ACTIONS than comfort, eco, off...with auto, manual, standby, prog, NUMBER. As a Cozytouch hub is not compatible with the local API, you can add the `--remote` argument. In this example tahoma will change the heater's mode to manual and will give the ability to modify the temperature to 19°C using the cloud API)\n- tahoma open shutter kitchen -n (It will show a desktop notification if the process is successful even if notifications are unset)\n\nSpecial note:\n\nIf you want to use the local API for Tahoma hubs only, you will need to activate developer mode (www.somfy.com \u003e My Account \u003e Activate developer mode).\n\nThe local API allows controlling some devices without a cloud connection for Tahoma hubs only.\n\nlocal API is only compatible with some devices (shutters, sunscreens, heaters).\n\nYou can configure the local API with the `tahoma -c` command or override the default API set in `tahoma -c` with the `--local` or `--remote` argument.\n\n\n\n# Create a PATH to tahoma :\n\nTo be able to run tahoma directly in the terminal, without going to the source package, you should add the tahoma's folder to the PATH :\n\nBy doing this, instead of taping `python3 '/place/of/the/folder/tahoma/tahoma.py open shutter kitchen'`,\n\n you will be able to directly tape in the terminal : `tahoma open shutter kitchen`.\n\n\nThen execute tahoma just like this : `tahoma arm alarm garden open shutter kitchen close shutter room6 confort heater dining off plug office 25 shutter kitchen` and that's all !\n\n\n## On Linux :\n\nOn Linux, it can be permanently done by executing : `sudo gedit ~/.bashrc` and adding, at the end of the document, this line :\n\n`export PATH=$PATH:/place/of/the/folder/tahoma`\n\n\nIf you want to temporarily test it before, you can just execute this command in the terminal : \n\n`export PATH=$PATH:/place/of/the/folder/tahoma` \n\nIt will be restored on the next reboot.\n\nYou should also need to rename `tahoma.py` to `tahoma`\n\nThen execute tahoma just like this : `tahoma arm alarm garden open shutter kitchen close shutter room6 confort heater dining off plug office 25 shutter kitchen` and that's all !\n\n\n## On Windows :\n\n[How to create a PATH on Windows](https://www.computerhope.com/issues/ch000549.htm)\n\nThanks to the ``tahoma.exe`` program, you will be able to execute tahoma just by entering this command : ``tahoma`` instead of ``python3 tahoma.py`` on Windows\n\nThen execute tahoma just like this : `tahoma arm alarm garden open shutter kitchen close shutter room6 confort heater dining off plug office 25 shutter kitchen` and that's all !\n\n\n# Add ChatGPT functionalities : \n\n- The best way to install tahoma-gpt with tahoma is to use [Pypi](https://pypi.org/project/tahoma-gpt/)\n\n- If you want to use tahoma-gpt in a virtual environement follow this [link](https://github.com/pzim-devdata/tahoma-gpt) or use [pipx](https://pypi.org/project/tahoma-gpt/)\n\n- If you want to use tahoma with chatGPT from this repo, follow this steps :\n\n\n1. install tahoma by following the instructions provided in the first steps\n\n2. Downbload `tahoma-gpt.py` and `requirements_tahoma-gpt.txt`:\n\n3. Install requirements:\n\n`python3 -m pip install -r requirements_tahoma-gpt.txt` in order to install dependencies\n\n4. Open `tahoma-gpt.py` with a text editor and add your ChatGPT API key and the model you want to use inside the document\n\n5. Run the program in a terminal or command prompt by executing the following command: :\n\n`python3 tahoma-gpt.py`\n\n\nMake sure to carefully follow these steps to successfully integrate tahoma with ChatGPT.\n\n\n\n\n\n-------------------------------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------------------------------\n\nIF YOU WANT TO INSTALL THE PACKAGE USE PyPi (pip version) :\n\n# Install the main package :\n[PyPi Project Website](https://pypi.org/project/tahoma/#description)\n\nInstall tahoma :\n\n\n```python\npython3 -m pip install -U tahoma\n```\n\n\n# Configure :\n\n\nIt's very easy to configure, there are just two commands to execute once for all the first time\n\nAll is explained in tahoma --help and tahoma --info\n\n\n1. Specify your Somfy-connect login's info and choose the Somfy server (`sudo` command is required) :\n\n\n- `tahoma --configure` or `tahoma -c`\n\n\n2. Configure the API and get the list of your personal Somfy's devices (`sudo` command is also required) :\n\n\n- `tahoma --getlist` or `tahoma -g`\n\n\n3. And now, you are ready to use tahoma :\n\n\n# Usage : `tahoma [ACTION] [CATEGORY] [NAME]`\n\n\nFor instance : `tahoma open shutter kitchen` or `tahoma ouvrir volet cuisine`\n\nYou can also close a shutter or a sunscreen to a specific level. For example, to close to 25%, you can use the commands : `tahoma 25 shutter kitchen` or `tahoma 25 sunscreen kitchen`. Please note that this feature only works with IO protocols and not with RTS.\n\nYou can also run many commands during the same process without restarting tahoma ;\n\nFor instance : `tahoma arm alarm garden open shutter kitchen close shutter room6 confort heater dining off plug office 25 sunscreen kitchen`\n\n\n\n# But first you need to retrieve your PERSONALS commands :\n\n\n## Get a list of all possibles [ACTIONS] for each [CATEGORIES] : \n\n\n- `tahoma --list-actions` or `tahoma -la`\n\nor\n\n- `tahoma --list-actions-french` or `tahoma -laf`\n \n \n \n## Get a list of availables [CATEGORIES] :\n\n\n- `tahoma --list-categories` or `tahoma -lc`\n\nor \n\n- `tahoma --list-categories-french` or `tahoma -lcf`\n\n\n\n## Get the NAMES you have given to your personal devices in the Somfy's App :\n\n\n- `tahoma --list-names` or `tahoma -ln`\n\nor\n\n- `tahoma --list-names-french` or `tahoma -lnf`\n\n\n\nEnjoy !  For more info `tahoma -h` or `tahoma -i` \n\n\n\n# Create a PATH to tahoma :\n\n\nOn Linux, if you have installed tahoma without the `sudo` command you will need to create a PATH for starting tahoma with the `tahoma` command.\n\nIndead, to be able to run tahoma directly in the terminal, without going to the source package, you should add the tahoma's folder to the PATH :\n\nIt can be permanently done by executing : `sudo gedit ~/.bashrc` and adding, at the end of the document, this line :\n\n`export PATH=$PATH:/place/of/the/folder/tahoma`\n\n\n\nIf you want to temporarily test it before, you can just execute this command in the terminal : \n\n`export PATH=$PATH:/place/of/the/folder/tahoma` \n\nIt will be restored on the next reboot.\n\n\n\nBy doing this, instead of taping `python3 '/place/of/the/folder/tahoma/tahoma.py open shutter kitchen'`,\n\n you will be able to directly tape in the terminal : `tahoma open shutter kitchen`.\n\n\nThen execute tahoma just like this : `tahoma arm alarm garden open shutter kitchen close shutter room6 confort heater dining off plug office` and that's all !\n\n\n\n\n-------------------------------------------------------------------------------------\n\nFor :\n\nSomfy Connectivity Kit\n\nSomfy Connexoon IO\n\nSomfy Connexoon RTS\n\nSomfy TaHoma\n\nSomfy TaHoma Beecon\n\nSomfy TaHoma Switch\n\nThermor Cozytouch\n\nAnd more...\n\n\nSupported devices :\nAlarm\nShutter\nPlug\nHeater\nSensors\nScenes\nand more if you ask me on github : \n\n[@pzim-devdata GitHub Pages](https://github.com/pzim-devdata/tahoma/issues)\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n    \u003cimg width=\"33%\" src=\"https://avatars.githubusercontent.com/u/52496172?v=4\"\u003e \n\u003c/p\u003e\n\n------------------------------------------------------------------\n\n- [Licence](https://github.com/pzim-devdata/DATA-developer/raw/master/LICENSE)\nMIT License Copyright (c) 2023 pzim-devdata\n\n------------------------------------------------------------------\n\nCreated by @pzim-devdata - feel free to contact me!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpzim-devdata%2Ftahoma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpzim-devdata%2Ftahoma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpzim-devdata%2Ftahoma/lists"}