Tuxbox Neutrino Satreceiver über OpenHab bedienen

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderator: seppy

Benutzeravatar
PeterA
Beiträge: 241
Registriert: 8. Feb 2019 12:12

Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von PeterA » 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:

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
Und dann in der Sitemap die Befehle direkt gemapped:

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"]
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:

Code: Alles auswählen

http://<box ip>/control/getchannel?format=json&epg=true
Dann bekommt man diese Json Ausgabe zurück:

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

Code: Alles auswählen

#!/bin/bash
curl -s 'http://<box ip>/control/getchannel?format=json&epg=true' |perl -ne 'print "$1" if /name": "([^"]+)"/'
getinfo.sh:

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
Dann meine exec.things:

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
Die items dazu:

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
Und die Sitemap:

Code: Alles auswählen

Text      label="Sender"           item=Sender        icon="none"
Text      label="Sendung"          item=Sendung       icon="none"
Und so kann das dann zusammen in der Sitemap aussehen:
Bildschirmfoto 2019-11-29 um 22.40.55.png
Viel Spass!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
PeterA
Beiträge: 241
Registriert: 8. Feb 2019 12:12

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von PeterA » 1. Dez 2019 20:36

Und wenn man in der items datei noch das hier einfügt:

Code: Alles auswählen

String Programme                   { http=">[*:POST:http://<box ip>/control/zapto?%2$s]" }
// zapto ist der Befehl gültig für Neutrino

Kann man über die Sitemap direkt "Zappen" also die Sender anwählen.

Code: Alles auswählen

Selection label="Senderliste"      item=Programme  mappings=[<sender id>="DMAX",<sender id>="n-TV",<sender id>="WELT",<sender id>="N24 DOKU"]
usw, usw....

winni
Beiträge: 37
Registriert: 30. Mär 2019 00:24

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von winni » 2. Dez 2019 20:02

Hallo Peter,

cooles Projekt!!!

Ich habe auch ein Linux Receiver, mit dem man ebenfalls über http kommunizieren kann.Die Befehle und Sender ID´s sehen etwas anders aus.

Mein item sieht wie folgt aus:

Code: Alles auswählen

String VU_Zap  {http=">[*:POST:http://192.168.178.83/api/zap?sRef=%2$s]"}
und hier meine sitemap:

Code: Alles auswählen

Selection label="Senderliste" item=VU_Zap mappings=[1:0:19:283d:3fb:1:C00000:0:0:0:="ARD"]

Leider funktioniert es nicht, da openhab anscheinend nicht mit den Doppelpunkten (Sonderzeichen) in mappings klar kommt. Dann hatte ich die Idee, eine map Datei zu erstellen und es mit Maptransformation zu lösen.
item:

Code: Alles auswählen

String VU_Zap  {http=">[*:POST:http://192.168.178.83/api/zap?sRef=%2$s]", transformationPattern="MAP:VU.map"}
.map:

Code: Alles auswählen

ARD=1:0:19:283d:3fb:1:C00000:0:0:0:
sitemap:

Code: Alles auswählen

Selection label="Senderliste" item=VU_Zap mappings=[ARD="ARD"]

Die Maptransformation scheint auch nicht zu funktionieren. Evtl. habe ich einen Syntaxfehler oder Maptransformation funktioniert in mappings nicht.

Über eure Hilfe wäre ich sehr dankbar!

Benutzeravatar
PeterA
Beiträge: 241
Registriert: 8. Feb 2019 12:12

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von PeterA » 4. Dez 2019 10:12

winni hat geschrieben:
2. Dez 2019 20:02
Hallo Peter,

cooles Projekt!!!

Ich habe auch ein Linux Receiver, mit dem man ebenfalls über http kommunizieren kann.Die Befehle und Sender ID´s sehen etwas anders aus.

Mein item sieht wie folgt aus:

Code: Alles auswählen

String VU_Zap  {http=">[*:POST:http://192.168.178.83/api/zap?sRef=%2$s]"}
und hier meine sitemap:

Code: Alles auswählen

Selection label="Senderliste" item=VU_Zap mappings=[1:0:19:283d:3fb:1:C00000:0:0:0:="ARD"]

Leider funktioniert es nicht, da openhab anscheinend nicht mit den Doppelpunkten (Sonderzeichen) in mappings klar kommt. Dann hatte ich die Idee, eine map Datei zu erstellen und es mit Maptransformation zu lösen.

Hi winni,

könntest du uns mal die Meldungen im Log posten ?

Merci.

winni
Beiträge: 37
Registriert: 30. Mär 2019 00:24

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von winni » 4. Dez 2019 20:43

Hallo Peter,

hier der Auszug aus dem log:

2019-12-04 20:35:19.486 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'zuHause.sitemap' has errors, therefore ignoring it: [33,34]: mismatched input ':' expecting '='

Benutzeravatar
udo1toni
Beiträge: 2126
Registriert: 11. Apr 2018 18:05
Wohnort: Darmstadt

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von udo1toni » 4. Dez 2019 22:28

Steht im Klartext da. Deine Sitemap hat Fehler. Mindestens in Zeile 33 an Position 34 hast Du : statt = geschrieben.

Falls die von Dir zitierte Zeile die Zeile 33 ist, so versuche bitte mal, den Wert (der Teil des Mappings vor dem =) in Anführungszeichen zu setzen. Kann auch sein, dass Du den Doppelpukt escapen musst.

winni
Beiträge: 37
Registriert: 30. Mär 2019 00:24

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von winni » 5. Dez 2019 09:36

Hallo Udo,

meinst Du mit escapen die Doppelpunkte mit RegEx zu wandeln?

Benutzeravatar
udo1toni
Beiträge: 2126
Registriert: 11. Apr 2018 18:05
Wohnort: Darmstadt

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von udo1toni » 5. Dez 2019 09:50

Nein, escapen wäre mit einem vorangestellten Backslash. Ich hab aber keine Ahnung, ob das funktioniert.

Die saubere Variante wird vermutlich sein, ein Selection Widget auf ein Number Item anzuwenden und innerhalb einer Rule abhängig vom geänderten Status einen Befehl zu schicken.

winni
Beiträge: 37
Registriert: 30. Mär 2019 00:24

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von winni » 5. Dez 2019 20:48

Hi Udo,

es funktioniert jetzt. Die Anführungszeichen waren die Lösung:

Code: Alles auswählen

'1:0:19:283d:3fb:1:C00000:0:0:0:'="ARD"

Benutzeravatar
PeterA
Beiträge: 241
Registriert: 8. Feb 2019 12:12

Re: Tuxbox Neutrino Satreceiver über OpenHab bedienen

Beitrag von PeterA » 5. Dez 2019 21:42

Prima! :D

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste