Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP/LIRC] Mappen keypresses naar PHP script

Pagina: 1
Acties:

Onderwerpen


  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 11-11 16:31
Voor een thuis domotica project ben ik recentelijk aan de slag gegaan om m'n USB-IR transceiver (USB-UIRT) aan de praat te krijgen op m'n Synology NAS. Dit is - mij als Linux beginneling - met veel gestoei gelukt.

Daarnaast heb ik in huis een JB LightManager, Logitech Harmony 650 en een budget PC USB receiver.

De situatie is dat ik momenteel alles (JB LM en PC) aanstuur via m'n Logitech Harmony. Waar ik echter heen wil is dat ik via m'n NAS ook via een webinterface/app m'n systemen aan kan sturen, maar daarnaast wat meer logica kan toevoegen, zodat ik niet afhankelijk ben van 't proces en de bediening van m'n Harmony.

Ter zake: mijn bedoeling is om binnenkomende IR commando's te mappen naar een PHP script, die vandaar uit beslist wat er mee gebeurd.

Het visualiseren van IR commando's vanuit LIRC is me gelukt via MODE2. De bedoeling is echter dat deze commando's dus regel voor regel doorgestuurd worden naar een PHP script.

Helaas rijkt mijn Linux kennis en de documentatie van LIRC niet ver genoeg om dit voor elkaar te krijgen. Ik ben nu al enkele dagen aan het stoeien en zoeken om alles werkend te krijgen, ik hoop dat iemand kan helpen.

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 24-11 12:41

TheNephilim

Wtfuzzle

Dat zul je vanuit LIRC moeten doen denk ik. Als daar je IR commando's binnen komen XD In php ga je wat doen met de commando's, dus je moet een manier vinden om gegevens van LIRC naar php te sturen.

Gewoon een webserver met JSON, is dat niet een idee?

[ Voor 49% gewijzigd door TheNephilim op 28-06-2012 10:26 ]


  • T i M
  • Registratie: April 2004
  • Laatst online: 19:20
Je kunt in je LIRC config acties koppelen op het moment dat je een bepaalde knop indrukt. Daar heb je het .lircrc bestand -> The .lircrc file assigns software actions to remote-control button-push events.

Je kunt dan bestanden aanroepen, je maakt bijvoorbeeld voor iedere knop een actie naar /home/user/keypress.php key

Vervolgens doe je er in je php script wat leuks mee.

  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 11-11 16:31
Na al het stoeien om überhaupt input op m'n scherm te toveren lijkt de volgende onmogelijke stap om de RAW input in beeld te krijgen. In wezen zou ik geen remote configs hoeven te gebruiken, omdat ik niks anders wil dan m'n RAW IR input wrappen naar een PHP handler.

In MODE2 krijg ik niks anders in beeld dan space/pulse sequences. IRW geeft af en toe een input, maar ook niet echt bruikbaar. Ik zit een beetje op een dood spoor geloof ik :(

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Je zou de acties kunnen mappen naar functies in een job queue en dan gewoon workers gebruiken om daadwerkelijk dingen af te vangen. Wat dacht je van ActiveMQ of Gearman. Stel dat je echt script+input wil doen, dan zou je in php gewoon php://input kunnen uitlezen, werkt ook met streams dacht ik. Daarnaast heb je ook dingen als DBUS dacht ik die je aan LIRC kan knopen, samen met PHP zodat je bijv. een daemon kan draaien.

  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 11-11 16:31
Uiteindelijk moet de output wel eenvoudig te mappen zijn met een dergelijke oplossing:

http://stackoverflow.com/...-each-line-of-ls-l-output

Vooralsnog zal ik eerst moeten uitzoeken hoe ik de IR commands kan uitlezen... Als iemand daar ervaring mee heeft hoor ik het graag O-)

  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 11-11 16:31
We zijn iets verder. Belangrijk om USB-UIRT werkend te krijgen op (mijn) Synology NAS zijn het laden van de volgende kernel modules:

insmod /lib/modules/usbserial.ko
insmod /lib/modules/ftdi_sio.ko

Eventueel moet daarna nog handmatig de verwijzing worden gemaakt naar het USB apparaat:

mknod /dev/usb/ttyUSB0 c 188 0

Uiteindelijk in het /etc/lirc/lircrc bestand kon ik de verwijzing bij het indrukken van een knop maken:

begin
prog = irexec
remote = *
button = Uit
config = php keyPress.php Uit
end

Het enige probleem is nog om dat werkend te hebben moet "irexec" draaien. Zou als deamon kunnen draaien, maar werkt dan niet volledig naar wens.

Probleem is alleen nog dat de ontvangen commando's bij het versturen niet ontvangen worden door de USB ontvanger van m'n PC en ook lijkt vooralsnog m'n lightmanager ook niet op deze signalen te reageren. Binnenkort maar eens testen met signalen die niet m'n van Logitech Harmony komen.

Tips blijven altijd welkom ;)

  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 11-11 16:31
Voor degenen die dit misschien volgen, of voor toekomstige naslag; het is allemaal redelijk opgelost.

irexec als daemon draaien werkt wel, maar belangrijk is om bij elke handeling die je uit probeert te voeren volledige paden op te geven. Dat kunnen de Linux experts eventueel vast wel verder toelichten.

Het "leren" van IR codes gaat nu ook redelijk. Belangrijk is om "raw" codes te leren. Dit gaat nog niet altijd even soepel, maar met wat kunst en vliegwerk (het uitlezen van de mode2 streams, en deze output handmatig parsen naar een remote config file) werkt het redelijk.

Hoe ver ik nu dus ben: via de webserver op m'n NAS kan ik m'n Logitech audio setje en m'n verlichting aansturen. De basis werkt nu dus. Volgende stappen zullen zijn: TV en UPC MediaBox aan kunnen sturen. Later is de bedoeling dit uit te breiden met het bedienen van m'n overige apparatuur en het schrijven van een mooie (web)app die uiteindelijk bij voorkeur ook nog eens als widget op m'n Android telefoon komt te draaien; gemak binnen handbereik. Tot slot zou het nog leuk zijn wat andere trucjes uit te gaan halen met bijvoorbeeld een Arduino. In combinatie met een IP cam screenshotjes naar jezelf laten mailen als er iemand voor de deur staat, valt nog genoeg (on)zinnigs te verzinnen. Ik weet het, het is allemaal echt al wel eens eerder gedaan, maar toch erg leuk om zelf zo een beetje te hobbyen. Maar goed, alles op z'n tijd.
Pagina: 1