Tellstick i server men skicka kommando från Raspbmc

Moderator: Telldus

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 »

Ja, och jag visade hur man "egentligen" skall göra när man startar en service i linux.

Så att ändra i /etc/rc.local fungerar, men är ett fulhack. Om du vill ha det så, så är det OK, men du bör veta att det är det. ;-)
Problem kan uppstå vid uppdateringar med rc.local-lösningen. Men det är din maskin, så du bestämmer.
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 »

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. :-(

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?
Detta:
import xbmc
xbmc.executescript('c:\\Program\\XBMC\\scripts\\Lyse\\default.py')

skall in i den fil som körs av XMBC vid dess startup det har ingenting med RPi:ns övriga system.

Ska testa köra igång xbmc på en ubuntuVM å lista ut var det kän tänkas vara.
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 »

Zapper wrote:
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. :-(

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?
Detta:

Code: Select all

import xbmc
xbmc.executescript('c:\\Program\\XBMC\\scripts\\Lyse\\default.py')
Ouch, det där filvägen är en MSDOS-ism och har inget i ett linuxsystem att göra. Är du säker på att den koden över huvud taget skall/är tänkt att exekveras någon gång på något annat än ett MS Windows-system?
Det kan ju aldrig körts på ett Unix/linux-system, och fungerat.
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 »

Det där scriptet är till för när XBMC körs på in windowsdator ja, har inte snurrat på linux. Det är bara tellstickbiten som snurrat på linuxburken.
Som jag hoppas att jag skrev tidigare så måste man fixa till sökvägarna till xbmc biten så att de passar linux.

Gick inte riktigt testa för mig när jag testa sist. XBMCBuntu gillade inte riktigt köra i en vm, så man får ta nå vanilla ubuntu i en vm å lägga in XBMC repot,
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 »

Funkade bättre med rätt guest additions.

iaf lägg istället in autoexec.py i
/home/dittanvändarnamn/.xbmc/userdata/

och den skall ha innehållet
import xbmc
xbmc.executescript('/home/dittanvändarnamn/.xbmc/addons/Lyse/default.py')

EDIT: Denna path är bättre så slipper man pilla ngt i den själv.
xbmc.executescript('special://home/addons/Lyse/default.py')

kopiera sedan in Lyse katalogen till
/home/dittanvändarnamn/.xbmc/addons/

du borde då ha denna fil tillgänglig
/home/dittanvändarnamn/.xbmc/addons/Lyse/default.py

Har testat detta på en ubuntu vm och det funkar
fenderrobban
Posts: 21
Joined: Fri Mar 17, 2023 9:45 am

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

Post by fenderrobban »

nu funkar det! :-D

såg att man istället för att ha:

execute script....... is autostart.py skulle man ha execute file " ...."

men nu till nästa fråga.

jag styr ju lamporna med tellstick på tid med tdtool.
dvs klockan 1800 tänds lamporna. och släcks 22.00
men om jag tittar på en film innnan 1800 vill jag att lamporna ska förbli släckta oavsett om filmen startar eller släcks.
nåt i stil med:

if time < 1800 then exit script
else execute file "...../Lyse/default.py"

/Robban
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 »

Finns kod i phpscriptet för detta som går att aktivera.
Kolla längst upp i action.php

Sen borde det vara executescript. Testade i ubuntu med senaste XBMC releasen.
Kollade även i XBMC dokumentationen, det enda som finns är executescript i XBMCs Python API.
autoexec.py filen bör se ut så här alla ggr
import xbmc
xbmc.executescript('special://home/addons/Lyse/default.py')

om själva scriptet ligger i
XBMCKATALOGEN/addons/Lyse/default.py

Dock så borde man eg göra det som ett addon efterssom att autoexec.py inte eg används längre.
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...hittade det...

<?php
$numUnits = 9;
$timeInSec = intval(date("H"))*3600+intval(date("i"))*60+intval(date("s"));
//$xbmcActive = ($timeInSec < (3600*2) || $timeInSec > (3600*18));
$xbmcActive = true;


men som nybörjare i python e jag inte riktigt med hur man skulle aktivera och ställa in detta för 18 resp 22 ?
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 »

Double post
Last edited by Zapper on Sun Mar 10, 2013 11:20 pm, edited 1 time in total.
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 »

Detta är är php istället för Python

Byt ut koden:
//$xbmcActive = ($timeInSec < (3600*2) || $timeInSec > (3600*18));
$xbmcActive = true;

Mot
$xbmcActive = ($timeInSec < (3600*2) || $timeInSec > (3600*18));
//--------------------------------------- ^ Till timme ----------------^ Från timme // Denna rad skall inte tas med det är bara för att förklara var tiden ställs.
fenderrobban
Posts: 21
Joined: Fri Mar 17, 2023 9:45 am

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

Post by fenderrobban »

Tack! funkar fint.!!
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 »

Något som jag inte har fördjupat mig i men skulle vara intressant är om man skulle hitta ngt enkelt bibliotek för soluppgång & solnedgång, då skulle man definiera tiden som timmar +- mot dessa värden istället.

EDIT: Ibland ställer man dumma påståenden det verkar finnas i standarbiblioteken till PHP5 :)
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 »

Ny version med remoten som har dimmerfunktion samt att xmbc funktionen skall följa sunrise sunset. om man ställer sin long och lat korrekt. (Verkar funka iaf vet ej hur korrekt den är).

Följer även med en liten ful Siriklon som jag kallar Iris som kan bl.a. styra tellsticken. Man använder den med medföljande Taskertasken samt en taskcutwidget på sin hemskärm.
Du måste uppdatera tasken med rätt adress till din egen server.

Och som med föregående version lägg inte upp detta mot internet iom att det inte finns någon säkerhet.
Attachments
Iris.taskertask.zip
Taskertask
(584 Bytes) Downloaded 313 times
ZappersPHPTellstick.zip
Ny version av alltihopa
(198.82 KiB) Downloaded 328 times
Mnemonic
Posts: 38
Joined: Fri Mar 17, 2023 9:45 am

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

Post by Mnemonic »

Jag använder nedanstående script som installerad service script i min xbmc. Sen kan man lägga till vilka kommandon som helst vid start/stop/pause etc. Själv jobbar jag på att komma åt min java webservice på RPi för att styra mina grejer.

Code: Select all

#!/usr/bin/python
# -*- coding: utf-8 -*-

# import the necessary libs
import xbmc,xbmcgui
import subprocess,os

class TellstickPlayer(xbmc.Player) :
        def __init__ (self):
            xbmc.Player.__init__(self)

        def onPlayBackStarted(self):
            if xbmc.Player().isPlayingVideo():

        def onPlayBackEnded(self):
            if (VIDEO == 1):

        def onPlayBackStopped(self):
            if (VIDEO == 1):

        def onPlayBackPaused(self):
            if xbmc.Player().isPlayingVideo():

        def onPlayBackResumed(self):
            if xbmc.Player().isPlayingVideo():
player=TellstickPlayer()

VIDEO = 0

while(1):
    if xbmc.Player().isPlaying():
      if xbmc.Player().isPlayingVideo():
        VIDEO = 1

      else:
        VIDEO = 0

    xbmc.sleep(1000)
Post Reply