Projet TBH

Discuter de tout et de rien, c'est ici
slybreiz
Messages : 89
Enregistré le : 14 oct. 2015, 14:33

Re: Projet TBH

Message par slybreiz » 18 févr. 2017, 00:08

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

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


ganq
Messages : 354
Enregistré le : 01 avr. 2015, 14:20

Re: Projet TBH

Message par ganq » 20 févr. 2017, 19:27

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

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&param=udevice&idx='$idx'&svalue='$res

echo $url
curl $url 

url="http://"$ip'/json.htm?type=command&param=udevice&idx='$idx2'&nvalue=0&svalue='$res';0'
echo $url
curl $url 

## inscription dans le fichier précédent
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)

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 
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..
Raspbery pi B + avec rfxcom 433e ; Contrôles volets en di-o ; Capteur hygro/temp oregon & mysensor & attiny & esp; prises DIO ; thermostat NEST ; projet TBH (panel 2) ; suivi cuve eau de récupération.

Neutrino
Messages : 1002
Enregistré le : 10 juil. 2015, 15:42
Localisation : Challans (85)

Re: Projet TBH

Message par Neutrino » 20 févr. 2017, 22:51

Merci !
Et bien détaillé en plus ! ;)
Ma maison à plein d'IP ! :mrgreen:

ganq
Messages : 354
Enregistré le : 01 avr. 2015, 14:20

Re: Projet TBH

Message par ganq » 20 févr. 2017, 23:06

Neutrino a écrit :Merci !
Et bien détaillé en plus ! ;)
encore faut-il que ca fonctionne ;)
Raspbery pi B + avec rfxcom 433e ; Contrôles volets en di-o ; Capteur hygro/temp oregon & mysensor & attiny & esp; prises DIO ; thermostat NEST ; projet TBH (panel 2) ; suivi cuve eau de récupération.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


deennoo
Messages : 3978
Enregistré le : 25 janv. 2015, 02:00

Re: Projet TBH

Message par deennoo » 21 févr. 2017, 09:57

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

ganq
Messages : 354
Enregistré le : 01 avr. 2015, 14:20

Re: Projet TBH

Message par ganq » 21 févr. 2017, 10:07

deennoo a écrit :Perso j'ai remis une rom Archos smart Home sur la tablette.
et c'est mieux ?
Raspbery pi B + avec rfxcom 433e ; Contrôles volets en di-o ; Capteur hygro/temp oregon & mysensor & attiny & esp; prises DIO ; thermostat NEST ; projet TBH (panel 2) ; suivi cuve eau de récupération.

deennoo
Messages : 3978
Enregistré le : 25 janv. 2015, 02:00

Re: Projet TBH

Message par deennoo » 21 févr. 2017, 11:47

c'est sur mon blog ;-)
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr

scfrancis
Messages : 10
Enregistré le : 11 août 2015, 11:15

Re: Projet TBH

Message par scfrancis » 30 juin 2018, 11:37

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" :

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 commandArray
Et mon fichier "tbh.php" :

Code : 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);
?>
En espérant trouver de l'aide, par avance un énorme merci !!

Neutrino
Messages : 1002
Enregistré le : 10 juil. 2015, 15:42
Localisation : Challans (85)

Re: Projet TBH

Message par Neutrino » 30 juin 2018, 14:46

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...
Ma maison à plein d'IP ! :mrgreen:

scfrancis
Messages : 10
Enregistré le : 11 août 2015, 11:15

Re: Projet TBH

Message par scfrancis » 30 juin 2018, 15:25

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...
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 ?

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre