{"id":15286919,"url":"https://github.com/sergeymaysak/wirelesstagpy","last_synced_at":"2026-03-16T12:33:56.380Z","repository":{"id":51119907,"uuid":"124710862","full_name":"sergeymaysak/wirelesstagpy","owner":"sergeymaysak","description":"A thin python wrapper library for Wireless Sensor Tags (http://wirelesstag.net) platform.","archived":false,"fork":false,"pushed_at":"2022-08-30T20:20:49.000Z","size":134,"stargazers_count":7,"open_issues_count":2,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T23:37:58.323Z","etag":null,"topics":["home-assistant","home-automation","python","python-wrapper-library","wireless-sensor-tags","wirelesstag"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sergeymaysak.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-11T00:44:57.000Z","updated_at":"2023-04-20T16:15:30.000Z","dependencies_parsed_at":"2022-08-28T15:30:21.849Z","dependency_job_id":null,"html_url":"https://github.com/sergeymaysak/wirelesstagpy","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeymaysak%2Fwirelesstagpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeymaysak%2Fwirelesstagpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeymaysak%2Fwirelesstagpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeymaysak%2Fwirelesstagpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sergeymaysak","download_url":"https://codeload.github.com/sergeymaysak/wirelesstagpy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248657793,"owners_count":21140842,"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","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":["home-assistant","home-automation","python","python-wrapper-library","wireless-sensor-tags","wirelesstag"],"created_at":"2024-09-30T15:19:06.340Z","updated_at":"2025-10-24T23:01:41.882Z","avatar_url":"https://github.com/sergeymaysak.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WirelessSensorTags  [![Build Status](https://travis-ci.org/sergeymaysak/wirelesstagpy.svg?branch=master)](https://travis-ci.com/sergeymaysak/wirelesstagpy) [![Coverage Status](https://coveralls.io/repos/github/sergeymaysak/wirelesstagpy/badge.svg?branch=master)](https://coveralls.io/github/sergeymaysak/wirelesstagpy?branch=master) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/wirelesstagpy.svg) ![PyPi - Version](https://img.shields.io/pypi/v/wirelesstagpy.svg)\n\nA simple python wrapper library for Wireless Sensor Tag platform (`http://wirelesstag.net`).\n\n[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine)\n\nSupports getting data for registered by end user sensor tags.\nwirelesstag.net account credentials are needed to use this lib.\nEnabling tags sharing is not required.\n\nVerified with:\n\n- 13-bit motion/temperature/humidity tags (type 13)\n- Water/Moisture tags (type 32)\n- ALS Pro tag (type 26)\n- PIR Kumo sensor (type 72)\n\n## Installation\n\n```shell\npip3 install wirelesstagpy\n```\n\n## Development notes\n\nSee [apidoc.html](http://wirelesstag.net/apidoc.html) for API details.\n\n## Usage\n\n### Fetch all tags\n\n```python\n\nimport wirelesstagpy\n\napi = wirelesstagpy.WirelessTags(username='login_email', password='your_password')\ntags = api.load_tags()\nfor (uuid, tag) in tags.items():\n    print('Loaded tag: {}, temp: {}, humidity: {} probe taken: {}'.format(\n                tag.name, tag.temperature,\n                tag.humidity, tag.time_since_last_update))\n\n```\n\n## Install custom push notifications\n\nWireless Sensor Tags platforms allows to setup custom url calls for set of specific events.\n\n```python\n\n\nimport wirelesstagpy\n\napi = wirelesstagpy.WirelessTags(username='login_email', password='your_password')\nnotifications = [\n    NotificationConfig('update', {\n        'url': 'http://some_local_ip/update_tags',\n        'verb': 'POST'\n        'disabled': False,\n        'nat': True\n    })\n]\n\n# install notification for tag with id=1 only\n# use it you have only one tag manager\nsucceed = api.install_push_notification(1, notifications, False)\n\n# if you have multiple tag managers you need specify its 'mac' stored in each tag as following\nsucceed = api.install_push_notification(sensor.tag_id, notifications, False,\n                                        sensor.tag_manager_mac)\n\n```\n\n## Monitor push events from cloud\n\nWireless Sensor Tags platform allows to monitor state of sensors with push notification on change right from cloud.\n\n```python\n\nimport wirelesstagspy\n\napi = wirelesstagpy.WirelessTags(username='login_email', password='your_password')\ndef callback(tags_spec, events_spec):\n    for (uuid, tag) in tags_spec.items():\n        if uuid in events_spec:\n            events = events_spec[uuid]\n            print(\"triggered events: {}\".format(events))\n        print(\"updated tag: {}\".format(tag))\n\n# starts long running thread with getting updates from cloud immidiately when change happens.\n# it is not a polling, but rather a similar to WebSockets get update logic\napi.start_monitoring(callback)\n\n```\n\n## Arm/Disarm sensor monitoring for specific event\n\nSupported events include: motion, temperature, humidity, light\n\n```python\n\nimport wirelesstagpy\n\napi = wirelesstagpy.WirelessTags(username='login_email', password='your_password')\n\n# arm humidity monitoring for tag with id 1,\n# returned instance is updated SensorTag\nsensor = api.arm_humidity(1)\n\n# Disarm it\nsensor = api.disarm_humidity(1)\n\n# Specify tag manager if you have multiple tag managers\nsensor = api.arm_humidity(sensor.tag_id, sensor.tag_manager_mac)\n\n```\n\n## Working with sensors and binary events\n\nSingle tag holds notion of multiple sensors and binary events.\nEach sensor is entity representing single sensing metric such as temperature, humidity, moisture, light or motion.\nYou can get list of supported sensors and binary events by calling `tag.allowed_sensor_types` for sensors,\n`tag.supported_binary_events_types` for binary events.\nAlso you can query tag on list of supported monitoring conditions that can be represented as switches to be armed/disarmed by calling `tag.allowed_monitoring_types`.\n\nHandling sensors:\n\n```python\n\nimport wirelesstagpy\nimport wirelesstagpy.constants as CONST\n\napi = wirelesstagpy.WirelessTags(username='login_email', password='your_password')\ntags = api.load_tags()\n\n# get temperature sensor value for tag\nfor (uuid, tag) in tags.items():\n    sensor = tag.sensor[CONST.SENSOR_TEMPERATURE]\n    if sensor is not None:\n        print('{} temperature: {}'.format(tag.name, sensor.value))\n\n```\n\nHandling binary events:\n\n```python\n\nimport wirelesstagpy\nimport wirelesstagpy.constants as CONST\n\napi = wirelesstagpy.WirelessTags(username='login_email', password='your_password')\ntags = api.load_tags()\n\n# get motion binary event state for each tag\nfor (uuid, tag) in tags.items():\n    if CONST.EVENT_MOTION in tag.supported_binary_events_types:\n        event = tag.event[CONST.EVENT_MOTION]\n        print('tag {} event state: {}'.format(tag.name, event.is_state_on))\n\n```\n\nUse binary events to build custom push notifications configurations\n\n```python\n\nimport wirelesstagpy\nimport wirelesstagpy.constants as CONST\n\napi = wirelesstagpy.WirelessTags(username='login_email', password='your_password')\ntags = api.load_tags()\ntag = tags['uuid-of-tag-in-question']\nevent = tag.event[CONST.EVENT_MOISTURE]\nif event is not None:\n    configs = event.build_notifications('http://path_to_post', tag.tag_manager_mac)\n    # install it for any tags of tag manager\n    succeed = api.install_push_notification(0, configs, True,\n                                            tag.tag_manager_mac)\n```\n\n## Disclaimer\n\n\"Wireless Sensor Tags\", \"KumoSensor\" and \"Kumostat\" are trademarks of Cao Gadgets LLC,\nsee www.wirelesstag.net for more information.\n\nI am in no way affiliated with Cao Gadgets LLC.\n\n## Copyright\n\nSee [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergeymaysak%2Fwirelesstagpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsergeymaysak%2Fwirelesstagpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergeymaysak%2Fwirelesstagpy/lists"}