Tellstick i server men skicka kommando från Raspbmc

Moderator: Telldus

fenderrobban
Posts: 21
Joined: Fri Mar 17, 2023 9:45 am

Tellstick i server men skicka kommando från Raspbmc

Post by fenderrobban »

Hej!

Jag har en server där jag har min tellstick i för att styra lampor tidsmässigt.
Jag har också en rasparry Pi som htpc ansluten till tv:n

Jag undrar nu om man kan skicka en signal från raspbmc till servern att släcka vissa lampor.


Har läst att man ska kunna skicka ssh kommando utan att logga in men hur skulle ett sånt script se ut om jag vill att lamporna ska släckas när filmen startar och tändas vid paus eller stopp?

scriptet kan jag inte men ssh raden borde väl vara:
film start:
ssh user@192.168.x.x 'tdtool --off 1'

filmstopp:
ssh user@192.168.x.x 'tdtool --on 1'

någon som har ideer??

tack
Robban
gflygt
Posts: 46
Joined: Fri Mar 17, 2023 9:45 am

Tellstick i server men skicka kommando från Raspbmc

Post by gflygt »

Testa att läsa mansidan för ssh och särskilt flaggan -n
pixi
Posts: 24
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Tellstick i server men skicka kommando från Raspbmc

Post by pixi »

Först måste du skapa en ssh mtckel på pajen.
Ssh-keygen

Kör enter på alla frågor (testing)
Kan vara bra om du kollar upp dessa frågor senare. Har med säkerheten att göra

Nästa komando är ssh-copy-id xxx.xxx.xxx.xxx
Xxx.xxx ...... = serverns ip adress

Prova sedan att logga in med ssh

Funkar det borde dina komandon funka

/Andreas H
gflygt
Posts: 46
Joined: Fri Mar 17, 2023 9:45 am

Tellstick i server men skicka kommando från Raspbmc

Post by gflygt »

Kul att lära sig något nytt! Har alltid kopierat den publika nyckeln manuellt till .ssh/authorizedkeys :-)
Och för att vara petig (men det funkar ju inte annars) ssh-keygen. Bara gemener.
pixi
Posts: 24
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Tellstick i server men skicka kommando från Raspbmc

Post by pixi »

Så är det i mobilens automatiska värld :-)
fenderrobban
Posts: 21
Joined: Fri Mar 17, 2023 9:45 am

Re: Tellstick i server men skicka kommando från Raspbmc

Post by fenderrobban »

ok...jag lyckades manuellt skicka kommando till servern via ssh.

Jag loggade in på Pi:n via ssh och skrev följande
ssh robert@192.168.x.x 'tdtool -f 4'

detta släckte en lampa som var tänd så det funkar.
men jag måste ändå slå in password till servern.

men hur skulle ett script se ut? ( e lite nybörjare på just linux).
pixi
Posts: 24
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Tellstick i server men skicka kommando från Raspbmc

Post by pixi »

Detta fixar komandona jag skrev tidigare
ssh-keygen

sdh-copy-id

/andreas
fenderrobban
Posts: 21
Joined: Fri Mar 17, 2023 9:45 am

Re: Tellstick i server men skicka kommando från Raspbmc

Post by fenderrobban »

menade hur skulle ett script i xbmc se ut för att tända / släcka lamporna vid filmstart/pause/stopp ut?
pixi
Posts: 24
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Tellstick i server men skicka kommando från Raspbmc

Post by pixi »

Pass. Tror du får bättre svar på något xbmc forum
Zapper
Posts: 212
Joined: Fri Mar 17, 2023 9:45 am
Location: Där det är kallt

Re: Tellstick i server men skicka kommando från Raspbmc

Post by Zapper »

Har gjort en liknande lösning för vanliga XBMC som ligger här nånstans på forumet , som använder http istället.
Dock förutsätter det att man kan sätta upp Apache(Funkar nog med vad som helst som kör php) och Php. Samt att raspbmc har samma stöd för Python och att du hittar var du ska in med filerna eftersom
att instruktionerna jag skrev var för windows.
http://www.telldus.com/forum/viewtopic. ... zip#p12569
fenderrobban
Posts: 21
Joined: Fri Mar 17, 2023 9:45 am

Re: Tellstick i server men skicka kommando från Raspbmc

Post by fenderrobban »

hej!

Zappy,la in filerna som du beskrev i ditt inlägg HC och Lyse....och jag kan komma in på min webserver och starta/stänga lamporna genom sidan som kommer upp.
la in Lyse katalogen under /Scripts i Pi:n och ändrade IP adressen till servern där tellsticken sitter och bootade om men inget händer när jag startar filmer.
Zapper
Posts: 212
Joined: Fri Mar 17, 2023 9:45 am
Location: Där det är kallt

Re: Tellstick i server men skicka kommando från Raspbmc

Post by Zapper »

Du måste hitta nån slags autostartfil till XBMC vet dock inte var den ligger i rpiversionen av xbmc. borde heta ngt i stil med autoexec.py
fenderrobban
Posts: 21
Joined: Fri Mar 17, 2023 9:45 am

Re: Tellstick i server men skicka kommando från Raspbmc

Post by fenderrobban »

verkar vara som man ska lägga in hela scriptet i rc.local i rpi:n och sedan köra chmod +x rc.local.
gjorde detta men fortfarande inget. :-(

och eftersom jag kan komma åt sidan manuellt o tända/släcka lampor manuellt så borde väl php ha tillgång till scriptet på serversidan,eller?
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Re: Tellstick i server men skicka kommando från Raspbmc

Post by Jaxån »

fenderrobban wrote:verkar vara som man ska lägga in hela scriptet i rc.local i rpi:n och sedan köra chmod +x rc.local.
gjorde detta men fortfarande inget. :-(
Du bör inte ändra i rc.local på Raspberry Pi:n. Det är bättre och säkrare att lägga till ett skalprogram i katalogen /etc/init.rc istället.
Men om du inte vill/kan göra det som jag beskriver nedan, och det fungerar med att ändra /etc/rc.local, så gör det det och är ok det med. ;-)

Vad är det skriptet skall göra?

Saker som du vill göra när maskinen startar och stoppas skall läggas i ett skalprogram i katalogen /etc/init.d/
Med fördel kopierar du någon av de befintliga filerna i katalogen och döpa kopian till något liknande fenderrobban-tellstick eller fenderrobban-xbmcremote. Prefixet fenderrobban för att inte skriva över någon redan befintlig fil. Jag tror att /etc/init.d/apache2 är ok, om man rensar ur det mesta.

Sedan gör du

Code: Select all

sudo update-rc.d fenderrobban-tellstick defaults
då installeras ditt skalprogram som ett skript som körs när du startar och stoppar maskinen. Du kan testa med

Code: Select all

sudo invoke.rc-d fenderrobban-tellstick status
sudo invoke-rc.d fenderrobban-tellstick start
och eftersom jag kan komma åt sidan manuellt o tända/släcka lampor manuellt så borde väl php ha tillgång till scriptet på serversidan,eller?
Det borde fungera, eller gå att få att fungera. :-)
Du kan prova att ansluta till en webbsida med kommandona wget eller curl. Då kan du testa om det fungerar från samma eller andra maskiner.
Se även:

Code: Select all

man update-rc.d
man invoke-rc.d
man service
man wget
man curl
Så här kan en fil i /etc/init.d/ se ut. Modifiera innan du provar.

Code: Select all

#!/bin/sh
### BEGIN INIT INFO
# Provides:          fenderrobban-tellstick
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop fenderrobband-tellstick
### END INIT INFO

set -e

SCRIPTNAME="${0##*/}"
SCRIPTNAME="${SCRIPTNAME##[KS][0-9][0-9]}"

# Byt till serverprogrammet
SERVERBIN="/usr/local/sbin/serverbin"

ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"

. /lib/lsb/init-functions

test -f /etc/default/rcS && . /etc/default/rcS

# Var man kan ge variabler ovan, som SERVERBIN ett nytt värde.
if [ -f /etc/default/fenderrobban-tellstick ] ; then
	. /etc/default/fenderrobban-tellstick
fi

# Testa om programmet finns
if [ ! -x $SERVERBIN ] ; then
	echo "No $SERVERBIN program"
	exit 0
fi

startkommando() {
    # Skriv allt som behövs göras för att starta servern
    return 0 # det gick bra
    return 1 # om det gick dåligt
}

stoppkommando() {
    # Skriv allt som behövs göras för att stoppa servern
    return 0 # det gick bra
    return 1 # om det gick dåligt
}

testrunning() {
    # Testa om servern kör
    return PID # return processens processid om den kör
    return ""  # om den inte kör
}

case $1 in
	start)
		log_daemon_msg "Starting tellstick" "SCRIPTNAME"
		# Kommandon som startar tjänsten, om den inte redan kör
		# Byt ut "startkommando start" mot lämpligt kommando
		if startkommando start; then
                        log_end_msg 0
                else
                        log_end_msg 1
                fi
	;;
	stop)
		log_daemon_msg "Stoping tellstick" "$SCRIPTNAME"
		# Kommandon som stoppar tjänsten, om den inte redan stoppad
		# Byt ut "stoppkommando stop" mot lämpligt kommando
		if stoppkommando stop; then
                        log_end_msg 0
                else
                        log_end_msg 1
                fi
                
	;;
	restart)
	        # Kommandon som startar om tjänsten, se start och stopp ovan
	        stoppkommando stop
	        startkommando start
	;;
	status)
	        # Kommandon som skriver ut status
	        # byt ut "testrunning" mot lämpligt kommando
	        PID=testrunning
		if [ "$PID" ]; then
			echo "$SCRIPTNAME is running (pid $PID)."
			exit 0
		else
			echo "$SCRIPTNAME is NOT running."
			exit 1
		fi
	;;
	*)
		log_success_msg "Usage: /etc/init.d/$SCRIPTNAME {start|stop|restart|status}"
		exit 1
	;;
esac
Finns en gratisbok om administrera Debian (och raspberian, som jag har uppfattat att xbmc-versionen är byggd på).
Man kan ladda ned den från http://debian-handbook.info/ och slå upp kapitlet som servrar.
fenderrobban
Posts: 21
Joined: Fri Mar 17, 2023 9:45 am

Re: Tellstick i server men skicka kommando från Raspbmc

Post by fenderrobban »

jaxån, tanken är att när jag startar en film från Raspbmc ska vissa lampor släckas och tvärtom om filmen stoppar/pausas.
Har alltså en tellstick i en server som är igång 24-7 och en raspberry pi som htpc.
(se tidigare inlägg i tråden)
Post Reply