hier möchte ich mein kleines November Projekt vorstellen.
(Vielen Dank wie immer auch an Udo, der mir die ein oder andere Frage beantwortet hat)
Folgende Satreceiver nutzen ein OS aus dem Tuxbox Projekt und als GUI "Neutrino".
https://wiki.tuxbox-neutrino.org/wiki/K ... e:Hardware
Im OS ist auch ein Webserver mit http API Integriert.
https://wiki.tuxbox-neutrino.org/wiki/N ... 8nhttpd.29
Und hier kann man über das http Binding im OpenHab Befehle an die Box Senden und über das exec Binding Infos Abrufen.
Ich habe hier eine Remote realisiert mit welcher man die Box bequem mit dem Smartphone über OpenHab bedienen kann.
coolstream.items:
Code: Alles auswählen
String Coolstream { http=">[*:POST:http://192.168.2.116/control/rcem?%2$s]" } // Sendet den gemappten String aus der Sitemap zur Box
Code: Alles auswählen
Switch item=Coolstream mappings=[KEY_POWER="POWER",KEY_MUTE="MUTE"]
Switch item=Coolstream mappings=[KEY_EXIT="EXIT",KEY_HOME="HOME",KEY_OK="OK",KEY_EPG="EPG"]
Switch item=Coolstream mappings=[KEY_UP="UP",KEY_DOWN="DOWN"]
Switch item=Coolstream mappings=[KEY_LEFT="LEFT",KEY_RIGHT="RIGHT"]
Switch item=Coolstream mappings=[KEY_RED="RED",KEY_GREEN="GREEN",KEY_YELLOW="YELLOW",KEY_BLUE="BLUE"]
Switch item=Coolstream mappings=[KEY_PLAY="PLAY",KEY_PAUSE="PAUSE",KEY_RECORD="RECORD",KEY_STOP="STOP"]
Wenn man im Browser folgendes eingibt:
Code: Alles auswählen
http://<box ip>/control/getchannel?format=json&epg=true
Code: Alles auswählen
{"success": "true", "data":{"channel": [{"id": "c4c404530001445d",
"short_id": "4530001445d",
"epg_id": "c4c404530001445d",
"short_epg_id": "4530001445d",
"name": "ProSieben",
"logo": "/share/tuxbox/neutrino/icons/logo/4530001445d.png"
,"isActiveChannel": "true"
,"firstEPG": {"eventid": "311592804660650875",
"description": "Thor",
"info1": "Thor\nAction, USA 2011\nAltersfreigabe: ab 6",
"info2": "Donnergott Chris Hemsworth wird seiner göttlichen Kräfte beraubt! Gerade noch sollte Thor seinem Vater Odin auf den Thron von Asgard folgen, da wird er als Strafe für seine Unbeherrschtheit auf die Erde verbannt. Ohne göttliche Allmacht und ohne seinen magischen Hammer Mjolnir fällt es dem Helden schwer, sich dort zurechtzufinden. Doch dann nehmen sich die Astrophysikerin Jane Foster und ihr Team seiner an. Kurz darauf wird das Militär auf den kampfstarken Hünen aufmerksam.\n\nRegie: Kenneth Branagh\nDrehbuch: J. Michael Straczynski, Mark Protosevich\nKomponist: Patrick Doyle\nKamera: Haris Zambarloukos\nSchnitt: Paul Rubell\n\nDarsteller:\nChris Hemsworth (Thor)\nNatalie Portman (Jane Foster)\nAnthony Hopkins (Odin)\nTom Hiddleston (Loki)\nStellan Skarsgård (Erik Selvig)\nKat Dennings (Darcy Lewis)\nClark Gregg (Agent Coulson)\nColm Feore (King Laufey)\nIdris Elba (Heimdall)",
"startTime": "10:43",
"timeTotal": "130",
"timeElapsed": "91",
"percentage": "70"
}
,"secondEPG": {"eventid": "311592804660650876",
"description": "Marvel Short: Black Widow & Hulk",
"info1": "Marvel Short: Black Widow & Hulk\nAnimation, USA 2017",
"info2": "Black Widow und Hulk finden eine tickende Zeitbombe. Werden die beide eine verheerende Explosion verhindern können?",
"startTime": "12:53",
"timeTotal": "1"
}
}
]
}}
Diese Scripts liegen in /etc/openhab2/scripts/ und müssen über die Console mit "Sudo Chmod 755" ausführbar gemacht werden.
getsender.sh:
Code: Alles auswählen
#!/bin/bash
curl -s 'http://<box ip>/control/getchannel?format=json&epg=true' |perl -ne 'print "$1" if /name": "([^"]+)"/'
Code: Alles auswählen
#!/bin/bash
curl -s 'http://<box ip>/control/getchannel?format=json&epg=true' |perl -ne 'print "$1\n" if /description": "([^"]+)"/g' |head -1
Code: Alles auswählen
Thing exec:command:getsender [command="/etc/openhab2/scripts/./getsender.sh", interval=15, timeout=5] // Aufruf für das Script
Thing exec:command:getinfo [command="/etc/openhab2/scripts/./getinfo.sh", interval=15, timeout=5] // Aufruf für das Script
Code: Alles auswählen
String Sender "[%s]" {channel="exec:command:getsender:output"} //Empfängt den Sender aus dem Json request
String Sendung "[%s]" {channel="exec:command:getinfo:output"} // Empfängt die aktuelle Sendung aus dem dem Json request
Code: Alles auswählen
Text label="Sender" item=Sender icon="none"
Text label="Sendung" item=Sendung icon="none"
Viel Spass!