New user's registration have been closed due to high spamming and low trafic on this forum. Please contact forum admins directly if you need an account. Thanks !

Homeautomation 1.0

How are you using your Bubba? Got ideas for a cool modification? Share!
Locked
tobbenet
Posts: 16
Joined: 25 Jun 2008, 08:30

Re: Homeautomation 1.0

Post by tobbenet »

Hej!

Skulle bara meddela att jag nu har en fungerande installation av HomeAutomation! Fungerar klockrent! Stort tack för hjälpen!
MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson »

Tack Daniel. Jag kollar av punkterna:

1. Okej, stämmer perfekt !
2. Filen local.conf finns inte i katalogen /etc/ld.so.conf.d. Där finns endast en fil, nämligen powerpc-linux-gnu.conf.
3. Har ej kört denna pga. punkt 2.

Tips hur denna local.conf fil borde se ut emottages tacksamt. (Jag har sökt igenom hela disken, och (kanske) en smula märkligt så hittar jag ingen fil som heter local.conf. Min tanke var att helt sonika "sno" tips från någon annan local.conf fil, men ack där gick jag bet. )


@tobbenet: Jag hoppas snart vara där du befinner dig..... :)
tobbenet
Posts: 16
Joined: 25 Jun 2008, 08:30

Re: Homeautomation 1.0

Post by tobbenet »

Filen ska bara innehålla raden

Code: Select all

/usr/local/lib
MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson »

@tobbenet :
Tackar!

@Daniel:
Jodå, det fungerar bättre nu. Nu kan jag köra tdtool från vilken katalog som helst och tända och släcka min device via tdtool. Dock så får jag fortfarande timeout samt meddelandet Turning off device 1, Magnus sovrum - An error occurred when communication with TellStick.

Det är en annan sak som jag undrar lite över. Från webgui:t så kan man välja Uppdatera från Tellstick . Vad är det meningen ska hända här? För mig händer det ingenting (förutom en screen refresh). Jag antar att avsaknaden av devicer (jag ser ingen alls) beror på att min installation av tdtool fortfarande inte är 100%-ig.... :oops:
DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM »

MagnusJonsson wrote:Jodå, det fungerar bättre nu. Nu kan jag köra tdtool från vilken katalog som helst och tända och släcka min device via tdtool. Dock så får jag fortfarande timeout samt meddelandet Turning off device 1, Magnus sovrum - An error occurred when communication with TellStick.
Hemligt. Sökte lite och det bästa jag kan hitta är denna forumtråd, där det dock inte verkar finnas några direkta svar. Någonting med kernelversioner som inte funkar. Hmmm... Men tänds lampan då eller strejkar det helt?

http://www.telldus.se/forum/viewtopic.php?t=391
MagnusJonsson wrote:Det är en annan sak som jag undrar lite över. Från webgui:t så kan man välja Uppdatera från Tellstick . Vad är det meningen ska hända här? För mig händer det ingenting (förutom en screen refresh). Jag antar att avsaknaden av devicer (jag ser ingen alls) beror på att min installation av tdtool fortfarande inte är 100%-ig.... :oops:
En "uppdatera från tellstick" hämtar in alla enheter som du har konfat upp i din tellstick.conf. Det den gör är i princip att köra en "tdtool -l" och pula in alla enheter i sin egen konf. Så har du bara några enheter i tellstick.conf så ska de dyka upp i homeautomation efter ett tryck på knappen.

/Daniel
MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson »

Ja, det kunde jag ju ha anat. :oops:
Nå när jag skriver

Code: Select all

bubba:/etc# tdtool -l
så får jag

Code: Select all

Number of devices: 1
1       Magnus sovrum   OFF
Dessvärre så fungerar det inte alls i gui:t. Jag har prövat olika inställningar i Tdtool path: såsom /usr/src/telldus-core-2.0.1/tdtool samt /usr/src/telldus-core-2.0.1/ utan att märka någon skillnad.....
DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM »

MagnusJonsson wrote:Dessvärre så fungerar det inte alls i gui:t. Jag har prövat olika inställningar i Tdtool path: såsom /usr/src/telldus-core-2.0.1/tdtool samt /usr/src/telldus-core-2.0.1/ utan att märka någon skillnad.....
Tja, det där borde funka antar jag. Det den vill ha är ju bara en katalog där den exekverbara filen finns. Installationen borde iofs ha lagt filen i /usr/local/bin, så det känns som det mest naturliga valet. Men din lista med enheter i homeautomation är alltså tom?

/Daniel
MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson »

DanielM wrote:
Installationen borde iofs ha lagt filen i /usr/local/bin, så det känns som det mest naturliga valet.
Det kan säkerligen bero på att jag initialt jobbade efter installationsbeskrivningen på Telldus hemsida och inte gjorde allt helt rätt (uppenbarligen :wink: )
DanielM wrote:
Men din lista med enheter i homeautomation är alltså tom?
Jepp, tyvärr är det så... :cry:

Image
DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM »

MagnusJonsson wrote:
DanielM wrote:
Men din lista med enheter i homeautomation är alltså tom?
Jepp, tyvärr är det så... :cry:
Ok, då vill jag att du gör följande:

1. Öppna upp filen system/functions.php i en texteditor. Leta reda på en funktion som heter getTelldusDevices och byt ut hela funktionen mot följande:

Code: Select all

function getTelldusDevices($telldusId = -1)
{
	include("syssettings.php");
	
	$output = array();
	$command = $_SESSION["settings"]["tellduspath"]."tdtool".$tdtoolExt." --list";
	// checking if dongle is locked by another process, if so wait for release (max 10 seconds)
	checkDongleLock();
	
	// now it is our turn, lock dongle from others
	lockDongle();
	
	exec($command, $output, $return);
	
	// done, unlock dongle
	unlockDongle();
	
	if($_SESSION["settings"]["debug"])
	{
		echo "<br>".$command."<br>\n";
		echo "<pre>";
		print_r($output);
		print_r($return);
		echo "</pre>";
	}
	
	array_shift($output);

	$devices = array();
	
	foreach($output as $row)
	{
		$device = array();
		$device = explode("\t", $row);

		$id = $device[0];
		$description = $device[1];
		$status = $device[2];
		
		if($telldusId != "" || $id == $telldusId)
		{
			$devices[] = array("id" => $id, "description" => $description, "status" => $status);
		}
	}
	
	return $devices;
}
2. Gå in på din homeautomation-sida, inställningar och klicka i debug mode->ja.

3. Testa åter en "Uppdatera från Tellstick" och posta debug-outputten här.

/Daniel
MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson »

Som gammal C# programmerare så ser jag ju potentialen av att lära mig php. Har inte brytt mig om denna bit tidigare, men uppenbarligen finns ju här en hel del matnyttigt...

Oj, sorry för svamlandet. :) Här är resultatet av övningen :

Code: Select all

Array
(
)
Array
(
    [display] => conf
    [action] => importdevices
)
Array
(
    [user] => magnus
    [userid] => 4
    [userlevel] => 3
    [firstname] => Magnus
    [lastname] => Sydoff
    [settings] => Array
        (
            [title] => HomeAutomation v1.0
            [alwaysuselastknownstatus] => 1
            [hoursstatusactive] => 1
            [houseplanwidth] => 600
            [houseplaniconheight] => 30
            [useonewiredata] => 0
            [useexternaltemperature] => 1
            [externaltempurl] => http://www.temperatur.nu/lund.html
            [externaltemplocation] => Ideon Science Park
            [longitude] => 13.18785
            [latitude] => 55.69207
            [timezone] => 1
            [debug] => 1
            [phpbinpath] => /usr/bin/
            [tellduspath] => /usr/src/telldus-core-2.0.1/tdtool
            [dimlevelstep] => 5
        )

)
Array
(
)

/usr/src/telldus-core-2.0.1/tdtooltdtool --list

Array
(
)
127

Edit1:
Åhhhh.... Plötsligt inser jag vad som är fel när jag läser debug:en. Jag har ju inte lagt till (eller tappat bort längs vägen) ett slash sist i sökvägen. Därför fungerar det ju inte....
När jag ändrar detta (lägger till ett slash i sökvägen) så fungerar det direkt.
Det kanske är underförstått (i Linux världen) att man alltid avslutar sökvägar med ett slash, men i Windows världen måste man bekymra sig för användarinmatade sökvägar om man vill concat:enera de med övriga filer.
Nå, det var (ska jag säga som vanligt ?) mitt fel alltså... :oops:




Edit2:
Men varför fungerar det fortfarande inte?
Nå, att

Code: Select all

tdtool --off 1
fungerar (dock med "timout") är ju klarlagt. Däremot så går det inte via web gui:t. Med debug output:en så ser jag att

Code: Select all


/usr/src/telldus-core-2.0.1/tdtool/tdtool --on 1

Array
(
    [0] => Turning on device 1, Magnus sovrum - Permission denied
)
Ska se om jag kan luska lite vad detta beror på, men jag antar att du kommer att vara snabbare än mig Daniel.... :wink:
Hmmmm... Jag tror jag lägger en post på Telldus forum, för detta är väl kopplat till Telldus drivare snarare än php bitarna i HomeAutomation
DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM »

MagnusJonsson wrote:Det kanske är underförstått (i Linux världen) att man alltid avslutar sökvägar med ett slash, men i Windows världen måste man bekymra sig för användarinmatade sökvägar om man vill concat:enera de med övriga filer.
Nä, det här var ju lite osnyggt, den ska ju hantera att man inte lägger till någon slash. Jag kan lika gärna slänga in en slash i koden, det skadar aldrig. Om då användaren lägger in en så blir det ju två, men det har ingen betydelse. Fast man förlorar ju en byte minne någonstans då förstås :shock:
MagnusJonsson wrote:

Code: Select all


/usr/src/telldus-core-2.0.1/tdtool/tdtool --on 1

Array
(
    [0] => Turning on device 1, Magnus sovrum - Permission denied
)
Ska se om jag kan luska lite vad detta beror på, men jag antar att du kommer att vara snabbare än mig Daniel.... :wink:
Hmmmm... Jag tror jag lägger en post på Telldus forum, för detta är väl kopplat till Telldus drivare snarare än php bitarna i HomeAutomation
Skulle tro att du ska kika lite på behörigheterna på typ /dev/tellstick eller /dev/ttyUSB0 eller någonting. Din Apache-användare måste ha rätt att pilla på dem. Antingen får du nog ge alla tillgång, eller lägga med användaren i någon grupp (typ plugdev eller någonting om jag inte minns fel).

Du blir ju en riktig Linux-hacker av det här 8)

/Daniel
MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson »

DanielM wrote:
Du blir ju en riktig Linux-hacker av det här 8)
Åhhh...tack, men nej, jag tror inte det. En gammal Windows hund lär man inte sitta hur lätt som helst...

Nå, har bökat lääänge med tellstick.conf filen idag i tron att problemet ligger där. Har läst igenom ett stort antal posts på Telldus forum för att se om någon har liknande problem. Och visst, det verkar folk ha, men någon lösning (som fungerar för mig) har jag inte kunnat hitta. Får inte ens dimningen att fungera, men det må väl vara sekundärt precis just nu.
DanielM wrote:
Skulle tro att du ska kika lite på behörigheterna på typ /dev/tellstick eller /dev/ttyUSB0 eller någonting.
Prövade att slå på (via det trevliga progarmmet mc (midnight commander)) i princip alla bitar på chmod för filen (enheter eller vad det nu är) /dev/tellstick. Inget verkar dock hjälpa.
Tror inte (fast detta är ett djärvt uttalande) att det har något med Apache-användare att göra. Har känslan att eländet sitter hyfsat nära Telldus grejor, men har ingen aning om vad det skulle kunna vara.
Får hoppas att den där Micke Prag på Telldus har tips.... :?
DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM »

MagnusJonsson wrote:Prövade att slå på (via det trevliga progarmmet mc (midnight commander)) i princip alla bitar på chmod för filen (enheter eller vad det nu är) /dev/tellstick. Inget verkar dock hjälpa.
Tror inte (fast detta är ett djärvt uttalande) att det har något med Apache-användare att göra. Har känslan att eländet sitter hyfsat nära Telldus grejor, men har ingen aning om vad det skulle kunna vara.
Får hoppas att den där Micke Prag på Telldus har tips.... :?
Ett enkelt sätt att testa: skriv "su www-data" (eller vad din apache-användare nu heter). Då är du inte root längre utan är inloggad som den användaren. Om du då kan tända och släcka lampor med tdtool så är behörigheterna ok.

/Daniel
MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson »

DanielM wrote:
Ett enkelt sätt att testa: skriv "su www-data" (eller vad din apache-användare nu heter). Då är du inte root längre utan är inloggad som den användaren. Om du då kan tända och släcka lampor med tdtool så är behörigheterna ok.
Inloggad som www-data

Code: Select all

bubba:/home/magnus# su www-data
bubba:/home/magnus$ tdtool --on 1
Turning on device 1, Sovrum - Permission denied
Och tillbaka som root igen....

Code: Select all

bubba:/home/magnus$ su
Password:
bubba:/home/magnus# tdtool --on 1
Turning on device 1, Sovrum - An error occurred when communication with TellStick
Så alltså har www-data (apache användaren) inte tillräckliga behörigheter om jag fattat det hela. Dock så verkar det ju inte som det skulle hjälpa om www-data skulle få samma behörigheter som root eftersom det fortfarande strular... :cry:
DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM »

MagnusJonsson wrote:

Code: Select all

bubba:/home/magnus$ su
Password:
bubba:/home/magnus# tdtool --on 1
Turning on device 1, Sovrum - An error occurred when communication with TellStick
Hur har det gått med detta egentligen? Kommit någonvart?

/Daniel
Locked