with Samsung SmartThings and MQTT?
The Samsung SmartThings API allows you to interface with various IoT devices within the Samsung SmartThings ecosystem, enabling control and monitoring from a centralized platform. Leveraging this API on Pipedream, you can create automated workflows that respond to device events, control devices programmatically, and integrate IoT data with hundreds of other services for advanced home automation, data logging, and smart notifications.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
smartthings: {
type: "app",
app: "smartthings",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.smartthings.com/v1/devices`,
headers: {
Authorization: `Bearer ${this.smartthings.$auth.token}`,
},
})
},
})
import mqtt from "mqtt";
export default defineComponent({
props: {
mqtt: {
type: "app",
app: "mqtt",
}
},
async run({ steps, $ }) {
const url = `${this.mqtt.$auth.protocol}://${this.mqtt.$auth.host}:${this.mqtt.$auth.port}`;
const options = {
clientId: this.mqtt.$auth.client_id ?? `pipedream-client-${Date.now()}`,
connectTimeout: 5000,
username: this.mqtt.$auth.username,
password: this.mqtt.$auth.password,
};
const client = mqtt.connect(url, options);
await new Promise((resolve) => {
client.on("connect", () => {
client.publish("pipedream/test", 'Welcome MQTT + Pipedream users! ' + new Date().toISOString(), () => {
client.end();
console.log("Message sent");
resolve();
});
});
});
return {
mqttClientIsConnected: client.connected,
};
},
})