Add support for sensibo?
Moderator: leecollings
Add support for sensibo?
https://sensibo.zendesk.com/hc/en-us/ar ... tegrations
How would it be possible to add support for this in domoticz?
How would it be possible to add support for this in domoticz?
-
- Posts: 31
- Joined: Monday 09 March 2015 7:35
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Add support for sensibo?
+1
I have a script at the moment and some virtual switches (4 by pod) I will share it soon.
Other question : it there a way to have one virtual switch for air conditioner with on-off / mode / fan / temperature as one virtual switch ?
I have a script at the moment and some virtual switches (4 by pod) I will share it soon.
Other question : it there a way to have one virtual switch for air conditioner with on-off / mode / fan / temperature as one virtual switch ?
Re: Add support for sensibo?
Nice, looking forward!Bob123bob wrote:+1
I have a script at the moment and some virtual switches (4 by pod) I will share it soon.
Other question : it there a way to have one virtual switch for air conditioner with on-off / mode / fan / temperature as one virtual switch ?
-
- Posts: 31
- Joined: Monday 09 March 2015 7:35
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Add support for sensibo?
Here are my scripts (sorry for the delay)
One in LUA to manage devices changes in domoticz and one in Python to send command using Sensible API
You will have to create 4 dummy switches by pod
AC STATE switch ON/OFF
AC MODE selectable HEAT/COOL/FAN/AUTO
AC FAN selectable LOW/MEDIUM/HIGH/AUTO
AC TEMPERATURE Temperature
sensibo_client_by_pod.py
I put it in scripts/sensibo folder
make it executable :
No changes needed, if you want to test it just execute it using the following command
acstate is on,off ; acmode cool,heat,fan,auto ; acfan low,medium,high,auto ; actemp in a integer in degrees
and second script
script_device_sensibo.lua
I put it in scripts/lua folder
You will have to change device names and edit your sensibo api key and pod iud
Hope this code helps people here
I'm not a coder so if you want to improve the scripts you're welcome
One in LUA to manage devices changes in domoticz and one in Python to send command using Sensible API
You will have to create 4 dummy switches by pod
AC STATE switch ON/OFF
AC MODE selectable HEAT/COOL/FAN/AUTO
AC FAN selectable LOW/MEDIUM/HIGH/AUTO
AC TEMPERATURE Temperature
sensibo_client_by_pod.py
I put it in scripts/sensibo folder
make it executable :
Code: Select all
chmod +x sensibo_client_by_pod.py
Code: Select all
python sensibo_client_by_pod.py yourapikey yourpoduid youracstate youracmode youracfan youractemperature
Code: Select all
import requests
import json
_SERVER = 'https://home.sensibo.com/api/v2'
class SensiboClientAPI(object):
def __init__(self, api_key):
self._api_key = api_key
def _get(self, path, ** params):
params['apiKey'] = self._api_key
response = requests.get(_SERVER + path, params = params)
response.raise_for_status()
return response.json()
def _post(self, path, data, ** params):
params['apiKey'] = self._api_key
response = requests.post(_SERVER + path, params = params, data = data)
response.raise_for_status()
return response.json()
def pod_uids(self):
result = self._get("/users/me/pods")
pod_uids = [x['id'] for x in result['result']]
return pod_uids
def pod_measurement(self, podUid):
result = self._get("/pods/%s/measurements" % podUid)
return result['result']
def pod_ac_state(self, podUid):
result = self._get("/pods/%s/acStates" % podUid, limit = 1, fields="status,reason,acState")
return result['result'][0]
def pod_change_ac_state(self, podUid, on, target_temperature, mode, fan_level):
self._post("/pods/%s/acStates" % podUid,
json.dumps({'acState': {"on": on, "targetTemperature": target_temperature, "mode": mode, "fanLevel": fan_level}}))
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description='Sensibo client example parser')
parser.add_argument('apikey', type = str)
parser.add_argument('poduid', type = str)
parser.add_argument('--on', action="store_true", default=False, dest='status')
parser.add_argument('--off', action="store_false", default=False, dest='status')
parser.add_argument('temperature', type = int)
parser.add_argument('mode', type = str)
parser.add_argument('fan', type = str)
args = parser.parse_args()
client = SensiboClientAPI(args.apikey)
pod_uids = client.pod_uids()
#print "All pod uids:", ", ".join(pod_uids)
#print "Pod measurement for first pod", client.pod_measurement(pod_uids[0])
#last_ac_state = client.pod_ac_state(pod_uids[0])
#print "Last AC change %(success)s and was caused by %(cause)s" % { 'success': 'was successful' if last_ac_state['status'] == 'Success' else 'failed', 'cause': last_ac_state['reason'] }
#print "and set the ac to %s" % str(last_ac_state['acState'])
client.pod_change_ac_state(args.poduid,args.status,args.temperature,args.mode,args.fan)
print "Pod UID : ", args.poduid
print "Status : ", args.status
print "Temp : ", args.temperature
print "Mode : ", args.mode
print "Fan : ", args.fan
and second script
script_device_sensibo.lua
I put it in scripts/lua folder
You will have to change device names and edit your sensibo api key and pod iud
Code: Select all
-- script name : script_device_sensibo.lua
-- This script will trigger a python script every time a Sensibo settings using Domoticz dummy switchs change status
-- Create virtual selectable switch. e.g. : "AC State (ON/OFF), Mode (HEAT/COOL/FAN/AUTO), Fan (LOW/MEDIUM/HIGH/AUTO), Temperature"
commandArray = {}
apikey = 'yourapikey'
poduid_bedroom = 'yourpoduid'
poduid_kitchen = 'yourpoduid'
for key, value in pairs(devicechanged) do
if (key == 'AC Kitchen' or key == 'Mode Kitchen' or key == 'Fan Kitchen' or key == 'Temp Kitchen') then
poduid = poduid_Kitchen
state = otherdevices['AC Kitchen']:lower()
mode = otherdevices['Mode Kitchen']
fan = otherdevices['Fan Kitchen']
temperature = math.floor(otherdevices_svalues['Temp Kitchen'])
if ((devicechanged['AC Kitchen'] == 'On') or (key == 'AC Kitchen') or (otherdevices['AC Kitchen'] == 'On')) then
os.execute("python /home/pi/domoticz/scripts/sensibo/sensibo_client_by_pod.py "..apikey.." "..poduid.." --"..state.." "..temperature.." "..mode.." "..fan)
--print("python /home/pi/domoticz/scripts/sensibo/sensibo_client_by_pod.py "..apikey.." "..poduid.." --"..state.." "..temperature.." "..mode.." "..fan)
--print("API key : "..apikey..", Pod UID : " ..poduid.. ", State : "..state..", Mode : "..mode..", Fan : "..fan..", Temp : "..temperature)
print("AC Kitchen : "..state..", "..temperature..", "..mode..", "..fan)
end
end
if (key == 'AC Bedroom' or key == 'Mode Bedroom' or key == 'Fan Bedroom' or key == 'Temp Bedroom') then
poduid = poduid_Bedroom
state = otherdevices['AC Bedroom']:lower()
mode = otherdevices['Mode Bedroom']
fan = otherdevices['Fan Bedroom']
temperature = math.floor(otherdevices_svalues['Temp Bedroom'])
if ((devicechanged['AC Bedroom'] == 'On') or (key == 'AC Bedroom') or (otherdevices['AC Bedroom'] == 'On')) then
os.execute("python /home/pi/domoticz/scripts/sensibo/sensibo_client_by_pod.py "..apikey.." "..poduid.." --"..state.." "..temperature.." "..mode.." "..fan)
--print("python /home/pi/domoticz/scripts/sensibo/sensibo_client_by_pod.py "..apikey.." "..poduid.." --"..state.." "..temperature.." "..mode.." "..fan)
--print("API key : "..apikey..", Pod UID : " ..poduid.. ", State : "..state..", Mode : "..mode..", Fan : "..fan..", Temp : "..temperature)
print("AC Bedroom : "..state..", "..temperature..", "..mode..", "..fan)
end
end
end
return commandArray
I'm not a coder so if you want to improve the scripts you're welcome
Re: Add support for sensibo?
If someone is interested here is my plugin for Sensibo integration:
https://github.com/dynodix/sensibo
https://github.com/dynodix/sensibo
Re: Add support for sensibo?
Hello,
so here I am new to the rasberry community and how to say ... I am a beautiful quiche
I launched into the Raspberry / domoticz et sensibo project (with dynodix's pluggin).
I had already installed Domoticz on a synology and therefore I had no problem doing it on the raspberry.
By cons I followed a tutorial to install the Sensibo plugin.
The plugin installs well but then I have errors in the logs
here they are :2020-02-02 14:52:55.227 Error: (CLim) 'onStart' failed 'AttributeError':''NoneType' object has no attribute 'supported_modes''.
2020-02-02 14:52:55.227 Error: (CLim) ----> Line 189 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
2020-02-02 14:52:55.227 Error: (CLim) ----> Line 44 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
2020-02-02 14:53:04.927 Error: (CLim) 'onHeartbeat' failed 'AttributeError':''NoneType' object has no attribute 'room_temp''.
2020-02-02 14:53:04.927 Error: (CLim) ----> Line 217 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
2020-02-02 14:53:04.927 Error: (CLim) ----> Line 139 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
2020-02-02 14:53:04.927 Error: (CLim) ----> Line 149 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
What to do with it?
Thank you for your help and your patience
so here I am new to the rasberry community and how to say ... I am a beautiful quiche
I launched into the Raspberry / domoticz et sensibo project (with dynodix's pluggin).
I had already installed Domoticz on a synology and therefore I had no problem doing it on the raspberry.
By cons I followed a tutorial to install the Sensibo plugin.
The plugin installs well but then I have errors in the logs
here they are :2020-02-02 14:52:55.227 Error: (CLim) 'onStart' failed 'AttributeError':''NoneType' object has no attribute 'supported_modes''.
2020-02-02 14:52:55.227 Error: (CLim) ----> Line 189 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
2020-02-02 14:52:55.227 Error: (CLim) ----> Line 44 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
2020-02-02 14:53:04.927 Error: (CLim) 'onHeartbeat' failed 'AttributeError':''NoneType' object has no attribute 'room_temp''.
2020-02-02 14:53:04.927 Error: (CLim) ----> Line 217 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
2020-02-02 14:53:04.927 Error: (CLim) ----> Line 139 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
2020-02-02 14:53:04.927 Error: (CLim) ----> Line 149 in '/home/pi/domoticz/plugins/sensibo/plugin.py'
What to do with it?
Thank you for your help and your patience
Re: Add support for sensibo?
Please nobody ??
Re: Add support for sensibo?
Please nobody ??
Re: Add support for sensibo?
Are you able to control your device trough sensibo web? https://home.sensibo.com/login?
Sometimes I got similar errors on one of the 2 devices, but after change some available parameter the device sincronized and everything worked.
At most you should be able to torn on or off the clima with the plugin.
Sometimes I got similar errors on one of the 2 devices, but after change some available parameter the device sincronized and everything worked.
At most you should be able to torn on or off the clima with the plugin.
Who is online
Users browsing this forum: No registered users and 1 guest