Skip to content

Commit 791a4bd

Browse files
authored
Add Example for Fan Control (#1365)
1 parent dee8ad6 commit 791a4bd

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed

examples/example_fan_percent_mode.py

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""Example for Fan device."""
2+
import asyncio
3+
4+
from xknx import XKNX
5+
from xknx.devices import Fan
6+
7+
8+
async def main():
9+
"""Connect to KNX/IP bus, control a fan, and turn it off afterwards."""
10+
xknx = XKNX()
11+
await xknx.start()
12+
13+
fan = Fan(
14+
xknx,
15+
name="TestFan",
16+
group_address_switch="1/0/12",
17+
group_address_speed="1/0/14",
18+
max_step=3,
19+
)
20+
21+
# Turn on the fan
22+
await fan.turn_on()
23+
24+
# Set fan speed to different levels
25+
for speed in [0, 33, 66, 100]:
26+
await fan.set_speed(speed)
27+
await asyncio.sleep(1)
28+
29+
# Turn off the fan
30+
await fan.turn_off()
31+
32+
await xknx.stop()
33+
34+
35+
asyncio.run(main())

examples/example_fan_step_mode.py

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""Example for Fan device."""
2+
import asyncio
3+
4+
from xknx import XKNX
5+
from xknx.devices import Fan
6+
7+
8+
async def main():
9+
"""Connect to KNX/IP bus, control a fan, and turn it off afterwards."""
10+
xknx = XKNX()
11+
await xknx.start()
12+
13+
fan = Fan(
14+
xknx,
15+
name="TestFan",
16+
group_address_switch="1/0/12",
17+
group_address_speed="1/0/14",
18+
max_step=3,
19+
)
20+
21+
# Turn on the fan
22+
await fan.turn_on()
23+
24+
# Set fan speed in steps
25+
for step in range(1, fan.max_step + 1):
26+
await fan.set_speed(step)
27+
await asyncio.sleep(1)
28+
29+
# Turn off the fan
30+
await fan.turn_off()
31+
32+
await xknx.stop()
33+
34+
35+
asyncio.run(main())

0 commit comments

Comments
 (0)