Heute mal keine Frage oder Boxkritik sondern ein Tipp:
Wer über das Netzwerk mal eine Popup Nachricht zur Box schicken möchte die dann auf dem
Box Fernseher dargestellt wird, kann dies mit dem nachfolgenden Python Script machen.

Das Script läuft unter Python 2.7 oder 3.x und ist somit auch direkt auf der Dreambox selbst lauffähig
(getestet auf einer ONE).
Grundbedingung ist natürlich, dass die Box zum sendenden Rechner eine Netzwerkverbindung
hat und auf der Box das Webinterface aktiviert ist.
Hautpmenü->Einstellungen->Netzwerk->Webinterface-Webinterface starten: auf ein.
Was per Default eigentlich schon der Fall ist.
from __future__ import print_function
from xml.etree import ElementTree as ET
from os.path import split
from sys import version_info, argv
if version_info.major == 3:
from urllib.request import urlopen
from urllib.parse import urlencode
else:
from urllib2 import urlopen
from urllib import urlencode
boxNetNameOrAddr='dreambox' # Hier Default Netzwerk-Namen oder Netzwerk-Adresse der Zielbox eintragen
messageTimeout = 10 # Default Anzeigezeit der dargestellten Popup Nachricht
def request (url, data):
try:
result = urlopen (url, data, timeout = 0.5)
return result.read ()
except:
return None
argLen = len (argv)
if argLen > 1:
Message = argv [1]
if argLen > 2:
timeout = argv [2]
if timeout.isdigit ():
messageTimeout = int (timeout)
if argLen > 3:
boxNetNameOrAddr = argv [3]
else:
print ('\nUsage: ' + split(argv[0])[-1] + ' "Message String" <MessageTimout <BoxNetNameOrAddr>>\n')
quit (1)
result = request ("http://" + boxNetNameOrAddr + "/web/session", b'sessionid=0')
if result != None:
root = ET.fromstring (result)
id = root.text
dataSendDir = {"text" : Message, "type" : 2, "timeout" : messageTimeout, "sessionid" : id}
dataToSend = urlencode (dataSendDir).encode ('utf8')
result = request ("http://" + boxNetNameOrAddr + "/web/message", dataToSend)
if result != None:
root = ET.fromstring (result)
# print ('\n' + root[0].tag, '=', root[0].text, '-', root[1].tag, '=', root[1].text + '\n')
Display More
Hier einige Aufrufbeispiele:
python dm.py "Dies ist ein einfacher Test Text"
Sendet die Popup Nachricht zu der Box deren Netzwerkname oder IP Adresse im dm.py Skript in "boxNetNameOrAddr"
eingetragen ist. Die Anzeigedauer ist 10 Sekunden.
python dm.py "Dies ist ein einfacher Test Text" 5
Sendet die Popup Nachricht zu der Box deren Netzwerkname oder IP Adresse im dm.py Skript in "boxNetNameOrAddr"
eingetragen ist. Die Anzeigedauer ist 5 Sekunden.
python dm.py "Dies ist ein einfacher Test Text" 5 dream1
Sendet die Popup Nachricht zu der Box deren Netzwerkname "dream1" lautet. Die Anzeigedauer ist 5 Sekunden.
python dm.py "Dies ist ein einfacher Test Text" 0 192.168.0.5
Sendet die Popup Nachricht zu der Box deren Netzwerkadresse "192.168.0.5" ist. Die Anzeigedauer ist unbegrenzt.
Die Nachricht kann aber über die OK Taste der FB gelöscht werden.
python dm.py "Dies ist ein einfacher Test Text\nder über 2 Zeilen geht" 5 dream1
Sendet die 2 Zeilen Popup Nachricht zu der Box deren Netzwerkname "dream1" lautet. Die Anzeigedauer ist 5 Sekunden.
python dm.py "Dies ist ein einfacher Test Text\nder über 2 Zeilen geht" 5 localhost
Sendet die 2 Zeilen Popup Nachricht zu sich selbst. Bedingung: Das Script wird auf der Box gestartet.
Die Anzeigedauer ist 5 Sekunden.
Viel Spaß!
/Willi/