Tasker: récupérer les infos d'un module
Tasker: récupérer les infos d'un module
bonjour,
j'ai recherché une méthode pour activer mon écran de tablette lorsque je suis dans ma cuisine (j'ai donc une tablette + (Tasker + secure setting) dessus + un capteur mouvement)
une methode qui marche pour beaucoup d'autres idées !
récupérer les valeurs comme indiquer ici http://192.168.x.x:8080/json.htm?type=d ... rid="votre idx" et choisir une ligne pour extraire ce qui nous intéresse, puis l'utiliser. Dans mon cas : garder l’écran de ma tablette activer lorsqu'il y a du mouvement dans ma cuisine.
Tasker et secure setting vont faire cela :
https://play.google.com/store/search?q= ... apps&hl=fr
https://play.google.com/store/apps/deta ... ugin&hl=fr
l'explication vient de @Ma pomme
Ma Pomme
2 novembre 2016 at 17:09
Je fais comme ça :
Get Http ça interroge l’état d’un périphérique avec une requête type 192.168.0.1…… en bas de cette action tu as « Type Mime » là tu mets text/xml et en dessous « Fichier de sortie » tu mets par exemple Tasker/température.xml
Lire une ligne, ce qui va lire la ligne qui t’intéresse dans le fichier précédemment créé, en dessous tu mets la ligne concernée (par exemple 1) et le résultat « Dans une variable » %Temperature par exemple
Pour terminer tu fais changer le widget que tu auras créé (Température par exemple) et dans le libellé tu mets ta variable %Temperature °C
Tu peux même vocaliser cette variable avec un « dire »
Donc dans un seule tâche avec trois actions tu as un widget sur ton bureau avec le résultat que tu veux.
J’utilise un profil qui lorsque l’écran est allumé cette tâche est exécutée. Comme ça j’ai en temps réel les résultats que je souhaite (Températures, états de périphériques…..)
Regarde ici j’ai fait quelques tutos
https://domotiquetechnoseb27.wordpress. ... eview=true
source de l'info https://easydomoticz.com/lien-tasker-domoticz/
j’espère que ça pourra vous aider !
j'ai recherché une méthode pour activer mon écran de tablette lorsque je suis dans ma cuisine (j'ai donc une tablette + (Tasker + secure setting) dessus + un capteur mouvement)
une methode qui marche pour beaucoup d'autres idées !
récupérer les valeurs comme indiquer ici http://192.168.x.x:8080/json.htm?type=d ... rid="votre idx" et choisir une ligne pour extraire ce qui nous intéresse, puis l'utiliser. Dans mon cas : garder l’écran de ma tablette activer lorsqu'il y a du mouvement dans ma cuisine.
Tasker et secure setting vont faire cela :
https://play.google.com/store/search?q= ... apps&hl=fr
https://play.google.com/store/apps/deta ... ugin&hl=fr
l'explication vient de @Ma pomme
Ma Pomme
2 novembre 2016 at 17:09
Je fais comme ça :
Get Http ça interroge l’état d’un périphérique avec une requête type 192.168.0.1…… en bas de cette action tu as « Type Mime » là tu mets text/xml et en dessous « Fichier de sortie » tu mets par exemple Tasker/température.xml
Lire une ligne, ce qui va lire la ligne qui t’intéresse dans le fichier précédemment créé, en dessous tu mets la ligne concernée (par exemple 1) et le résultat « Dans une variable » %Temperature par exemple
Pour terminer tu fais changer le widget que tu auras créé (Température par exemple) et dans le libellé tu mets ta variable %Temperature °C
Tu peux même vocaliser cette variable avec un « dire »
Donc dans un seule tâche avec trois actions tu as un widget sur ton bureau avec le résultat que tu veux.
J’utilise un profil qui lorsque l’écran est allumé cette tâche est exécutée. Comme ça j’ai en temps réel les résultats que je souhaite (Températures, états de périphériques…..)
Regarde ici j’ai fait quelques tutos
https://domotiquetechnoseb27.wordpress. ... eview=true
source de l'info https://easydomoticz.com/lien-tasker-domoticz/
j’espère que ça pourra vous aider !
Re: Tasker: récupérer les infos d'un module
Personnellement pour communiquer entre tasker et domoticz je préfère utiliser du javascript qui est pris en charge nativement par Tasker. C'est beaucoup moins laborieux que de se taper tout le développement dans Tasker.
Sinon si ta tablette "observe" toute ta cuisine tu peux utiliser l'appli Android "Webcam IP" et récupérer l'intent "motion" qu'elle envoie quand un mouvement est détecté
Si ça t’intéresse je peux fouiller et retrouver ces scripts que je n'utilise plus (ça tiens en quelques lignes). Maintenant je me suis fait une interface web qui est affichée quand l'écran de la tablette est allumé (en utilisant une scène Tasker et un Webview).
Sinon si ta tablette "observe" toute ta cuisine tu peux utiliser l'appli Android "Webcam IP" et récupérer l'intent "motion" qu'elle envoie quand un mouvement est détecté
Si ça t’intéresse je peux fouiller et retrouver ces scripts que je n'utilise plus (ça tiens en quelques lignes). Maintenant je me suis fait une interface web qui est affichée quand l'écran de la tablette est allumé (en utilisant une scène Tasker et un Webview).
Re: Tasker: récupérer les infos d'un module
Salut
Oui je veux bien tout ca !
Le javascript je n'y connais rien mais je vais pouvoir apprendre des choses je pense avec tes scripts.
Pour le webcam ip ma tablette est plutôt ancienne donc j'essaye de pas trop la charger ...
Apres j'ai aussi pensé a utiliser une appli qui lit les notification notification listener je crois. Si j'ai une notification de mon detecteur de mouvement ca allume l'ecran c'est une solution plus instantané que la repetiton du profile toute les 2 min (on peut pas mettre moins)
Oui je veux bien tout ca !
Le javascript je n'y connais rien mais je vais pouvoir apprendre des choses je pense avec tes scripts.
Pour le webcam ip ma tablette est plutôt ancienne donc j'essaye de pas trop la charger ...
Apres j'ai aussi pensé a utiliser une appli qui lit les notification notification listener je crois. Si j'ai une notification de mon detecteur de mouvement ca allume l'ecran c'est une solution plus instantané que la repetiton du profile toute les 2 min (on peut pas mettre moins)
Re: Tasker: récupérer les infos d'un module
Je te rassure pas besoin d'être un fin développeur (d'ailleurs je n'en suis pas un) pour comprendre le Javascript. JS est un langage super rependu et le net foisonne de solutions à tous tes problèmes potentiels.
Voici par exemple un script qui permet de récupérer des info des capteurs. C'est pas forcément bien codé (je n'avais pas prévu de le partager) mais c'est parfaitement fonctionnel du moment que tu l'adapte à ta configuration.
Je te conseil de copier/coller le code dans un vrais éditeur avec coloration syntaxique (notepad++, atom, sublimetext, etc.) ça sera plus simple que de lire sur le forum qui met tout de la même couleur
. Tu connais peu-être déjà mais je préfère préciser.
J'ai pris la peine de commenter le code autant que possible, si il y a des points à éclaircir fait moi signe.
Voici par exemple un script qui permet de récupérer des info des capteurs. C'est pas forcément bien codé (je n'avais pas prévu de le partager) mais c'est parfaitement fonctionnel du moment que tu l'adapte à ta configuration.
Je te conseil de copier/coller le code dans un vrais éditeur avec coloration syntaxique (notepad++, atom, sublimetext, etc.) ça sera plus simple que de lire sur le forum qui met tout de la même couleur
Code : Tout sélectionner
//--------------------------------------------------
// Configuration
//--------------------------------------------------
var server = '192.168.0.5:8080'; // Adresse + port du serveur
var blankvalue = "-"; //Valeur par défaut si le résultat est 'undefined'
// ATTENTION >> DESCENDRE DIRECTEMENT DANS LA SECTION "CODE A ADAPTER"
//--------------------------------------------------
// NE PAS MODIFIER LA SECTION SUIVANTE
//--------------------------------------------------
//{
// Fonction permettant de récupérer un résultat en JSON
server = "http://" + server + "/json.htm?";
function get_http(url) {
var http = new XMLHttpRequest();
http.open("GET", url, false);
http.send();
return(JSON.parse(http.responseText));
}
//Fonction permettant de récupérer une valeur précise d'un device
function get_device(idx, ext) {
url = server + "type=devices&rid=" + idx;
var result = get_http(url).result[0][ext];
if (typeof result == 'undefined') {
result = blankvalue;
}
return result;
}
// Fonction permettant de compter le nombre switch allumés
//'switches' doit est un tableau contenant la liste des devices sous la forme '[1, 2, 3, 4, etc.]'
// On pourrait créer une autre fonction calquée sur celle-ci pour compter le nombre de volet ouvert ou de radiateur en route par exemple :)
function count_switch_on(switches) {
var arr = [];
var result = 0;
var index;
for (index = 0; index < switches.length; ++index) {
arr = get_device(switches[index]);
if (arr.Status != "Off") result += 1;
}
return result;
}
//}
//--------------------------------------------------
// CODE A ADAPTER
//--------------------------------------------------
//
// - Pour récupérer les informations d'un périphérique. "valeur" étant le libelé JSON de l'info à récupérer
// get_device(idx_dispositif, valeur)
//
// - Si on veux faire appel à une variable globale de Tasker on utilise la fonction suivante :
// /!\ Si problème : essayer avec tk.global() /!\
//
// global("VARIABLE_GLOBALE")
//
// - Si on veux créer/modifier une variable globale on fait (les ' autour de VARIABLE_GLOBALE sont importants):
// setGlobal('VARIABLE_GLOBALE', variable_javascript);
//
// --Initialisation des variables--
// En les déclarant elle seront utilisables dans Tasker après l'exécution du script via "%nom_de_variable"
// Dans l'exemple suivant la variable JS 'alarm_status' sera utilisable dans Tasker sous le nom '%alarm_status'
// Si on veux l'utiliser dans une autre tâche Tasker (ou dans un plugin comme Zooper) il faudra la rendre Globale avec la func setGlobal
var salon_switchs_on = count_switch_on([3, 5, 10, 12]);
var alarm_status = get_device(10, "Status");
var salon_temp = get_device(5, "Temp"); //Pour la valeur 'température' d'un capteur
var salon_hum = get_device(5, "Humidity")+"%"; //Pour la valeur 'humidité' d'un capteur
var consoelec_inst = get_device(6, "Usage")+""; //Conso Electrique instantanée
var consoelec_count = get_device(6, "CounterToday")+""; //Conso Electrique journalière
Alors moi j'utilise une TF300T du temps jadis et je reconnais qu'elle peut avoir des coups de bourre. Pour éviter ça il vaut mieux augmenter le délais de détection vers les 30 secondes ... ou plus (le mini étant 3 secondes si mes souvenirs sont bon - pour l'appli 'Webcam IP').alexbi a écrit : Pour le webcam ip ma tablette est plutôt ancienne donc j'essaye de pas trop la charger ...
Alors là tu as pas mal de solutions, notamment des plugins pour Tasker Autonotification pour lire les notifications ou AutoRemote qui permet à Tasker d'être contrôlé avec des requettes HTTP. Autoremote est plus adapté je trouve. Moi je m'en sert pour faire "causer" ma tablette.alexbi a écrit : Apres j'ai aussi pensé a utiliser une appli qui lit les notification notification listener je crois. Si j'ai une notification de mon detecteur de mouvement ca allume l'ecran c'est une solution plus instantané que la repetiton du profile toute les 2 min (on peut pas mettre moins)
Re: Tasker: récupérer les infos d'un module
Super merci a toi je vais etudier tout ca
Autoremote je vais essayer ca je pense
Merci a toi
Autoremote je vais essayer ca je pense
Merci a toi
Re: Tasker: récupérer les infos d'un module
a ouai ....
autoremote c'est ça qu'il me fallait !!
tu l'installes, tu donne un nom a ta tablette, tu obtiens une adresse url, tu colle cette url dans ton navigateur, tu écris ton mot déclencheur, tu copie l'url créée et tu l'utilise ! et ça fonctionne très très bien
perso pour ma solution j'ai mis l'url directement dans "editer" de mon capteur de mouvement, action on = https xxxxxxxxxxxx (url de autoremote créée)
dès que j'ai du mouvement dans ma cuisine la tablette s'allume
je laisse le liens qui m'a aidé pour les autres
http://techno-bidouille.com/autoremote- ... er-tasker/
autoremote c'est ça qu'il me fallait !!
tu l'installes, tu donne un nom a ta tablette, tu obtiens une adresse url, tu colle cette url dans ton navigateur, tu écris ton mot déclencheur, tu copie l'url créée et tu l'utilise ! et ça fonctionne très très bien
perso pour ma solution j'ai mis l'url directement dans "editer" de mon capteur de mouvement, action on = https xxxxxxxxxxxx (url de autoremote créée)
dès que j'ai du mouvement dans ma cuisine la tablette s'allume
je laisse le liens qui m'a aidé pour les autres
http://techno-bidouille.com/autoremote- ... er-tasker/
Re: Tasker: récupérer les infos d'un module
En effet c'est sympa sauf que si tu n'a plus de connexion internet ça fonctionne plus.
Autoremote peut fonctionner en local, par contre la je n'y arrive pas. Il disent d'activer la prise en charge du wifi dans tasker, j'ai fouillé partout, y compris dans le plugin Autoremote et je ne trouve pas.
Autoremote peut fonctionner en local, par contre la je n'y arrive pas. Il disent d'activer la prise en charge du wifi dans tasker, j'ai fouillé partout, y compris dans le plugin Autoremote et je ne trouve pas.
Re: Tasker: récupérer les infos d'un module
Bonjour,
Je remonte ce sujet car cela m'intéresse.
Je suis novice en la matière.
Mais comment exécuter un script .js dans domoticz ?
J'ai cherché mais pas trouvé...
Merci de ton aide.
Je remonte ce sujet car cela m'intéresse.
Je suis novice en la matière.
Mais comment exécuter un script .js dans domoticz ?
J'ai cherché mais pas trouvé...
Merci de ton aide.
RaspberryPi - RFLink - Zwave - WH2600
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Re: Tasker: récupérer les infos d'un module
J'ai trouvé une partie
Il m'a fallu installer
Ensuite pour visualiser la valeur sur l'écran j'ai ajouté :
Mon but étant de récupérer la vitesse du vent (speed) dans mon idx=43
Une partie du script ne m'intéresse pas
Maintenant je voudrais sauvegarder cette valeur " out_speed" dans mon idx=117 dans le champ "Data"
Je cherche
Si quelqu’un a une idée ?
Merci
Il m'a fallu installer
Code : Tout sélectionner
sudo npm install xmlhttprequestCode : Tout sélectionner
console.log(out_speed);Une partie du script ne m'intéresse pas
Code : Tout sélectionner
// https://easydomoticz.com/forum/viewtopic.php?t=2936
//--------------------------------------------------
// Configuration
//--------------------------------------------------
var server = '192.168.1.xxx:xxxx'; // Adresse + port du serveur
var blankvalue = "-"; //Valeur par défaut si le résultat est 'undefined'
// ATTENTION >> DESCENDRE DIRECTEMENT DANS LA SECTION "CODE A ADAPTER"
//--------------------------------------------------
// NE PAS MODIFIER LA SECTION SUIVANTE
//--------------------------------------------------
//{
// Fonction permettant de récupérer un résultat en JSON
server = "http://" + server + "/json.htm?";
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
function get_http(url) {
var http = new XMLHttpRequest();
http.open("GET", url, false);
http.send();
return(JSON.parse(http.responseText));
}
//Fonction permettant de récupérer une valeur précise d'un device
function get_device(idx, ext) {
url = server + "type=devices&rid=" + idx;
var result = get_http(url).result[0][ext];
if (typeof result == 'undefined') {
result = blankvalue;
}
return result;
}
// Fonction permettant de compter le nombre switch allumés
//'switches' doit est un tableau contenant la liste des devices sous la forme '[1, 2, 3, 4, etc.]'
// On pourrait créer une autre fonction calquée sur celle-ci pour compter le nombre de volet ouvert ou de radiateur en route par exemple :)
// function count_switch_on(switches) {
// var arr = [];
// var result = 0;
// var index;
// for (index = 0; index < switches.length; ++index) {
// arr = get_device(switches[index]);
// if (arr.Status != "Off") result += 1;
// }
// return result;
//}
//}
//--------------------------------------------------
// CODE A ADAPTER
//--------------------------------------------------
//
// - Pour récupérer les informations d'un périphérique. "valeur" étant le libelé JSON de l'info à récupérer
// get_device(idx_dispositif, valeur)
//
// - Si on veux faire appel à une variable globale de Tasker on utilise la fonction suivante :
// /!\ Si problème : essayer avec tk.global() /!\
//
// global("VARIABLE_GLOBALE")
//
// - Si on veux créer/modifier une variable globale on fait (les ' autour de VARIABLE_GLOBALE sont importants):
// setGlobal('VARIABLE_GLOBALE', variable_javascript);
//
// --Initialisation des variables--
// En les déclarant elle seront utilisables dans Tasker après l'exécution du script via "%nom_de_variable"
// Dans l'exemple suivant la variable JS 'alarm_status' sera utilisable dans Tasker sous le nom '%alarm_status'
// Si on veux l'utiliser dans une autre tâche Tasker (ou dans un plugin comme Zooper) il faudra la rendre Globale avec la func setGlobal
var out_speed = get_device(43, "Speed"); //Pour la valeur 'Speed' d'un capteur
console.log(out_speed);
// var salon_switchs_on = count_switch_on([3, 5, 10, 12]);
// var alarm_status = get_device(10, "Status");
//var salon_temp = get_device(5, "Temp"); //Pour la valeur 'température' d'un capteur
//var salon_hum = get_device(5, "Humidity")+"%"; //Pour la valeur 'humidité' d'un capteur
//var consoelec_inst = get_device(6, "Usage")+""; //Conso Electrique instantanée
//var consoelec_count = get_device(6, "CounterToday")+""; //Conso Electrique journalière
Je cherche
Si quelqu’un a une idée ?
Merci
RaspberryPi - RFLink - Zwave - WH2600
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Re: Tasker: récupérer les infos d'un module
Salut Doudy,
Ça fait des lustres que je ne me suis pas connecté ici, je suis passé à Home Assistant
. Ce script est prévu pour fonctionner avec Tasker sous Android, toi tu semble vouloir l'utiliser sous linux avec nodejs j'imagine. Je pense que c'est possible mais je ne pourrai pas t'aider.
Bon chance
Ça fait des lustres que je ne me suis pas connecté ici, je suis passé à Home Assistant
Bon chance