plugin eedomus
Page 1 sur 1
plugin eedomus
bonjour , stephane , avant tout je te remercie pour tout tes conseils et ton aide, je voudrais automatiser et personaliser , l'assistant vocal Avatar.ia , il me manque seulement une fonction sur ton plugin eedomus
j'ai un detecteur d'ouverture/fermeture de porte, sans que je passe la regle , je voudrais quand j'ouvre la porte, Avatar.ia me répond: la porte est ouverte, ou quand je ferme la porte Avatar.ia me répond: la porte est fermé
merci stephane
getPorte: function() {
getPorte ((text, value) => {
info("En text:" + text);
info("En valeur: " + value);
if (value == '100') {
Avatar.speak("la porte est:" + text, data.client, function() {
Avatar.Speech.end(data.client);
});
}
if (value == '0') {
Avatar.speak("la porte est:" + text, data.client, function() {
Avatar.Speech.end(data.client);
});
}
})
},
function getPorte (callback) {
var eeDomusUser = "XXXXXX";
var eeDomusSecret = "SxiBy7yB64XXXXXX";
var periphID = "2273694";
// Build URL api.eedomus.com
var url = 'http://api.eedomus.com/get?action=periph.caract';
url += '&api_user='+eeDomusUser; //[i];
url += '&api_secret='+eeDomusSecret;
url += '&periph_id='+periphID;
// Send Request
var request = require('request');
request({ 'uri': url, 'json': true }, function (err, response, json){
if (err || response.statusCode != 200) {
callback('error');
}
else {
json = json.body;
var text = (json && json.last_value_text) ? json.last_value_text : 'error';
var value = (json && json.last_value) ? json.last_value : 'error';
callback(text,value);
}
});
}
j'ai un detecteur d'ouverture/fermeture de porte, sans que je passe la regle , je voudrais quand j'ouvre la porte, Avatar.ia me répond: la porte est ouverte, ou quand je ferme la porte Avatar.ia me répond: la porte est fermé
merci stephane
getPorte: function() {
getPorte ((text, value) => {
info("En text:" + text);
info("En valeur: " + value);
if (value == '100') {
Avatar.speak("la porte est:" + text, data.client, function() {
Avatar.Speech.end(data.client);
});
}
if (value == '0') {
Avatar.speak("la porte est:" + text, data.client, function() {
Avatar.Speech.end(data.client);
});
}
})
},
function getPorte (callback) {
var eeDomusUser = "XXXXXX";
var eeDomusSecret = "SxiBy7yB64XXXXXX";
var periphID = "2273694";
// Build URL api.eedomus.com
var url = 'http://api.eedomus.com/get?action=periph.caract';
url += '&api_user='+eeDomusUser; //[i];
url += '&api_secret='+eeDomusSecret;
url += '&periph_id='+periphID;
// Send Request
var request = require('request');
request({ 'uri': url, 'json': true }, function (err, response, json){
if (err || response.statusCode != 200) {
callback('error');
}
else {
json = json.body;
var text = (json && json.last_value_text) ? json.last_value_text : 'error';
var value = (json && json.last_value) ? json.last_value : 'error';
callback(text,value);
}
});
}
Invité- Invité
Re: plugin eedomus
Dans eeDomus:
1) Ajouter un actionneur HTTP
Nom : Porte ouverte fermée
Ajouter 2 états :
Etat 0
URL:
http://IP_AVATARSERVEUR:3000/Avatar/eedomus
paramètres:
?command=doorStatus&status="On"
Etat 1
URL:
http://IP_AVATARSERVEUR:3000/Avatar/eedomus
paramètres :
?command=doorStatus&status="Off"
Ensuite
Créer 2 règles pour le capteur
Règle 1:
Nom: porte ouverte
Critères:
<nom capteur> devient maintenant égal à "ouvert"
Actions: Porte ouverte fermée état 0
Règle 2:
Nom: porte fermée
Critères:
nom capteur devient maintenant égal à "fermée"
Actions: Porte ouverte fermée état 1
Ajouter dans le plugin eedomus dans le tableau de commandes (exports.action):
doorStatus : function() {
let tts = data.status == "On" ? La porte est ouverte" : "La porte est fermée";
Avatar.speak(tts, data.client, function() {
Avatar.Speech.end(data.client);
});
}
Ajouter aussi à la fin de la fonction exports.action en gras en dessous:
let room = setClient(data);
if (data.action.command != 'updateWidget' && data.action.command != 'doorStatus ') // pour éviter d'encombrer les messages du serveur
info("eeDomus:", data.action.command, "From:", data.client, "To:", room);
tblCommand[data.action.command]();
callback();
1) Ajouter un actionneur HTTP
Nom : Porte ouverte fermée
Ajouter 2 états :
Etat 0
URL:
http://IP_AVATARSERVEUR:3000/Avatar/eedomus
paramètres:
?command=doorStatus&status="On"
Etat 1
URL:
http://IP_AVATARSERVEUR:3000/Avatar/eedomus
paramètres :
?command=doorStatus&status="Off"
Ensuite
Créer 2 règles pour le capteur
Règle 1:
Nom: porte ouverte
Critères:
<nom capteur> devient maintenant égal à "ouvert"
Actions: Porte ouverte fermée état 0
Règle 2:
Nom: porte fermée
Critères:
nom capteur devient maintenant égal à "fermée"
Actions: Porte ouverte fermée état 1
Ajouter dans le plugin eedomus dans le tableau de commandes (exports.action):
doorStatus : function() {
let tts = data.status == "On" ? La porte est ouverte" : "La porte est fermée";
Avatar.speak(tts, data.client, function() {
Avatar.Speech.end(data.client);
});
}
Ajouter aussi à la fin de la fonction exports.action en gras en dessous:
let room = setClient(data);
if (data.action.command != 'updateWidget' && data.action.command != 'doorStatus ') // pour éviter d'encombrer les messages du serveur
info("eeDomus:", data.action.command, "From:", data.client, "To:", room);
tblCommand[data.action.command]();
callback();
Avatar- Messages : 81
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse
Re: plugin eedomus
bonjour, stephane , merci beaucoup pour ton aide, j'ai suivie les étapes de la configuration sur l'eedomus , ca n'a pas fonctionner je pense au niveau d'ajout des regles associé sur le capteur(detecteur ouverture/fermeture de porte) parceque je ne vois pas :
Actions: Porte ouverte fermée état 0 => je ne vois pas => état 0
Actions: Porte ouverte fermée état 0 => je ne vois pas => état 1
, je vois seulement cela : Fermer , Ouvrir , Mettre à jour , [Valeur autre périphérique]
erreur sur l'eedomus
Il y a 2 heures : Porte ouverte fermÃe entrÃe / Ouvrir en erreur. Aperçu du résultat
Aperçu
Could not resolve host: IP_AVATARSERVEUR
Actions: Porte ouverte fermée état 0 => je ne vois pas => état 0
Actions: Porte ouverte fermée état 0 => je ne vois pas => état 1
, je vois seulement cela : Fermer , Ouvrir , Mettre à jour , [Valeur autre périphérique]
erreur sur l'eedomus
Il y a 2 heures : Porte ouverte fermÃe entrÃe / Ouvrir en erreur. Aperçu du résultat
Aperçu
Could not resolve host: IP_AVATARSERVEUR
Invité- Invité
Re: plugin eedomus
Je crois qu'il faut que tu apprennes à utiliser ta box eedomus.
Y'a une documentation.
Je t'ai donné plus qu'un boulevard avec ce que je t'ai écris pour y arriver.
Et en passant, je suis sûr que tu n’utilises même pas le plugin eedomus que j'ai fait. Quel dommage. Bref.
Sinon, ensuite, tu dois apprendre à lire les messages d'erreur, je vois:
Could not resolve host: IP_AVATARSERVEUR
Google translate si tu ne comprends pas l'anglais.
Tu as donc réécris exactement ce que j'ai écris et donc IP_AVATARSERVEUR...
Ok...
Cherche un peu par toi même, je suis sûr que tu vas trouver, je t'ai donné tout ce dont tu as besoin, courage, essayes
A+
Y'a une documentation.
Je t'ai donné plus qu'un boulevard avec ce que je t'ai écris pour y arriver.
Et en passant, je suis sûr que tu n’utilises même pas le plugin eedomus que j'ai fait. Quel dommage. Bref.
Sinon, ensuite, tu dois apprendre à lire les messages d'erreur, je vois:
Could not resolve host: IP_AVATARSERVEUR
Google translate si tu ne comprends pas l'anglais.
Tu as donc réécris exactement ce que j'ai écris et donc IP_AVATARSERVEUR...
Ok...
Cherche un peu par toi même, je suis sûr que tu vas trouver, je t'ai donné tout ce dont tu as besoin, courage, essayes
A+
Avatar- Messages : 81
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse
Re: plugin eedomus
rebonjour stephane, je ne maitrisse pas encore bien la box eedomus
tu m'as donner tout ce qu'il faut , je le sais deja , et je te remercier pour cela
je t ai deja expliquer je suis revenus a la premiere version du plugin eedomus , la nouvelle version est ideal sur une tablette tactile, c'est pour cela j'ai voulus changer de materiels(appareils)
tu ne connais pas encore ma chaine youtube toute ma domotique se control par un seul assistant vocal : Avatar.ia et un seul plugin "eeDomus" de stephane bascher
je n'utilise pas autre chose: ni alexa , ni google home (que je n'utilise jamais sarah ,jarvis)
je n'ai pas réécris exactement ce que tu as écris , j ai fait copie/coller => http://IP_AVATARSERVEUR:3000/Avatar/eedomus
https://www.youtube.com/channel/UCWpKsHXi6pLnLwf5aWXMrrQ
tu m'as donner tout ce qu'il faut , je le sais deja , et je te remercier pour cela
je t ai deja expliquer je suis revenus a la premiere version du plugin eedomus , la nouvelle version est ideal sur une tablette tactile, c'est pour cela j'ai voulus changer de materiels(appareils)
tu ne connais pas encore ma chaine youtube toute ma domotique se control par un seul assistant vocal : Avatar.ia et un seul plugin "eeDomus" de stephane bascher
je n'utilise pas autre chose: ni alexa , ni google home (que je n'utilise jamais sarah ,jarvis)
je n'ai pas réécris exactement ce que tu as écris , j ai fait copie/coller => http://IP_AVATARSERVEUR:3000/Avatar/eedomus
https://www.youtube.com/channel/UCWpKsHXi6pLnLwf5aWXMrrQ
Invité- Invité
Re: plugin eedomus
voila ce que j'ai rajouter sur le fichier avec la premiere version du plugin eedomus :
j'ai un peu modier la variable room(fonction multiroom) , parceque etait deja declaré quand j'ai rajouter le code que tu m'as donner a mettre sur le fichier js
exports.action = function(data, callback){
if (!_eeDomusConf.eeIp || !_eeDomusConf.eeUser || !_eeDomusConf.eeSecret) {
error("eeDomus", "La configuration de la box domotique est manquante".red);
return callback();
}
var url;
let room = setClient(data); //var room;
var tblCommand = {
set: function(){
setEECommand(Config.modules.eeDomus.clients[room][data.action.periph], data.action.value);
Avatar.speak(Config.modules.eeDomus.answers, data.client, function() {
Avatar.Speech.end(data.client);
});
},
switchLight : function() {
switchLight(data.client, room, data.action.value, Config.modules.eeDomus.clients[room]['lightDimmer']);
},
..........................................................................................................................................................................................................................................................
getEtatImprimante: function() {
getEtatImprimante ((text, value) => {
info("En text:" + text);
info("En valeur: " + value);
Avatar.speak("il reste:" + value + "page", data.client, function() {
Avatar.Speech.end(data.client);
});
})
},
doorStatus :function () {
let tts = data.status == "On" ? "La porte est ouverte" : "La porte est fermée";
Avatar.speak(tts, data.client, function() {
Avatar.Speech.end(data.client);
});
}
};
if (data.action.room && data.action.room != 'current')
room = data.action.room;
else {
if (Avatar.isMobile(data.client))
room = Avatar.currentRoom ? Avatar.currentRoom : Config.default.client;
else
room = data.client;
}
/*info("eeDomus command:", data.action.command.yellow, "From:", data.client.yellow);
tblCommand[data.action.command]();
callback();
*/
//let room = setClient(data);
if (data.action.command != 'updateWidget' && data.action.command != 'doorStatus ') // pour éviter d'encombrer les messages du serveur
info("eeDomus:", data.action.command, "From:", data.client, "To:", room);
tblCommand[data.action.command]();
callback();
}
function setClient (data) {
var client = data.client;
if (data.action.room)
client = (data.action.room != 'current') ? data.action.room : (Avatar.currentRoom) ? Avatar.currentRoom : Config.default.client;
if (data.action.setRoom)
client = data.action.setRoom;
return client;
}
j'ai un peu modier la variable room(fonction multiroom) , parceque etait deja declaré quand j'ai rajouter le code que tu m'as donner a mettre sur le fichier js
exports.action = function(data, callback){
if (!_eeDomusConf.eeIp || !_eeDomusConf.eeUser || !_eeDomusConf.eeSecret) {
error("eeDomus", "La configuration de la box domotique est manquante".red);
return callback();
}
var url;
let room = setClient(data); //var room;
var tblCommand = {
set: function(){
setEECommand(Config.modules.eeDomus.clients[room][data.action.periph], data.action.value);
Avatar.speak(Config.modules.eeDomus.answers, data.client, function() {
Avatar.Speech.end(data.client);
});
},
switchLight : function() {
switchLight(data.client, room, data.action.value, Config.modules.eeDomus.clients[room]['lightDimmer']);
},
..........................................................................................................................................................................................................................................................
getEtatImprimante: function() {
getEtatImprimante ((text, value) => {
info("En text:" + text);
info("En valeur: " + value);
Avatar.speak("il reste:" + value + "page", data.client, function() {
Avatar.Speech.end(data.client);
});
})
},
doorStatus :function () {
let tts = data.status == "On" ? "La porte est ouverte" : "La porte est fermée";
Avatar.speak(tts, data.client, function() {
Avatar.Speech.end(data.client);
});
}
};
if (data.action.room && data.action.room != 'current')
room = data.action.room;
else {
if (Avatar.isMobile(data.client))
room = Avatar.currentRoom ? Avatar.currentRoom : Config.default.client;
else
room = data.client;
}
/*info("eeDomus command:", data.action.command.yellow, "From:", data.client.yellow);
tblCommand[data.action.command]();
callback();
*/
//let room = setClient(data);
if (data.action.command != 'updateWidget' && data.action.command != 'doorStatus ') // pour éviter d'encombrer les messages du serveur
info("eeDomus:", data.action.command, "From:", data.client, "To:", room);
tblCommand[data.action.command]();
callback();
}
function setClient (data) {
var client = data.client;
if (data.action.room)
client = (data.action.room != 'current') ? data.action.room : (Avatar.currentRoom) ? Avatar.currentRoom : Config.default.client;
if (data.action.setRoom)
client = data.action.setRoom;
return client;
}
Invité- Invité
Re: plugin eedomus
IP_AVATARSERVEUR... Halim....
Crois-tu que je connaisse l'adresse IP de ton serveur Avatar ?
Donc j'ai mis IP_AVATARSERVEUR pour que tu remplaces ca par ton adresse IP... IP_AVATARSERVEUR ne veut rien dire halim.
Bon allez, bosse un peu ce qu'il te manque sur eedomus sinon tu n'arriveras à rien.
Et entre nous, j'ai le plugin Google assistant... Et je le conseille.
Ca fait tous les petits plugin que tu essayes de faire toi même et beaucoup plus. Sans effort.
Et j'ai aussi un Google Nest Hub qui est connecté avec Avatar.
Tu brides ton assistant pour rien.
Crois-tu que je connaisse l'adresse IP de ton serveur Avatar ?
Donc j'ai mis IP_AVATARSERVEUR pour que tu remplaces ca par ton adresse IP... IP_AVATARSERVEUR ne veut rien dire halim.
Bon allez, bosse un peu ce qu'il te manque sur eedomus sinon tu n'arriveras à rien.
Et entre nous, j'ai le plugin Google assistant... Et je le conseille.
Ca fait tous les petits plugin que tu essayes de faire toi même et beaucoup plus. Sans effort.
Et j'ai aussi un Google Nest Hub qui est connecté avec Avatar.
Tu brides ton assistant pour rien.
Avatar- Messages : 81
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse
Sujets similaires
» Plugin eeDomus
» Plugin JoyeuxAnniverssaire
» plugin histoire
» Plugin la marseillaise
» Plugin AVATAR
» Plugin JoyeuxAnniverssaire
» plugin histoire
» Plugin la marseillaise
» Plugin AVATAR
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|