diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-05 04:13:25 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 04:13:25 +0000 |
| commit | 0d33220a9214dd4a17e138c4076a273e7556cfa4 (patch) | |
| tree | f04c4390dba09fb08a40381696b4e881f7dc0be4 | |
| parent | 4084afa641796ea79c8ec37409718816989b9561 (diff) | |
automatic import of python-total-connect-clientopeneuler20.03
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-total-connect-client.spec | 505 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 507 insertions, 0 deletions
@@ -0,0 +1 @@ +/total_connect_client-2023.2.tar.gz diff --git a/python-total-connect-client.spec b/python-total-connect-client.spec new file mode 100644 index 0000000..b218236 --- /dev/null +++ b/python-total-connect-client.spec @@ -0,0 +1,505 @@ +%global _empty_manifest_terminate_build 0 +Name: python-total-connect-client +Version: 2023.2 +Release: 1 +Summary: Interact with Total Connect 2 alarm systems +License: MIT License +URL: https://github.com/craigjmidwinter/total-connect-client +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/eb/98/6b84cdb5bccbc20214eec61453c2ad34fa7f8cce17859f1a80b7043684ed/total_connect_client-2023.2.tar.gz +BuildArch: noarch + +Requires: python3-zeep + +%description +# Total-Connect-Client +Total-Connect-Client is a python client for interacting with the TotalConnect2 alarm system. + +Started by @craigjmidwinter to add alarm support for his personal HomeAssistant set-up, with later contributions from others. + +The package can be downloaded at [PyPI](https://pypi.org/project/total-connect-client/). + +The code currently supports: + - Arming (away, stay, night) + - Disarming + - Getting panel status (armed, bypassed, etc) + - Getting zone status (normal, fault, trouble, low battery, etc) + +## Troubleshooting + +If you're having trouble with your system, or find an error message, we may ask you to submit information about your alarm system. + +### From Home Assistant + +- Go to https://<your_home_assistant>/config/integrations +- Find the TotalConnect integration card and click on the three dots in the bottom right corner +- Click on Download Diagnostics + +### From the command line + +Do the following steps: + +`python3 -m total_connect_client username` + +If you want to easily put the info into a file for sharing: + - `python3 -m total_connect_client username > my_info.txt` + - Now the file my_info.txt in the same directory will hold all of that information + +**WARNING**: the output of this command includes private information including your username and password. Carefully remove it before sharing with the developers or posting on Github. + +Create an Issue on Github and post both your problem and your system information. + +Why do we ask for this information? The TotalConnect API documentation provides little information on the status codes and other information it returns about your system. We developed as best we could using the codes our own systems returned. We have seen many times that other users with issues have different system status codes. + +Also consider looking at the [Total Connect system status](https://status.resideo.com/) to see if there is a system wide problem. + +## Developer Interface + +If you're an end user, just install Home Assistant and things should just work. + +If you're a developer and want to interface to TotalConnect from a system other than Home Assistant: + +``` +pip install total-connect-client +``` + +``` +from total_connect_client import TotalConnectClient, ArmType, ArmingHelper +``` + +To arm or disarm the system you must provide the usercode. +The usercodes dictionary maps locationid to usercode; if +the locationid is not found it uses the default usercode. +```python +usercodes = { 'default': '1234' } +client = TotalConnectClient(username, password, usercodes) + +for location in client.locations: + # location.arming_state can be matched against the ArmingState enum members + # or you can call the ArmingState convenience methods: + location.arming_state.is_disarmed() + location.arming_state.is_armed() # true if system is armed in any way + location.arming_state.is_armed_away() + location.arming_state.is_pending() # true if system is arming or disarming + location.arming_state.is_triggered() # true if system is in any alarm state + location.arming_state.is_triggered_gas() # true if in carbon monoxide alarm state + # and many more convenience methods + + # you can pass one of the ArmType enum members to location.arm(), e.g. + # location.arm(ArmType.STAY_INSTANT) + # or, equivalently, you can use any of the specific methods on ArmingHelper: + # ArmingHelper(location).arm_away() + + location.disarm() + + location.zone_bypass(zoneid) + + location.is_ac_loss() + location.is_low_battery() + location.is_cover_tampered() + location.last_updated_timestamp_ticks + location.configuration_sequence_number + + for (zone_id, zone) in location.zones.items(): + zone.is_bypassed() + zone.is_faulted() + zone.is_tampered() + zone.is_low_battery() + zone.is_troubled() + zone.is_triggered() + + # zone.zone_type_id can be matched against the ZoneType enum members, + # or you can call the following convenience methods: + zone.is_type_button() + zone.is_type_security() + zone.is_type_motion() + zone.is_type_fire() # heat detector or smoke detector + zone.is_type_carbon_monoxide() + zone.is_type_medical() + + zone.partition # the partition ID + zone.description + zone.can_be_bypassed + zone.status + zone.battery_level + zone.signal_strength + zone.chime_state + zone.supervision_type + zone.alarm_report_state + zone.loop_number + zone.sensor_serial_number + zone.device_type + + # to refresh a location + location.get_partition_details() + location.get_zone_details() + location.get_panel_meta_data() + + # to arm or disarm by partition + for (partition_id, partition) in location.partitions.items(): + ArmingHelper(partition).arm_stay() + etc. +``` + +## Recent Interface Changes + +* Partition support has been added. The TotalConnectLocation.arm and disarm family of methods now accept an optional partition_id parameter, and a single TotalConnectPartition object has arm() and disarm() methods and can be used with ArmingHelper. +* Previously most methods returned True on success and False on failure, with no exceptions expected. Now successful methods return but on failure raise subclasses of TotalConnectError. +* The arming control methods in TotalConnectClient have been deprecated; instead use the +similar methods on the values of self.locations. + +## Likely Future Interface Changes + +* Previously if the usercodes dictionary was invalid, the DEFAULT_USERCODE +was silently used. In a future release, we will raise an exception on an invalid dictionary. + +If there's something about the interface you don't understand, check out the (Home Assistant integration)[https://github.com/home-assistant/core/blob/dev/homeassistant/components/totalconnect/] that uses this package, or submit an issue here. + +During development, if you discover new status codes or other information not handled, please submit an issue to let us know, or even better submit a pull request. + + +%package -n python3-total-connect-client +Summary: Interact with Total Connect 2 alarm systems +Provides: python-total-connect-client +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-total-connect-client +# Total-Connect-Client +Total-Connect-Client is a python client for interacting with the TotalConnect2 alarm system. + +Started by @craigjmidwinter to add alarm support for his personal HomeAssistant set-up, with later contributions from others. + +The package can be downloaded at [PyPI](https://pypi.org/project/total-connect-client/). + +The code currently supports: + - Arming (away, stay, night) + - Disarming + - Getting panel status (armed, bypassed, etc) + - Getting zone status (normal, fault, trouble, low battery, etc) + +## Troubleshooting + +If you're having trouble with your system, or find an error message, we may ask you to submit information about your alarm system. + +### From Home Assistant + +- Go to https://<your_home_assistant>/config/integrations +- Find the TotalConnect integration card and click on the three dots in the bottom right corner +- Click on Download Diagnostics + +### From the command line + +Do the following steps: + +`python3 -m total_connect_client username` + +If you want to easily put the info into a file for sharing: + - `python3 -m total_connect_client username > my_info.txt` + - Now the file my_info.txt in the same directory will hold all of that information + +**WARNING**: the output of this command includes private information including your username and password. Carefully remove it before sharing with the developers or posting on Github. + +Create an Issue on Github and post both your problem and your system information. + +Why do we ask for this information? The TotalConnect API documentation provides little information on the status codes and other information it returns about your system. We developed as best we could using the codes our own systems returned. We have seen many times that other users with issues have different system status codes. + +Also consider looking at the [Total Connect system status](https://status.resideo.com/) to see if there is a system wide problem. + +## Developer Interface + +If you're an end user, just install Home Assistant and things should just work. + +If you're a developer and want to interface to TotalConnect from a system other than Home Assistant: + +``` +pip install total-connect-client +``` + +``` +from total_connect_client import TotalConnectClient, ArmType, ArmingHelper +``` + +To arm or disarm the system you must provide the usercode. +The usercodes dictionary maps locationid to usercode; if +the locationid is not found it uses the default usercode. +```python +usercodes = { 'default': '1234' } +client = TotalConnectClient(username, password, usercodes) + +for location in client.locations: + # location.arming_state can be matched against the ArmingState enum members + # or you can call the ArmingState convenience methods: + location.arming_state.is_disarmed() + location.arming_state.is_armed() # true if system is armed in any way + location.arming_state.is_armed_away() + location.arming_state.is_pending() # true if system is arming or disarming + location.arming_state.is_triggered() # true if system is in any alarm state + location.arming_state.is_triggered_gas() # true if in carbon monoxide alarm state + # and many more convenience methods + + # you can pass one of the ArmType enum members to location.arm(), e.g. + # location.arm(ArmType.STAY_INSTANT) + # or, equivalently, you can use any of the specific methods on ArmingHelper: + # ArmingHelper(location).arm_away() + + location.disarm() + + location.zone_bypass(zoneid) + + location.is_ac_loss() + location.is_low_battery() + location.is_cover_tampered() + location.last_updated_timestamp_ticks + location.configuration_sequence_number + + for (zone_id, zone) in location.zones.items(): + zone.is_bypassed() + zone.is_faulted() + zone.is_tampered() + zone.is_low_battery() + zone.is_troubled() + zone.is_triggered() + + # zone.zone_type_id can be matched against the ZoneType enum members, + # or you can call the following convenience methods: + zone.is_type_button() + zone.is_type_security() + zone.is_type_motion() + zone.is_type_fire() # heat detector or smoke detector + zone.is_type_carbon_monoxide() + zone.is_type_medical() + + zone.partition # the partition ID + zone.description + zone.can_be_bypassed + zone.status + zone.battery_level + zone.signal_strength + zone.chime_state + zone.supervision_type + zone.alarm_report_state + zone.loop_number + zone.sensor_serial_number + zone.device_type + + # to refresh a location + location.get_partition_details() + location.get_zone_details() + location.get_panel_meta_data() + + # to arm or disarm by partition + for (partition_id, partition) in location.partitions.items(): + ArmingHelper(partition).arm_stay() + etc. +``` + +## Recent Interface Changes + +* Partition support has been added. The TotalConnectLocation.arm and disarm family of methods now accept an optional partition_id parameter, and a single TotalConnectPartition object has arm() and disarm() methods and can be used with ArmingHelper. +* Previously most methods returned True on success and False on failure, with no exceptions expected. Now successful methods return but on failure raise subclasses of TotalConnectError. +* The arming control methods in TotalConnectClient have been deprecated; instead use the +similar methods on the values of self.locations. + +## Likely Future Interface Changes + +* Previously if the usercodes dictionary was invalid, the DEFAULT_USERCODE +was silently used. In a future release, we will raise an exception on an invalid dictionary. + +If there's something about the interface you don't understand, check out the (Home Assistant integration)[https://github.com/home-assistant/core/blob/dev/homeassistant/components/totalconnect/] that uses this package, or submit an issue here. + +During development, if you discover new status codes or other information not handled, please submit an issue to let us know, or even better submit a pull request. + + +%package help +Summary: Development documents and examples for total-connect-client +Provides: python3-total-connect-client-doc +%description help +# Total-Connect-Client +Total-Connect-Client is a python client for interacting with the TotalConnect2 alarm system. + +Started by @craigjmidwinter to add alarm support for his personal HomeAssistant set-up, with later contributions from others. + +The package can be downloaded at [PyPI](https://pypi.org/project/total-connect-client/). + +The code currently supports: + - Arming (away, stay, night) + - Disarming + - Getting panel status (armed, bypassed, etc) + - Getting zone status (normal, fault, trouble, low battery, etc) + +## Troubleshooting + +If you're having trouble with your system, or find an error message, we may ask you to submit information about your alarm system. + +### From Home Assistant + +- Go to https://<your_home_assistant>/config/integrations +- Find the TotalConnect integration card and click on the three dots in the bottom right corner +- Click on Download Diagnostics + +### From the command line + +Do the following steps: + +`python3 -m total_connect_client username` + +If you want to easily put the info into a file for sharing: + - `python3 -m total_connect_client username > my_info.txt` + - Now the file my_info.txt in the same directory will hold all of that information + +**WARNING**: the output of this command includes private information including your username and password. Carefully remove it before sharing with the developers or posting on Github. + +Create an Issue on Github and post both your problem and your system information. + +Why do we ask for this information? The TotalConnect API documentation provides little information on the status codes and other information it returns about your system. We developed as best we could using the codes our own systems returned. We have seen many times that other users with issues have different system status codes. + +Also consider looking at the [Total Connect system status](https://status.resideo.com/) to see if there is a system wide problem. + +## Developer Interface + +If you're an end user, just install Home Assistant and things should just work. + +If you're a developer and want to interface to TotalConnect from a system other than Home Assistant: + +``` +pip install total-connect-client +``` + +``` +from total_connect_client import TotalConnectClient, ArmType, ArmingHelper +``` + +To arm or disarm the system you must provide the usercode. +The usercodes dictionary maps locationid to usercode; if +the locationid is not found it uses the default usercode. +```python +usercodes = { 'default': '1234' } +client = TotalConnectClient(username, password, usercodes) + +for location in client.locations: + # location.arming_state can be matched against the ArmingState enum members + # or you can call the ArmingState convenience methods: + location.arming_state.is_disarmed() + location.arming_state.is_armed() # true if system is armed in any way + location.arming_state.is_armed_away() + location.arming_state.is_pending() # true if system is arming or disarming + location.arming_state.is_triggered() # true if system is in any alarm state + location.arming_state.is_triggered_gas() # true if in carbon monoxide alarm state + # and many more convenience methods + + # you can pass one of the ArmType enum members to location.arm(), e.g. + # location.arm(ArmType.STAY_INSTANT) + # or, equivalently, you can use any of the specific methods on ArmingHelper: + # ArmingHelper(location).arm_away() + + location.disarm() + + location.zone_bypass(zoneid) + + location.is_ac_loss() + location.is_low_battery() + location.is_cover_tampered() + location.last_updated_timestamp_ticks + location.configuration_sequence_number + + for (zone_id, zone) in location.zones.items(): + zone.is_bypassed() + zone.is_faulted() + zone.is_tampered() + zone.is_low_battery() + zone.is_troubled() + zone.is_triggered() + + # zone.zone_type_id can be matched against the ZoneType enum members, + # or you can call the following convenience methods: + zone.is_type_button() + zone.is_type_security() + zone.is_type_motion() + zone.is_type_fire() # heat detector or smoke detector + zone.is_type_carbon_monoxide() + zone.is_type_medical() + + zone.partition # the partition ID + zone.description + zone.can_be_bypassed + zone.status + zone.battery_level + zone.signal_strength + zone.chime_state + zone.supervision_type + zone.alarm_report_state + zone.loop_number + zone.sensor_serial_number + zone.device_type + + # to refresh a location + location.get_partition_details() + location.get_zone_details() + location.get_panel_meta_data() + + # to arm or disarm by partition + for (partition_id, partition) in location.partitions.items(): + ArmingHelper(partition).arm_stay() + etc. +``` + +## Recent Interface Changes + +* Partition support has been added. The TotalConnectLocation.arm and disarm family of methods now accept an optional partition_id parameter, and a single TotalConnectPartition object has arm() and disarm() methods and can be used with ArmingHelper. +* Previously most methods returned True on success and False on failure, with no exceptions expected. Now successful methods return but on failure raise subclasses of TotalConnectError. +* The arming control methods in TotalConnectClient have been deprecated; instead use the +similar methods on the values of self.locations. + +## Likely Future Interface Changes + +* Previously if the usercodes dictionary was invalid, the DEFAULT_USERCODE +was silently used. In a future release, we will raise an exception on an invalid dictionary. + +If there's something about the interface you don't understand, check out the (Home Assistant integration)[https://github.com/home-assistant/core/blob/dev/homeassistant/components/totalconnect/] that uses this package, or submit an issue here. + +During development, if you discover new status codes or other information not handled, please submit an issue to let us know, or even better submit a pull request. + + +%prep +%autosetup -n total-connect-client-2023.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-total-connect-client -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2023.2-1 +- Package Spec generated @@ -0,0 +1 @@ +5b1e6eed97be817949c1d54d00e31229 total_connect_client-2023.2.tar.gz |
