dotfiles/scripts/homeassistant.py

29 lines
1.0 KiB
Python

#!/usr/bin/env python3
# Python wrapper for REST API for Home Assistant.
from requests import get, post
import json
class HomeAssistant(object):
def __init__(self, ip, token):
self.url = 'http://{}:8123'.format(ip)
self.headers = {
'Authorization': 'Bearer {}'.format(token),
'content-type': 'application/json',
}
def postService(self, domain, service, data):
response = post("{}/api/services/{}/{}".format(self.url, domain, service),
headers=self.headers, data=json.dumps(data))
response.raise_for_status()
return response
def getRequest(self, domain, data):
response = get("{}/api/{}".format(self.url, domain),
headers=self.headers, data=json.dumps(data))
return json.loads(response.text)
def getServices(self):
return self.getRequest('services', '')
def runScene(self, entityId):
data = {'entity_id': entityId}
self.postService('scene', 'turn_on', data)