Projet TBH
Re: Projet TBH
Idem je serais intéresser
domoticz on synology dsm 6 DS109(hack DS112j) + RXFcom433E / Archos Home connecte / 4 * HC ECR-100 / Archos TBH / sonde température Alecto WS1700 / prise chacon
Re: Projet TBH
voici une premiere version du tuto. Comme j'ai un peu galéré pour le faire, il est possible que j'ai oublié quelque chose, mais le principe est là.
N'hésitez à me donner vos erreurs, je corrigerai au fur et à mesure.
Alors, il nous faut
le root : avec kingoroot https://play.google.com/store/apps/deta ... tplus.king
busybox avec Busybox https://play.google.com/store/apps/deta ... on.busybox (au choix, il y en a plusieurs)
Le curl avec https://play.google.com/store/apps/deta ... ywong.curl
Crond avec https://play.google.com/store/apps/deta ... nscheduler
installer tout cela. Pour crond, on peut laisser vide ou taper le script plus bas (qui commence par 5 *, sauvegarder et lancer)
un terminal avec terminal emulator : https://play.google.com/store/apps/deta ... ndroidterm
et airdroid pour taper les commandes ici : https://play.google.com/store/apps/deta ... d.airdroid et la version PC ou autre
Copier le code suivant dans le repertoire Domoticz de votre carte sd après avoir modifier la partie données (ip, idx des compteurs:
Pour faire cela, moi j'ai installé un serveur ssh (https://play.google.com/store/apps/deta ... s.sshdroid ) et un copier coller ftp
Dans terminal editor taper les commandes suivantes
Dans terminal emulator, taper les commandes suivantes : (les commandes après les ## ne sont que des commentaires, il ne faut pas les taper)
Il doit y avoir un retour ok suite à l'avant dernière ligne (même 2
)
Et ca devrait fonctionner tout le temps.
Reste à vérifier lors d'un reboot car le repertoire /root est réinitialisé à chaque fois..
N'hésitez à me donner vos erreurs, je corrigerai au fur et à mesure.
Alors, il nous faut
le root : avec kingoroot https://play.google.com/store/apps/deta ... tplus.king
busybox avec Busybox https://play.google.com/store/apps/deta ... on.busybox (au choix, il y en a plusieurs)
Le curl avec https://play.google.com/store/apps/deta ... ywong.curl
Crond avec https://play.google.com/store/apps/deta ... nscheduler
installer tout cela. Pour crond, on peut laisser vide ou taper le script plus bas (qui commence par 5 *, sauvegarder et lancer)
un terminal avec terminal emulator : https://play.google.com/store/apps/deta ... ndroidterm
et airdroid pour taper les commandes ici : https://play.google.com/store/apps/deta ... d.airdroid et la version PC ou autre
Copier le code suivant dans le repertoire Domoticz de votre carte sd après avoir modifier la partie données (ip, idx des compteurs:
Pour faire cela, moi j'ai installé un serveur ssh (https://play.google.com/store/apps/deta ... s.sshdroid ) et un copier coller ftp
Code : Tout sélectionner
#!/system/bin/sh
## Guillaume Anquetil - puissance.sh
## envoi de données de la tablette TBH vers domoticz (pi)
## via un cron :
## * * * * * sudo /root/puissance.sh
## données
ip='ip:8080'
idx='185' ## compteur electrique
idx2='184' ## puissance electrique
## fin des données
bdd='/data/data/com.ecoco2.tbh/databases/database.db'
cd /mnt/external_sd/Domoticz
# TIMESTAMP =`date +%Y%m%d%T`
heure=$(date +%Y%m%d%T)
## récupération des 2 dernieres données (date + puissance) dans une variable
sql='"select maxpower from fludia_index order by id desc limit 1;"'
res=$(sqlite3 $bdd "select maxpower from fludia_index order by id desc limit 1;")
echo $heure - $res >> log.puissance.sh
## récupérer anciences dates dans fichier puis, envoi de la moyenne vers domoticz via script json
url="http://"$ip'/json.htm?type=command¶m=udevice&idx='$idx'&svalue='$res
echo $url
curl $url
url="http://"$ip'/json.htm?type=command¶m=udevice&idx='$idx2'&nvalue=0&svalue='$res';0'
echo $url
curl $url
## inscription dans le fichier précédent
Dans terminal emulator, taper les commandes suivantes : (les commandes après les ## ne sont que des commentaires, il ne faut pas les taper)
Code : Tout sélectionner
su # mode admin (attention, cela ouvre toutes les possibilités, même de brick)
mount -o rw,remount /dev/stl12 /system ## monte le dossier /system en écriture
echo "* * * * * /root/puissance.sh" > /data/crontab/root ## ecrit le fichier crond qui sera effectué toutes les minutes
chmod +x /mnt/external_sd/Domoticz/puissance.sh ## ajoute la possibilité d'éxécutation du script
cd /root ## va dans le répertoire /root
cp /mnt/external_sd/Domoticz/puissance.sh . ## copie le script de la carte sd vers /root
chmod +x /data/crontab/root ##ajoute la possibilité d'éxécuter le script du crond
crond -b -c /data/crontab ## lance le cron
echo "crond -b -c /data/cronjob" > /system/etc/init.d ## "ecrit la 1ere ligne du script au démarrage de la tablette : le cron
echo "cp /mnt/external_sd/Domoticz/puissance.sh /root/." >> /system/etc/init.d ## écrit la 2nde ligne (copie le script dans /root)
mount -o ro,remount /dev/stl12 /system ## remet le /system en lecture seule
sh puissance.sh ## execute puissance.sh
exit ## sort du mode root Et ca devrait fonctionner tout le temps.
Reste à vérifier lors d'un reboot car le repertoire /root est réinitialisé à chaque fois..
domoticien amateur option bidouille
Re: Projet TBH
Merci !
Et bien détaillé en plus !
Et bien détaillé en plus !
Re: Projet TBH
encore faut-il que ca fonctionneNeutrino a écrit :Merci !
Et bien détaillé en plus !
domoticien amateur option bidouille
Re: Projet TBH
Perso j'ai remis une rom Archos smart Home sur la tablette.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
http://www.domo-attitude.fr
Re: Projet TBH
et c'est mieux ?deennoo a écrit :Perso j'ai remis une rom Archos smart Home sur la tablette.
domoticien amateur option bidouille
Re: Projet TBH
c'est sur mon blog 
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
http://www.domo-attitude.fr
Re: Projet TBH
Bonjour à tous,
Je me permet de déterrer ce sujet, car j'essai, en vain, de faire remonter les infos du site TBH dans domoticz.
J'utilise la version 4.9700 de Domoticz sur un NAS Synology.
J'ai injecté le fichier "script_time_tbhweb.lua" dans "/usr/local/domoticz/var/scripts/lua" et "tbhweb.php" dans /usr/local/domoticz/var/scripts/" et j'obtiens le message d'erreur suivant : "2018-06-30 11:20:02.010 Error: EventSystem: in /usr/local/domoticz/var/scripts/lua/script_time_tbhweb.lua: /usr/local/domoticz/var/scripts/lua/script_time_tbhweb.lua:14: attempt to index global 'tempHygroTBH' (a nil value)"
Voici mon fichier "script_time_tbhweb.lua" :
Et mon fichier "tbh.php" :
En espérant trouver de l'aide, par avance un énorme merci !!
Je me permet de déterrer ce sujet, car j'essai, en vain, de faire remonter les infos du site TBH dans domoticz.
J'utilise la version 4.9700 de Domoticz sur un NAS Synology.
J'ai injecté le fichier "script_time_tbhweb.lua" dans "/usr/local/domoticz/var/scripts/lua" et "tbhweb.php" dans /usr/local/domoticz/var/scripts/" et j'obtiens le message d'erreur suivant : "2018-06-30 11:20:02.010 Error: EventSystem: in /usr/local/domoticz/var/scripts/lua/script_time_tbhweb.lua: /usr/local/domoticz/var/scripts/lua/script_time_tbhweb.lua:14: attempt to index global 'tempHygroTBH' (a nil value)"
Voici mon fichier "script_time_tbhweb.lua" :
Code : Tout sélectionner
commandArray = {}
---récupère l'heure en minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
hours=tonumber(os.date('%H',time))
maintenant=tonumber(hours*60+minutes)
if(maintenant%10 ==0 )then
local appelTBH=assert(io.popen("php /usr/local/domoticz/var/scripts/tbhweb.php login@login password"))
local tempHyroTBH = appelTBH:read('*all')
appelTBH:close()
tempInt,hygroInt,tempExt,hygroExt = tempHyroTBH:match("([^;]+);([^;]+);([^;]+);([^;]+)")
print(tempInt.." "..hygroInt.." "..tempExt.." "..hygroExt)
--Ensuite remplissez votre commandArray avec les données recueillies :)
end
return commandArrayCode : Tout sélectionner
<?php
///////////////////////////////////////////////
// Slush Coin Check
///////////////////////////////////////////////
if($argc == 3) {
$username = $argv[1];
$password = $argv[2];
} else {
die("Usage: username password\n");
}
///////////////////////////////////////////////
// Create the temporary cookie
///////////////////////////////////////////////
$cookiefile = tempnam("", "slush_");
///////////////////////////////////////////////
// Get CSRF
///////////////////////////////////////////////
$url = "https://mon.projet-tbh.fr/accounts/login/?next=/";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
preg_match("/<input type='hidden' name='csrfmiddlewaretoken' value='(.*?)' \/>/", $data, $csrf);
///////////////////////////////////////////////
// Login to Slush
///////////////////////////////////////////////
$url = "https://mon.projet-tbh.fr/accounts/login/?next=/";
$postfields = "csrfmiddlewaretoken=$csrf[1]&username=$username&password=$password";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
$data = curl_exec($curl);
curl_close($curl);
///////////////////////////////////////////////
// Visit earnings page
///////////////////////////////////////////////
$url = "https://mon.projet-tbh.fr/confort/data-confort-instantane";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
///////////////////////////////////////////////
// Capture current temperature
///////////////////////////////////////////////
try{
$temperature = json_decode($data, true);
if(isset($temperature['temp_int']) and isset($temperature['hygro_int']) and isset($temperature['temp_ext']) and isset($temperature['hygro_ext'])) {
echo $temperature['temp_int'] . ";" . $temperature['hygro_int'] . ";" . $temperature['temp_ext'] . ";" . $temperature['hygro_ext'];
} else {
echo null;
}
} catch(Exception $e){
echo($e);
}
///////////////////////////////////////////////
// Clean up cookie
///////////////////////////////////////////////
unlink($cookiefile);
?>Re: Projet TBH
Bonjour,
Cela ressemble à un problème de login ou mot de passe incorrect.
Perso, j'ai rangé le bordel depuis un moment.
J'ai juste gardé la tablette comme afficheur et installé la rom Archos.
Maintenant, je lui envoie des ordres via pushBullet qu'elle transmet à Domoticz (un peu comme une passerelle SMS, mais via PB).
Que de promesses non tenues, de dates repoussées et finalement, aucune suite...
Cela ressemble à un problème de login ou mot de passe incorrect.
Perso, j'ai rangé le bordel depuis un moment.
J'ai juste gardé la tablette comme afficheur et installé la rom Archos.
Maintenant, je lui envoie des ordres via pushBullet qu'elle transmet à Domoticz (un peu comme une passerelle SMS, mais via PB).
Que de promesses non tenues, de dates repoussées et finalement, aucune suite...
Re: Projet TBH
Dac merci pour ta réponse... Juste une précision au sujet des identifiants, ils sont à mettre dans le fichier .lua ? Mon identifiant est mon adresse mail, serait ce ça le problème ?Neutrino a écrit :Bonjour,
Cela ressemble à un problème de login ou mot de passe incorrect.
Perso, j'ai rangé le bordel depuis un moment.
J'ai juste gardé la tablette comme afficheur et installé la rom Archos.
Maintenant, je lui envoie des ordres via pushBullet qu'elle transmet à Domoticz (un peu comme une passerelle SMS, mais via PB).
Que de promesses non tenues, de dates repoussées et finalement, aucune suite...