tdtool.py + tellstick net + sensorer

Moderator: Telldus

Post Reply
mwd123
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

tdtool.py + tellstick net + sensorer

Post by mwd123 »

Problemet löst.
Last edited by mwd123 on Sat Aug 11, 2012 7:42 am, edited 1 time in total.
mwd123
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by mwd123 »

eof
Last edited by mwd123 on Sat Aug 11, 2012 7:42 am, edited 2 times in total.
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
Jerbe
Posts: 26
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by Jerbe »

mwd123 wrote:Hej!

Har köpt mig en tellstick net och 2st oregon tempsensorer för att mäta temp och luftfuktighet. tanken med dessa är att jag ska kunna få in värdena i rrdtool som ritar grafer åt mig och presenterar på en liten lokal websida som jag har, men jag har inte lyckats klura ut hur jag listar sensorerna med tdtool.py, och sedan sparar värdena i en txtfil, är det någon som kan hjälpa mig lite med detta?

Jag har kommit en liten bit på väg, jag har lyckats få igång tdtool.py med telldus live, så jag kan nu slå av och på enheter med denna, men den kan inte lista sensorer, och dess data osv, är det någon som redan implementerat detta och kan tänka sig att låna ut sin kod? eller vet nån sida där det ev finns beskrivet hur man gör? jag håller just nu på med att mecka i api.telldus.com med sensorerna för att klura ut hur jag ska få in de i tdtool.py, men det går lite segt

Jag hittade även "poll-koden" men vet inte riktigt hur jag ska göra ändock.

Har hållit på nästan ett dygn i sträck nu och inte kommit någon vart, så alla tips är välkomna :-)

Tacksam för all hjälp om någon är intresserad.
Vad får du ut om du bara skriver "tdtool.py -l"?
kea
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by kea »

Lyckades du läsa ut temperaturen från dina sensorer med tdtool.py?
mwd123
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by mwd123 »

Hej

Nej jag lyckades inte med det tyvärr :( jag fick göra iordning en php-sida och wgetta infon därifrån, osv.

Men om någon fixar tdtool.py så att den kan läsa temp osv så vore det guld värt.
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
kea
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by kea »

Hej,

Jag öppnade en support ticket på tdtool.py och svaret var:
Kanske refererar du till vårt python exempel tdtool.py? Detta är endast ett exempel för att visa hur du från Python kan kommunicera med vårt API för Telldus Live!

Vill du bygga ut exemplet med stöd för sensorer får du gärna skicka tillbaka dina ändringar. Det finns säkert fler som kan ha nytta av dom.
Tydligen skall det gå att läsa ut temperaturen via api'n men att det inte är implementerat.

Det verkar som att vi har samma behov, läsa ut sensor värden i linux.

Verkar som att du lyckats köra ditt php script via wget, jag fastnar ännu på "We have no access token, connect us".... skulle du kunna posta ditt script?
mwd123
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by mwd123 »

Du måste hårdkoda in dina tokens i index.php, efter där det står PRIVATE KEY och PUBLIC KEY i begäran, så sätter du in din token efter. typ såhär:

if (isset($_GET['Sensor1-Info'])) {
$consumer = new HTTP_OAuth_Consumer(constant('PUBLIC_KEY'), constant('PRIVATE_KEY'),'xxxxxxxxxxxxxxxxxXXXXXXXXXXX', 'xxxxxxxxxxxxxxxxXXXXXXXXXXXXXXX');
$params = array('id'=> 22222);
$response = $consumer->sendRequest(constant('REQUEST_URI').'/sensor/info', $params, 'GET');
echo '<pre>';
echo( htmlentities($response->getBody()));
}
?><p><a href="index.php?Sensor2-Info">Sensor2 Info</a></p><?php

if (isset($_GET['Sensor2-Info'])) {
$consumer = new HTTP_OAuth_Consumer(constant('PUBLIC_KEY'), constant('PRIVATE_KEY'),'xxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX', 'xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX');
$params = array('id'=> 11111);
$response = $consumer->sendRequest(constant('REQUEST_URI').'/sensor/info', $params, 'GET');
echo '<pre>';
echo( htmlentities($response->getBody()));
}

du byter där ut xxxxxxxxxxxxxxxxx osv mot din token och token secret. och använder du ovanstående script så får du fylla i rätt id för dina sensorer oxå.

Mitt script som jag kör kör att wgetta och sedan spara ner värdena i en textfil för att läsa med rrdtool ser ut såhär:

#!/bin/bash
/bin/rm -rf /usr/local/bin/index.php?Sensor*

cd /usr/local/bin/
/usr/bin/wget http://192.168.0.32/test2/index.php?Sensor1-Info
/usr/bin/wget http://192.168.0.32/test2/index.php?Sensor2-Info

/bin/cat /usr/local/bin/index.php?Sensor1-Info | /bin/grep temp | /bin/sed 's/[^0-9.]*//g' > /srv/www/htdocs/rrdtool/temps0.txt
/bin/cat /usr/local/bin/index.php?Sensor1-Info | /bin/grep humidity | /bin/sed 's/[^0-9.]*//g' > /srv/www/htdocs/rrdtool/luftinne.txt

/bin/cat /usr/local/bin/index.php?Sensor2-Info | /bin/grep temp | /bin/sed 's/[^0-9.]*//g' > /srv/www/htdocs/rrdtool/temps1.txt
/bin/cat /usr/local/bin/index.php?Sensor2-Info | /bin/grep humidity | /bin/sed 's/[^0-9.]*//g' > /srv/www/htdocs/rrdtool/luftute.txt

Mvh
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
mwd123
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by mwd123 »

Och i index.php för att se id osv på sensorerna:

?><p><a href="index.php?listSensors">List Sensors</a></p><?php

if (isset($_GET['listSensors'])) {
$consumer = new HTTP_OAuth_Consumer(constant('PUBLIC_KEY'), constant('PRIVATE_KEY'),'xxxxxxxxxxxxxxxxxxxxxxxx, 'xxxxxxxxxxxxxxxxxxxxxx);
$params = array();
$response = $consumer->sendRequest(constant('REQUEST_URI').'/sensors/list', $params, 'GET');
echo '<pre>';
echo( htmlentities($response->getBody()));
}
}
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
kea
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by kea »

Lysande! Fick det att fungera, allt annat än rumsrent, men ändå bra!

Någon mörk kväll skall jag ta och städa upp min kod lite.

Jag valde att dumpa ut index.php via elinks, och så kör jag cut på datan.

Tusen tack!
kea
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by kea »

EDIT: 16.08.12 - Städade upp shell scriptet, kör xmllint endast en gång.

Tydligen var det en mörk kväll ikäll... :D

För att göra det enkelt valde jag att klämma in allt i en enda .php fil, denhär kan vem som helst testa, kör med telldus demo user.

Code: Select all

<?php

session_start();
require_once 'HTTP/OAuth/Consumer.php';

// Keys for demo user from http://api.telldus.com/keys/showToken
define('PUBLIC_KEY', 'FEHUVEW84RAFR5SP22RABURUPHAFRUNU');
define('PRIVATE_KEY', 'ZUXEVEGA9USTAZEWRETHAQUBUR69U6EF');
define('TOKEN', '0af6933e26366c308117c191784fb48e04eab090c');
define('TOKEN_SECRET', '6f206a2e194af3d4c3dc36e749edbd52');

define('URL', 'http://api.telldus.com'); //https should be used in production!
define('REQUEST_TOKEN', constant('URL').'/oauth/requestToken');
define('AUTHORIZE_TOKEN', constant('URL').'/oauth/authorize');
define('ACCESS_TOKEN', constant('URL').'/oauth/accessToken');
define('REQUEST_URI', constant('URL').'/xml');

define('BASE_URL', 'http://'.$_SERVER["SERVER_NAME"].dirname($_SERVER['REQUEST_URI']));

$consumer = new HTTP_OAuth_Consumer(constant('PUBLIC_KEY'), constant('PRIVATE_KEY'),
            constant('TOKEN'), constant('TOKEN_SECRET'));

// Get temperature for sensor with ID 105473
// OBS: Demo sensor 105473 är en dummy sensor, därför ger den alltid samma
// värden och last updated någon gång år 2013!!!
$params = array('id'=> 105473);
$response = $consumer->sendRequest(constant('REQUEST_URI').'/sensor/info', $params, 'GET');
echo( htmlentities($response->getBody()));

?>
Så rundar jag av med ett shell script som kör härligheten via elinks, och läser ut xml datan i shell variabler.

Code: Select all

# Get data from telldus and redirect output to file.
#  - cut to get rid of empty spaes before the xml data
#  - pipe through xmllint in order to get a grepable xml file
elinks http://MY_WEB_SERVER/single.php -dump  -dump-width 440 |\
 cut -c4- | xmllint --format - > out.xml

# Split the data into shell variables
LASTUPDATE=$(grep lastUpdated out.xml | cut -d" " -f4)
TEMP=$(grep temp out.xml | cut -d\" -f4)
HUMIDITY=$(grep humidity out.xml | cut -d\" -f4)

# Print the data
echo $(date) $LASTUPDATE $TEMP $HUMIDITY


Last edited by kea on Thu Aug 16, 2012 11:28 am, edited 5 times in total.
mwd123
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by mwd123 »

Aha, smidigt, kunde du köra den filen från shell eller hur gör du det?

Mvh
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
kea
Posts: 17
Joined: Fri Mar 17, 2023 9:45 am

Re: tdtool.py + tellstick net + sensorer

Post by kea »

Påtade in single.php på "min" linux webserver och kör sen elinks -dump...
esbemb
Posts: 6
Joined: Fri Mar 17, 2023 9:45 am

tdtool.py + tellstick net + sensorer

Post by esbemb »

tdtool.py med sensor funktioner finns, kolla engelska forum i kategorin general
Post Reply