Usage#
There are two main APIs in version 3.0 of IntelliFire4Py
Control Config Values#
In order to actually issue commands to the fireplace you will need to obtain a few items from the cloud portal. These can be done automatically
user_id
- This is a theuser_id
associated with your specific accountapi_key
- This is a specific key associated with a specific fireplacefireplace_ip
- The IP address of the fireplace on the local network
UDP Discovery#
This code is also available in example_discovery.py
:
import asyncio
from intellifire4py.udp import UDPFireplaceFinder
async def main() -> None:
"""Discovery fire places"""
# Most likely fail discovery due to a short time out
timeout = 1
print(f"----- Find Fire Places - (waiting {timeout} seconds)-----")
af = UDPFireplaceFinder()
print(await af.search_fireplace(timeout=timeout))
# Set a reasonalbe timeout
print(f"----- Find Fire Places - (waiting {timeout} seconds)-----")
af = UDPFireplaceFinder()
print(await af.search_fireplace(timeout=timeout))
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Local Polling#
With only access to the ip address of the unit you can perform local polling of data using IntelliFireAPILocal
.
import asyncio
import logging
import os
from intellifire4py import IntelliFireAPILocal
logging.basicConfig(level=logging.DEBUG)
async def main() -> None:
"""Main function."""
print(
"""
Accessing IFT_IP environment variable to connect to fireplace
"""
)
ip = os.environ["IFT_IP"]
api = IntelliFireAPILocal(fireplace_ip=ip)
await api.poll(suppress_warnings=False)
print(api.data)
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Cloud Credentials#
In order to actually control the unit you will need to access the cloud in order to pull down some credentials. This is demonstrated in example_cloud_info.py
however the key usage is as follows:
cloud_api = IntelliFireAPICloud(use_http=True, verify_ssl=False)
await cloud_api.login(username=username, password=password)
# Once logged in you can pull out the api key for the default (first detected) fireplace
api_key = cloud_api.get_fireplace_api_key(cloud_api.default_fireplace)
# Extract user_id
user_id = cloud_api.get_user_id()
When obtained these values can then be used for local control of the fireplace
Local Control#
In order to control the fireplace you must instantiate IntelliFireAPILocal
as follows:
from intellifire4py import IntelliFireAPILocal
api = IntelliFireAPILocal(
fireplace_ip=fireplace_ip,
user_id=user_id,
api_key=api_key
)
# And then you can issue commands such as:
await api.flame_on()