Rituals the perfume genie

Others (MiLight, Hue, Toon etc...)

Moderator: leecollings

Post Reply
Lebo2d9
Posts: 139
Joined: Tuesday 06 September 2016 20:39
Target OS: Raspberry Pi / ODroid
Domoticz version: L stab
Location: Belgium
Contact:

Rituals the perfume genie

Post by Lebo2d9 »

Hi,

Is somebody trying to control the "perfume genie" from Rituals?

I have already found something on github https://github.com/appspark-nl/rituals-api-php but i'm not a real programer and a php noob.

Kind regards Koen
Domoicz on RPI3 (wifi) directly connected 3x ds18b20 for CV temp, Evohome (9 zone), 1 remote 220V switch based on ESP-12. RFXtrx433E, 16x AMST-606, 5 Somfy RTS motors
Domoticz on RPI3(wifi) as slave for terraruim control
More to come
Lebo2d9
Posts: 139
Joined: Tuesday 06 September 2016 20:39
Target OS: Raspberry Pi / ODroid
Domoticz version: L stab
Location: Belgium
Contact:

Re: Rituals the perfume genie

Post by Lebo2d9 »

Hi,

I found also python wrapper using the rituals-api on https://pypi.org/project/rituals-api/

Code: Select all

import requests
import json
from urllib.parse import urlencode

name = "rituals-api"

class RitualsAPI:

    BASE_URL = 'https://rituals.sense-company.com'

    def __init__(self, email, password):
        self.email = email
        self.password = password
        self.userData = None
        self.hubs = {}
        self._login()

    def _login(self):
        url = '{}/ocapi/login'.format(self.BASE_URL)
        data = {'email': self.email, 'password': self.password}
        headers = {'Content-Type': 'application/json'}

        r = requests.post(url, json=data, headers=headers)

        if r.status_code == 200:
            self.userData = r.json()
            self._getHubs()
        else:
            print('Something went wrong with logging in: {}'.format(r.text()))

    def _getHubs(self):
        url = '{}/api/account/hubs/{}'.format(self.BASE_URL, self.userData['account_hash'])

        r = requests.get(url)

        if r.status_code == 200:
            for hub in r.json():
                hubName = str(hub['hub']['attributes']['roomnamec']).replace(' ','_').lower()
                self.hubs[hubName] = hub['hub']
        else:
            print('Something went wrong with retrieving hub info: {}'.format(r.text()))

    def availableHubs(self):
        return self.hubs.keys()

    def turnOn(self, hubId):
        return self._setAttributes(self.hubs[hubId], {'fanc': "1"})

    def turnOff(self, hubId):
        return self._setAttributes(self.hubs[hubId], {'fanc': "0"})

    def setStatus(self, hubId, status):
        hub = self.hubs[hubId]
        status = self._setAttributes(hub, {'fanc': status})
        return status

    def _setAttributes(self, hub, attrs):
        url = '{}/api/hub/update/attr'.format(self.BASE_URL)
        headers = {'Content-Type': 'application/x-www-form-urlencoded'}

        json_data = {'attr': {}}
        for key in attrs.keys():
            json_data['attr'][key] = attrs[key]

        data = urlencode({'hub':hub['hash'], 'json': json_data})
        r = requests.post(url, data=data, headers=headers)

        if r.status_code == 200:
            print('Attributes updated.')
            return True
        else:
            print('Something went wrong with setting attributes {}'.format(r.text()))
            return False
But I don't know how to implement this
Domoicz on RPI3 (wifi) directly connected 3x ds18b20 for CV temp, Evohome (9 zone), 1 remote 220V switch based on ESP-12. RFXtrx433E, 16x AMST-606, 5 Somfy RTS motors
Domoticz on RPI3(wifi) as slave for terraruim control
More to come
Lebo2d9
Posts: 139
Joined: Tuesday 06 September 2016 20:39
Target OS: Raspberry Pi / ODroid
Domoticz version: L stab
Location: Belgium
Contact:

Re: Rituals the perfume genie

Post by Lebo2d9 »

for the moment I'm able to collect the data.
See posthttps://www.domoticz.com/forum/viewtopi ... 65&t=26566
Domoicz on RPI3 (wifi) directly connected 3x ds18b20 for CV temp, Evohome (9 zone), 1 remote 220V switch based on ESP-12. RFXtrx433E, 16x AMST-606, 5 Somfy RTS motors
Domoticz on RPI3(wifi) as slave for terraruim control
More to come
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest