Tuxbox Neutrino Satreceiver über OpenHab bedienen
Verfasst: 30. Nov 2019 11:39
Hallo Leute,
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:
Und dann in der Sitemap die Befehle direkt gemapped:
Um von der Box den Aktuellen Sender und die Sendung bekommen habe ich zwei Scripts und das exec Binding benutzt.
Wenn man im Browser folgendes eingibt:
Dann bekommt man diese Json Ausgabe zurück:
Diese zwei Scripts holen zum einen "ProSieben" aus "name" als Sender und "Thor" aus "description" als Sendung.
Diese Scripts liegen in /etc/openhab2/scripts/ und müssen über die Console mit "Sudo Chmod 755" ausführbar gemacht werden.
getsender.sh:
getinfo.sh:
Dann meine exec.things:
Die items dazu:
Und die Sitemap:
Und so kann das dann zusammen in der Sitemap aussehen:
Viel Spass!
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!