with Odoo and Philips Hue?
Emit new event when the state of a light changes (e.g., turned on/off, brightness adjusted, color changed). See the documentation
Emit new event when a specific scene is activated. See the documentation
Emit new event when a linked Hue sensor (e.g., motion, temperature, or ambient light) sends an update. See the documentation
import xmlrpc from 'xmlrpc';
export default defineComponent({
props: {
odoo: {
type: "app",
app: "odoo",
}
},
async run({ steps, $ }) {
const url = this.odoo.$auth.server_url;
const db = this.odoo.$auth.db;
const username = this.odoo.$auth.username;
const password = this.odoo.$auth.password;
// Create clients for common and object endpoints
const common = xmlrpc.createSecureClient(`${url}/xmlrpc/2/common`);
const models = xmlrpc.createSecureClient(`${url}/xmlrpc/2/object`);
// Using async/await with promises
async function getFields() {
try {
// Authenticate and get uid
const uid = await new Promise((resolve, reject) => {
common.methodCall('authenticate', [db, username, password, {}], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
// Get fields
const results = await new Promise((resolve, reject) => {
models.methodCall('execute_kw', [
db,
uid,
password,
'res.partner',
'fields_get',
[],
{ 'attributes': ['string', 'help', 'type'] }
], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
return results;
} catch (error) {
throw new Error(error);
}
}
return await getFields();
},
})
The Philips Hue API offers rich control over Philips Hue smart lighting systems. Via Pipedream, you can automate your lighting based on various triggers – think syncing lights with the sun's cycle, changing color to indicate new emails, or even integrating with motion sensors for a smart-home experience. With Pipedream's capabilities to connect to countless services, the possibilities of creating personalized lighting scenarios are vast, limited only by your imagination and the availability of triggers or events from other services and devices.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
philips_hue: {
type: "app",
app: "philips_hue",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.meethue.com/v2/api/resource`,
headers: {
Authorization: `Bearer ${this.philips_hue.$auth.oauth_access_token}`,
},
})
},
})