Bonjour,
J'ai acheté une ampoule Yeelight de la marque Xiaomi et pour m'amuser un peut avec celle-ci j'aimerais via une interface web la controler (quelque chose de simple pour commencer!)
Donc, pour cela j'ai trouvé un petit module bien sympa qui est :
https://www.npmjs.com/package/node-yeelight
Malheureusement je n'arrive pas à faire fonctionner ce module avec ma vue 'index.ejs' ..
Je m'explique, j'essaye d'envoyer en socket soit ON ou OFF au serveur et si celui-ci reçoit par exemple ON alors il lance la fonction en question mais celui-ci ne lance pas la fonction du module....
voici le code côté serveur :
const express = require('express');
const app = express();
const server = require('http').createServer(app);
app.use(express.static(__dirname + '/public'));
app.get('/', function (req, res) {
res.render('index.ejs');
});
app.use(function(req, res, next){
res.status(404).render('404.ejs');
});
//Yeelight
var Yeelight = require('node-yeelight');
var y = new Yeelight;
y.on('ready', function() {
console.log('ready');
y.discover();
});
y.on('deviceadded', function(device) {
console.log('device added');
y.connect(device);
});
y.on('deviceconnected', function(device) {
console.log('device connected');
/*
//si je clique sur allumer alors la lumiere s'allume:
y.setPower(
device, // device object
true, // device state (true/false)
300 // transition speed in ms
);
y.setBrightness(
device, // device object
100, // brightness percentage (1-100)
300 // transition speed in ms
);
//si je clique sur eteindre alors la lumiere s'eteind:
y.setPower(
device, // device object
false, // device state (true/false)
300 // transition speed in ms
);
*/
});
y.listen();
server.listen(8080);
et ma vue index.ejs
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta charset="utf-8">
<title>Lamp</title>
</head>
<body>
<h1>Yeelight</h1>
<input type="button" id="on" value="Allumer"/>
<input type="button" id="off" value="Eteindre"/>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8080');
$('#on').click(function () {
socket.emit('on', 'on');
})
$('#off').click(function () {
socket.emit('off', 'off');
})
</script>
</body>
</html>
Je suis débutant donc si il y a une meilleure façon de "ranger" mon code ou même de 'coder' ce système je suis preneur !
Merci d'avance pour vos pistes et conseils