Sending messages to the TV
- valdemirs
- Member
- Beiträge: 115
- Registriert: 13 Mär 2015 13:15
- Wohnort: Sao Paulo - Brazil
- Receiver 1: Vu+Duo2
- Receiver 2: Mi Box S
- Receiver 3: https://bit.ly/3eJp781
- Hat gedankt: 28 Mal
- Hat Dank erhalten: 5 Mal
Sending messages to the TV
Hi,
is there any way to send a message to the TV by command line ?
(Like the "send message" option in Open Webif)
is there any way to send a message to the TV by command line ?
(Like the "send message" option in Open Webif)
- s3n0
- Senior member
- Beiträge: 1580
- Registriert: 02 Jan 2017 14:38
- Receiver 1: Vu+ Zero 4K
- Receiver 2: Vu+ Solo SE V2
- Hat gedankt: 108 Mal
- Hat Dank erhalten: 416 Mal
- Kontaktdaten:
Code: Alles auswählen
wget -qO- 'http://127.0.0.1/web/message?type=1&timeout=20&text=Hello%20world'
- type:
0 = conditional MessageBox - with the return answer Yes / No ... shell-script example is here: https://www.opena.tv/viewtopic.php?p=517641#p517641
1 = info MessageBox - usually no "buttons" are there
2 = notice MessageBox (similar as info messagebox)
3 = error / warning MessageBox (for notify of the critical error)
- timeout:
20 = waiting time in seconds, until the MessageBox is lost / closed
Enigma2:WebInterface – TuxBoxWIKI
- Pike_Bishop
- Moderator
- Beiträge: 2601
- Registriert: 11 Feb 2020 22:06
- Wohnort: here and there
- Receiver 1: Mutant HD2400
- Receiver 2: VU Ultimo 4K
- Receiver 3: Octagon SF8008
- Receiver 4: Gigablue Quad 4K
- Receiver 5: VDR
- Hat gedankt: 684 Mal
- Hat Dank erhalten: 1491 Mal
Hi,
Ja das klappt, hab das hier z.b: im OpenPLi mit folgenden Script verwendet um die Box in den Standby zu schicken (mittels nem Cronjob dazu), Script sieht so aus;
Wie du ganz unten sehen kannst hab ich bei Antwort NEIN ne if Abfrage drinnen.
Grüsse
Pike
Ja das klappt, hab das hier z.b: im OpenPLi mit folgenden Script verwendet um die Box in den Standby zu schicken (mittels nem Cronjob dazu), Script sieht so aus;
Code: Alles auswählen
#!/bin/sh
BOXIP="http://localhost"
TMP=/tmp
CHECKFILE=$TMP/own_standbytimer_check.txt
NOANSWER="Keine rechtzeitige Antwort"
YES="Antwort lautet JA"
NO="Antwort lautet NEIN"
POWERSTATE_FILE="powerstate"
MESSAGES="message*"
STANDBYTIMERSTART="$(date +%a.%d.%b.%Y-%H:%M)"
# Wechsel in das /tmp (TMP) Verzeichnis.
cd $TMP
# Altlasten loeschen.
rm -f $POWERSTATE_FILE
rm -f $MESSAGES
#rm -f $CHECKFILE
# Abfrage ob sich die Box bereits im
# Standby befindet, falls ja Abbruch.
wget "$BOXIP/web/powerstate"
if grep "true" $POWERSTATE_FILE ; then
exit
fi
# Checkfile (CHECKFILE) erstellen und Datum + Uhrzeit eintragen.
echo $STANDBYTIMERSTART > $CHECKFILE
echo -e "\nAntwort bezgl. StandbyTimer" >> $CHECKFILE
# WebIF Befehle mit Abfrage Ja/Nein fuer Standby der Box.
wget "$BOXIP/web/message?text=Receiver+geht+in+3+Minuten+in+den+Standby+-+OK?&type=0&timeout=180"
sleep 180
wget "$BOXIP/web/messageanswer?getanswer=now"
# Antwort auswerten und in das Checkfile (CHECKFILE) schreiben.
CHECK="$(wget -qO- "$BOXIP/web/messageanswer?getanswer=now"|grep e2statetext|sed 's/e2statetext>\|<\|\/\|^[ \t]*//g' | tr -d '\!')"
echo $CHECK >> $CHECKFILE
# Bei Antwort NEIN wird das Script beendet,
# andernfalls geht die Box in den Standby.
if grep "NEIN" $CHECKFILE ; then
exit
else
wget -O /dev/null -q "$BOXIP/web/powerstate?newstate=0&type=0"
#wget -O /dev/null -q "$BOXIP/web/powerstate?newstate=0&type=5"
fi
exit
Wie du ganz unten sehen kannst hab ich bei Antwort NEIN ne if Abfrage drinnen.
Grüsse
Pike
- Pike_Bishop
- Moderator
- Beiträge: 2601
- Registriert: 11 Feb 2020 22:06
- Wohnort: here and there
- Receiver 1: Mutant HD2400
- Receiver 2: VU Ultimo 4K
- Receiver 3: Octagon SF8008
- Receiver 4: Gigablue Quad 4K
- Receiver 5: VDR
- Hat gedankt: 684 Mal
- Hat Dank erhalten: 1491 Mal
Es gibt hier ein bisschen was dazu von @schorschi;
https://www.opena.tv/viewtopic.php?t=15123
unter WEBIF
Natürlich geht da aber noch mehr, man kann z.b: auch abfragen ob grade eine Aufnahme läuft, ich verwende das gerne in einigen meiner Scripts
(kannst z.b: im E2iPlayer Install/Update Script nachgucken).
Den Script Sammel Thraed findest wennst auf meine Sig klickst (kannst dich da ja mal umsehen).
Grüsse
Pike
https://www.opena.tv/viewtopic.php?t=15123
unter WEBIF
Natürlich geht da aber noch mehr, man kann z.b: auch abfragen ob grade eine Aufnahme läuft, ich verwende das gerne in einigen meiner Scripts
(kannst z.b: im E2iPlayer Install/Update Script nachgucken).
Den Script Sammel Thraed findest wennst auf meine Sig klickst (kannst dich da ja mal umsehen).
Grüsse
Pike
- Pike_Bishop
- Moderator
- Beiträge: 2601
- Registriert: 11 Feb 2020 22:06
- Wohnort: here and there
- Receiver 1: Mutant HD2400
- Receiver 2: VU Ultimo 4K
- Receiver 3: Octagon SF8008
- Receiver 4: Gigablue Quad 4K
- Receiver 5: VDR
- Hat gedankt: 684 Mal
- Hat Dank erhalten: 1491 Mal
Na dann bist ja hier genau richtig, wie gesagt sowas findest in manchen meiner Scripts, aber egal ich poste dir mal den Part wie ich das verwende (incl. Kommentar);
Grüsse
Pike
Code: Alles auswählen
# Pruefen ob Aufnahme{n} laeuft/laufen, wenn nicht Enigma2-GUI Neustart einleiten, wenn doch Enigma2-GUI Neustart
# um TIMEOUT Minuten verschieben und das wiederholend so lange bis keine Aufnahme{n} mehr laeuft/laufen.
echo ""
sleep 11
TIMEOUT=10
z=1
REC=yes
while [ "$REC" = "yes" ] ; do
if [ $($WGET -O- -q $BOXIP/web/timerlist | grep "<e2state>2</e2state>" | grep -cm 1 "2") = 1 ] ; then
REC=yes
echo -e "Kein Enigma2-GUI Neustart moeglich da eine Aufnahme laeuft -> Warte $TIMEOUT Minuten ...\n"
if [ "$z" = "1" ] ; then
MSG="$(echo -e "Kein Enigma2-Gui Neustart moeglich da eine Aufnahme\nlaeuft -> versuche es alle $TIMEOUT Minuten erneut ...")"
$WGET -O - -q "$BOXIP/web/message?type=1&timeout=10&text=$MSG" > /dev/null
fi
z=$((z+1)) && sleep ${TIMEOUT}m
echo -e "\nLeite Enigma2-GUI Neustart (Versuch $z) ein ...\n"
else
REC=no
echo -e "Keine laufende Aufnahme -> Starte Enigma2-GUI neu ...\n"
$WGET -O - -q "$BOXIP/web/message?text=Keine%20laufende%20Aufnahme%0AStarte%20Enigma2%2DGUI%20neu%20%2E%2E%2E&type=1&timeout=10" > /dev/null && sleep 12
fi
done
$WGET -q -O - $BOXIP/web/powerstate?newstate=3
Grüsse
Pike
- Pike_Bishop
- Moderator
- Beiträge: 2601
- Registriert: 11 Feb 2020 22:06
- Wohnort: here and there
- Receiver 1: Mutant HD2400
- Receiver 2: VU Ultimo 4K
- Receiver 3: Octagon SF8008
- Receiver 4: Gigablue Quad 4K
- Receiver 5: VDR
- Hat gedankt: 684 Mal
- Hat Dank erhalten: 1491 Mal
- Pike_Bishop
- Moderator
- Beiträge: 2601
- Registriert: 11 Feb 2020 22:06
- Wohnort: here and there
- Receiver 1: Mutant HD2400
- Receiver 2: VU Ultimo 4K
- Receiver 3: Octagon SF8008
- Receiver 4: Gigablue Quad 4K
- Receiver 5: VDR
- Hat gedankt: 684 Mal
- Hat Dank erhalten: 1491 Mal
Hi,
Ok hab mich mal bisschen schlau gemacht die Zeiten in der timer.xml sind die unix Zeitstempel also z.b;
Ich hab damit schonmal zu tun gehabt vor einiger Zeit doch hab ich das vergessen gehabt, also der wichtige Teil davon ist ja;
begin="1636309500" -> Anfang unix Zeitstempel
end="1636311480" -> Ende unix Zeistempel
Es gibt hier z.b. nen Umrechner;
Unix-Timestamp in Datum umrechnen - Datum in Unix Timestamp umrechnen
nur hilft dir das so ja nichts aber das muss auch so umzurechnen gehen, mal gucken ....
EDIT !
Habs schon also z.b für die Anfangszeit oben im Beispiel also für 1636309500 so;
Dabei kommt dann das raus;
Sun Nov 7 19:25:00 CET 2021
Das deckt sich mit dem Online Umrechner -> siehe Bild;
Mit diesen Infos solltest du nun was anfangen können hast halt einiges zum rausgreppen aus der timers.xml und umzurechnen, aber sollte alles machbar sein in nem Script
(sieht aber schon nach etwas Arbeit aus aber du wirst das schon schaffen).
EDIT 2 !
Wir schweifen aber langsam vom eigentlichen Thema ab, bitte für weitere andere Fragen Extra Threads eröffnen.
Grüsse
Pike
Ok hab mich mal bisschen schlau gemacht die Zeiten in der timer.xml sind die unix Zeitstempel also z.b;
Code: Alles auswählen
<timer begin="[B][color=#FF8C00]1636309500[/color][/B]" end="[B][color=#FF8C00]1636311480[/color][/B]" serviceref="1:0:1:32CA:45D:1:C00000:0:0:0:" repeated="0" rename_repeat="1" name="Zeit im Bild" description="" afterevent="auto" eit="51487" tags="" disabled="0" justplay="0" always_zap="0" descramble="1" record_ecm="0" isAutoTimer="1">
<log code="500" time="1635723517">[AutoTimer] Try to add new timer based on AutoTimer Zeit im Bild.</log>
<log code="509" time="1635723517">[AutoTimer] Timer start on: Sun Nov 7 19:25:00 2021</log>
Ich hab damit schonmal zu tun gehabt vor einiger Zeit doch hab ich das vergessen gehabt, also der wichtige Teil davon ist ja;
begin="1636309500" -> Anfang unix Zeitstempel
end="1636311480" -> Ende unix Zeistempel
Es gibt hier z.b. nen Umrechner;
Unix-Timestamp in Datum umrechnen - Datum in Unix Timestamp umrechnen
nur hilft dir das so ja nichts aber das muss auch so umzurechnen gehen, mal gucken ....
EDIT !
Habs schon also z.b für die Anfangszeit oben im Beispiel also für 1636309500 so;
Code: Alles auswählen
date -d @[color=#FF8C00][B]1636309500[/B][/color]
Dabei kommt dann das raus;
Sun Nov 7 19:25:00 CET 2021
Das deckt sich mit dem Online Umrechner -> siehe Bild;
Mit diesen Infos solltest du nun was anfangen können hast halt einiges zum rausgreppen aus der timers.xml und umzurechnen, aber sollte alles machbar sein in nem Script
(sieht aber schon nach etwas Arbeit aus aber du wirst das schon schaffen).
EDIT 2 !
Wir schweifen aber langsam vom eigentlichen Thema ab, bitte für weitere andere Fragen Extra Threads eröffnen.
Grüsse
Pike
- Lucifer
- Member
- Beiträge: 232
- Registriert: 01 Feb 2015 12:30
- Hat gedankt: 159 Mal
- Hat Dank erhalten: 155 Mal
xopen hat geschrieben:weist du wie sich das datum und uhrzeit ermitteln läst ich möchte nicht das das script genau 1 min vor einer aufnahme startet zb
<e2timebegin>1666984200</e2timebegin>
mfg
xopen
Hi @xopen,
Convert epoch to DateTime:
Code: Alles auswählen
echo $(date -d @1666984200 +'%Y%m%d%H%M%S')
Result: 20221028211000
Convert epoch to DateTime with separation marks and space:
Code: Alles auswählen
echo $(date -d @1666984200 +'%Y-%m-%d %H:%M:%S')
Result: 2022-10-28 21:10:00
Convert DateTime with separation marks and space to epoch:
Code: Alles auswählen
echo $(date -d '2022-10-28 21:10:00' +"%s")
Result: 1666984200
regards,
Lucifer
- s3n0
- Senior member
- Beiträge: 1580
- Registriert: 02 Jan 2017 14:38
- Receiver 1: Vu+ Zero 4K
- Receiver 2: Vu+ Solo SE V2
- Hat gedankt: 108 Mal
- Hat Dank erhalten: 416 Mal
- Kontaktdaten:
Code: Alles auswählen
owQuery()
{
TOUT=$1
QMSG=$2
wget -qO- "http://127.0.0.1/web/message?type=0&timeout=${TOUT}&text=${QMSG}" > /dev/null 2>&1
RETVAL=128
# if the user does not press and does not choose anything (OK / EXIT buttons, NO / YES selection), then the default answer is used
# if the user presses the EXIT button, only a negative answer will probably be used
# so, it consists of two YES / NO answers and is always sent from OpenWebif
# so, this RETVAL=128 is just a null value - as crash prevention
while [ $TOUT -gt 0 ]; do
RESULT=$(wget -qO- "http://127.0.0.1/web/messageanswer?getanswer=now" | grep "e2statetext")
echo "$RESULT" | grep -q -E "YES|JA|ÁNO" && { RETVAL=0; break; }
echo "$RESULT" | grep -q -E "NO|NEIN|NIE" && { RETVAL=1; break; }
sleep 1
TOUT=$((TOUT - 1))
done
# echo $RETVAL
return $RETVAL
}
if owQuery 15 Are%20you%20kidding%20me%3F; then
echo "the answer is YES / JA / ÁNO"
else
echo "the answer is NO / NEIN / NIE"
fi