1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
%global _empty_manifest_terminate_build 0
Name: python-tasmotadevicecontroller
Version: 0.0.8
Release: 1
Summary: Control Tasmota devices via their web api
License: GNU General Public License v3 (GPLv3)
URL: https://github.com/chaptergy/tasmota-device-controller
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/de/cd/277e5d6eae4d09175a189990f59cc3d36eb2a7a63abc2c4359bffc917b9c/tasmotadevicecontroller-0.0.8.tar.gz
BuildArch: noarch
%description
# Tasmota Device Controller
This packag provides async wrappers for Tasmota's web request API.
Only very few requests are implemented so far! If you need other requests, please have a look at the section [Contributing](#contributing), or create an issue.
`get` methods return the value of the fetched item, `set` methods return the new set value (so what the `get` method would return after the set). However there are some exceptions like `BLINK` for `setPower()` which always returns `True`, but that should be mentioned in the methods description.
Since this package was created for a Home Assistant integration, you can check out [that integration](https://github.com/chaptergy/homeassistant-tasmota-switch) for other sample usage.
Example usage:
```py
import asyncio
from tasmotadevicecontroller import TasmotaDevice
from tasmotadevicecontroller import tasmota_types as t
async def main():
device = await TasmotaDevice.connect('192.168.10.21')
# Get friendly name (of first output, which is the default output)
nameResult = await device.getFriendlyName()
print(nameResult) # Returns 'My Tasmota Plug'
# Get power of first output
getResult = await device.getPower()
print(getResult) # Returns True (on)
# Set power of first output to on
setResult = await device.setPower(t.PowerType.TOGGLE)
print(setResult) # Returns True or False (depending if the device was switched on or off)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
## Contributing
If you want to add new requests, can implement these commands and create a merge request on [GitHub](https://github.com/chaptergy/tasmota-device-controller).
Almost every command is implemented as one getter method and one setter method. Add your command if possible in the same way inside the `TasmotaDevice` class. Remember to add descriptions to each method. This description can usually be taken from the Tasmota wiki.
Also, remember to always use `async` `await`!
If the command takes values from a specific set of values, create an `Enum` inside `tasmota_types.py` for it.
%package -n python3-tasmotadevicecontroller
Summary: Control Tasmota devices via their web api
Provides: python-tasmotadevicecontroller
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-tasmotadevicecontroller
# Tasmota Device Controller
This packag provides async wrappers for Tasmota's web request API.
Only very few requests are implemented so far! If you need other requests, please have a look at the section [Contributing](#contributing), or create an issue.
`get` methods return the value of the fetched item, `set` methods return the new set value (so what the `get` method would return after the set). However there are some exceptions like `BLINK` for `setPower()` which always returns `True`, but that should be mentioned in the methods description.
Since this package was created for a Home Assistant integration, you can check out [that integration](https://github.com/chaptergy/homeassistant-tasmota-switch) for other sample usage.
Example usage:
```py
import asyncio
from tasmotadevicecontroller import TasmotaDevice
from tasmotadevicecontroller import tasmota_types as t
async def main():
device = await TasmotaDevice.connect('192.168.10.21')
# Get friendly name (of first output, which is the default output)
nameResult = await device.getFriendlyName()
print(nameResult) # Returns 'My Tasmota Plug'
# Get power of first output
getResult = await device.getPower()
print(getResult) # Returns True (on)
# Set power of first output to on
setResult = await device.setPower(t.PowerType.TOGGLE)
print(setResult) # Returns True or False (depending if the device was switched on or off)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
## Contributing
If you want to add new requests, can implement these commands and create a merge request on [GitHub](https://github.com/chaptergy/tasmota-device-controller).
Almost every command is implemented as one getter method and one setter method. Add your command if possible in the same way inside the `TasmotaDevice` class. Remember to add descriptions to each method. This description can usually be taken from the Tasmota wiki.
Also, remember to always use `async` `await`!
If the command takes values from a specific set of values, create an `Enum` inside `tasmota_types.py` for it.
%package help
Summary: Development documents and examples for tasmotadevicecontroller
Provides: python3-tasmotadevicecontroller-doc
%description help
# Tasmota Device Controller
This packag provides async wrappers for Tasmota's web request API.
Only very few requests are implemented so far! If you need other requests, please have a look at the section [Contributing](#contributing), or create an issue.
`get` methods return the value of the fetched item, `set` methods return the new set value (so what the `get` method would return after the set). However there are some exceptions like `BLINK` for `setPower()` which always returns `True`, but that should be mentioned in the methods description.
Since this package was created for a Home Assistant integration, you can check out [that integration](https://github.com/chaptergy/homeassistant-tasmota-switch) for other sample usage.
Example usage:
```py
import asyncio
from tasmotadevicecontroller import TasmotaDevice
from tasmotadevicecontroller import tasmota_types as t
async def main():
device = await TasmotaDevice.connect('192.168.10.21')
# Get friendly name (of first output, which is the default output)
nameResult = await device.getFriendlyName()
print(nameResult) # Returns 'My Tasmota Plug'
# Get power of first output
getResult = await device.getPower()
print(getResult) # Returns True (on)
# Set power of first output to on
setResult = await device.setPower(t.PowerType.TOGGLE)
print(setResult) # Returns True or False (depending if the device was switched on or off)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
## Contributing
If you want to add new requests, can implement these commands and create a merge request on [GitHub](https://github.com/chaptergy/tasmota-device-controller).
Almost every command is implemented as one getter method and one setter method. Add your command if possible in the same way inside the `TasmotaDevice` class. Remember to add descriptions to each method. This description can usually be taken from the Tasmota wiki.
Also, remember to always use `async` `await`!
If the command takes values from a specific set of values, create an `Enum` inside `tasmota_types.py` for it.
%prep
%autosetup -n tasmotadevicecontroller-0.0.8
%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-tasmotadevicecontroller -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri Apr 21 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.8-1
- Package Spec generated
|