DBox Steuern über HTTP Kommandos
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 23. April 2002, 19:57
DBox Steuern über HTTP Kommandos
Hallo,
ich möchte meine DBox über meine Visualisierung steuern.
Jetzt bin ich auf der Suche nach den HTTP Kommados, die ich zur DBox schicken muß um sie zu bedienen. Ich habe mir die api_doku.txt schon durchgelesen, jedoch fehlen mir dort Kommandos.
Ich suche welche um die DBox:
1. auf ein Programm zu schalten ==>http://dbox/control/zapto (richtig?)
2. auf dem Programm dann die Unteroptionen auswählen ==> ????
mir würde reichen, wenn ich die Tasten auf der Fernbedienung emulieren kann. Ich gebrauche dafür ja nur die gelbe, hoch, runter und OK Taste.
Ich hoffe mir kann jemand die Kommados für die Optionskanäle erklären.
Die Suche habe ich auch bemüht, bin dabei dann aber auf die API Doku gestoßen wo mir diese Funktion noch fehlt.
Gruß
Poetter
ich möchte meine DBox über meine Visualisierung steuern.
Jetzt bin ich auf der Suche nach den HTTP Kommados, die ich zur DBox schicken muß um sie zu bedienen. Ich habe mir die api_doku.txt schon durchgelesen, jedoch fehlen mir dort Kommandos.
Ich suche welche um die DBox:
1. auf ein Programm zu schalten ==>http://dbox/control/zapto (richtig?)
2. auf dem Programm dann die Unteroptionen auswählen ==> ????
mir würde reichen, wenn ich die Tasten auf der Fernbedienung emulieren kann. Ich gebrauche dafür ja nur die gelbe, hoch, runter und OK Taste.
Ich hoffe mir kann jemand die Kommados für die Optionskanäle erklären.
Die Suche habe ich auch bemüht, bin dabei dann aber auf die API Doku gestoßen wo mir diese Funktion noch fehlt.
Gruß
Poetter
-
- Tuxboxer
- Beiträge: 2634
- Registriert: Samstag 15. November 2003, 09:00
Wenn du ein aktuelles Image mit yweb hast, dann wurde alles was du möchtest schon umgesetzt.
Gib einfach mal die IP deiner Box ein
Gib einfach mal die IP deiner Box ein
Zu Fragen oder Nebenwirkungen der hier genannten Begriffe benutzen sie bitte die Suchfunktion oder konsultieren sie die [url=https://tuxbox.org/forum/viewforum.php?f=26&] Frequentliy Asked Questions[/quote].
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 23. April 2002, 19:57
Also ich habe das letzte YADI Image (Released) drauf.
Das ich im Browser umschalten kann ist klar, nur wie schalte ich bei den Sendern auf die Optionskanäle (Pr****** Sp***)
Und ich möchte die nicht über das WebInterface bedienen, sondern einfach nur HTTP Kommandos schicken.
Ich habe eine Visualisierung für mein Haus (EIB) und möchte dort ein paar Knöpfe anlegen um die DBox zu bedienen.
Gruß
Poetter
Das ich im Browser umschalten kann ist klar, nur wie schalte ich bei den Sendern auf die Optionskanäle (Pr****** Sp***)
Und ich möchte die nicht über das WebInterface bedienen, sondern einfach nur HTTP Kommandos schicken.
Ich habe eine Visualisierung für mein Haus (EIB) und möchte dort ein paar Knöpfe anlegen um die DBox zu bedienen.
Gruß
Poetter
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 23. April 2002, 19:57
-
- Tuxboxer
- Beiträge: 4332
- Registriert: Dienstag 7. Mai 2002, 17:04
leider hat <glaube ich> Yjogol seine nhttpd Erweiterungen <noch> nicht dokumentiert
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
-
- Tuxboxer
- Beiträge: 6044
- Registriert: Montag 17. November 2003, 06:48
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 23. April 2002, 19:57
-
- Tuxboxer
- Beiträge: 5001
- Registriert: Montag 11. November 2002, 15:26
-
- Foren-Moderator
- Beiträge: 1119
- Registriert: Sonntag 9. Juni 2002, 13:28
So, hab mal gerade im Code vom YWeb geschaut....folgender Aufruf im Browser
hat meine Dbox gerade runtergefahren....sollte also mit den original RCsim Tasten am Ende funktionieren.....
Greetz
Marc
Code: Alles auswählen
http://dboxIP/control/exec?Y_Tools&rcsim&KEY_POWER
Greetz
Marc
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 23. April 2002, 19:57
-
- Einsteiger
- Beiträge: 127
- Registriert: Donnerstag 23. Oktober 2003, 20:50
-
- Developer
- Beiträge: 809
- Registriert: Montag 4. Juli 2005, 18:45
Ja und Nein:Tommy hat geschrieben:leider hat <glaube ich> Yjogol seine nhttpd Erweiterungen <noch> nicht dokumentiert
die nhttpd-API wird in der controlapi.cpp realisiert.
Aus Kompatibilitätsgründen habe ich die "alten" Dateien möglichst kaum verändert. Es gibt also keine neue API im herkömmlichen Sinne.
Die neue Parsing-Engine ist für die Generierung der Seiten und weniger eine API. Und die Aufrufe von meinen Skripten habe ich nicht veröffentlicht, weil sie sich noch zu oft ändern.
@all
Was braucht ihr denn als nhttpd-API Aufruf?
Gruß
yjogol
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 24. Januar 2006, 17:40
Leider hab ich diesen 'Aufruf' gerade eben erst entdeckt...
Ich hätte da eine ganze Latte von Wünschen (auch alle vor dem Hintergrund die Box in ein Haussteuerungssystem zu integrieren). Also fangen wir mal mit dem Top-Wunsch an:
- einen Aufruf bei dem ich (in Textform) die Inhalte des gerade angezeigten OSD bekomme bzw. ein NACK in irgendeiner Form, wenn kein OSD eigeblendet ist. Wenn ich dann noch erfahren könnte, auf welchem Punkt des OSD der Benutzer gerade ist, wenn er die OK Taste drückt, wären 90% der Steuerungsprobleme gelöst
- ein anderer Wunsch (würde dem faulen Programmierer helfen und ansonsten nötigen Overheads reduzieren): ein Aufruf, der gesammelt alle Infos des aktuellen Kanals zurückgibt: ChannelID, PID, EPG laufender Event, EventID, dto für den folgenden Event etc.pp.
- ein anderer dringender Wunsch wäre irgendeine Art von 'push' service... Hintergrund ist, dass ich erfahren möchte, wenn sich der Status der Box ändert, weil z.b. die Box per IR FB umgeschaltet wurde. Es müsste also ein service permanent laufen, der jede Statusänderung oder Event an meine Telnet Konsole meldet... Ich denke aber mal, dass da der nhttpd nicht das richtige ist...
also, das wären doch schon mal ein paar... Ich weiss noch mehr
Danke und VG
Klaus
Ich hätte da eine ganze Latte von Wünschen (auch alle vor dem Hintergrund die Box in ein Haussteuerungssystem zu integrieren). Also fangen wir mal mit dem Top-Wunsch an:
- einen Aufruf bei dem ich (in Textform) die Inhalte des gerade angezeigten OSD bekomme bzw. ein NACK in irgendeiner Form, wenn kein OSD eigeblendet ist. Wenn ich dann noch erfahren könnte, auf welchem Punkt des OSD der Benutzer gerade ist, wenn er die OK Taste drückt, wären 90% der Steuerungsprobleme gelöst
- ein anderer Wunsch (würde dem faulen Programmierer helfen und ansonsten nötigen Overheads reduzieren): ein Aufruf, der gesammelt alle Infos des aktuellen Kanals zurückgibt: ChannelID, PID, EPG laufender Event, EventID, dto für den folgenden Event etc.pp.
- ein anderer dringender Wunsch wäre irgendeine Art von 'push' service... Hintergrund ist, dass ich erfahren möchte, wenn sich der Status der Box ändert, weil z.b. die Box per IR FB umgeschaltet wurde. Es müsste also ein service permanent laufen, der jede Statusänderung oder Event an meine Telnet Konsole meldet... Ich denke aber mal, dass da der nhttpd nicht das richtige ist...
also, das wären doch schon mal ein paar... Ich weiss noch mehr
Danke und VG
Klaus
-
- Developer
- Beiträge: 809
- Registriert: Montag 4. Juli 2005, 18:45
Hi,neun11turbo hat geschrieben:Leider hab ich diesen 'Aufruf' gerade eben erst entdeckt...
Ich hätte da eine ganze Latte von Wünschen (auch alle vor dem Hintergrund die Box in ein Haussteuerungssystem zu integrieren). Also fangen wir mal mit dem Top-Wunsch an:
- einen Aufruf bei dem ich (in Textform) die Inhalte des gerade angezeigten OSD bekomme bzw. ein NACK in irgendeiner Form, wenn kein OSD eigeblendet ist. Wenn ich dann noch erfahren könnte, auf welchem Punkt des OSD der Benutzer gerade ist, wenn er die OK Taste drückt, wären 90% der Steuerungsprobleme gelöst
- ein anderer Wunsch (würde dem faulen Programmierer helfen und ansonsten nötigen Overheads reduzieren): ein Aufruf, der gesammelt alle Infos des aktuellen Kanals zurückgibt: ChannelID, PID, EPG laufender Event, EventID, dto für den folgenden Event etc.pp.
- ein anderer dringender Wunsch wäre irgendeine Art von 'push' service... Hintergrund ist, dass ich erfahren möchte, wenn sich der Status der Box ändert, weil z.b. die Box per IR FB umgeschaltet wurde. Es müsste also ein service permanent laufen, der jede Statusänderung oder Event an meine Telnet Konsole meldet... Ich denke aber mal, dass da der nhttpd nicht das richtige ist...
also, das wären doch schon mal ein paar... Ich weiss noch mehr
Danke und VG
Klaus
leider liegen die OSD Daten nicht in Textform vor, sonder sind als Linux Framebuffer abzugreifen.
Dies macht fbshot - nur leider zu langsam.
Da hab ich auch keine Idee, ausser bei fbshot die Compression auszuschalten ...
Die Zusammenfassung von Aufrufen ist möglich, aber da sollten schon noch mehr Leute Bedarf haben.
push geht tatsächlich so nicht.
Was willst du denn da machen?
Gruß
yjogol
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 24. Januar 2006, 17:40
Hi,
...das mit dem OSD hab ich so befürchtet Schade.
Die Geschichte mit dem Sammelaufruf ist auch nicht soooo wichtig. Sie würde mir nur helfen die Commands die ich absetzen muss zu reduzieren: anstatt mehreren wget's halt nur noch eines...
Hintergrund für den 'push' ist folgendes: die Box soll in eine Haussteuerung (z.B. von Crestron oder AMX oder...) integriert werden. Die Steuerung (iss kein PC) kannst du dir als 'Blackbox' vorstellen, die mit der DBox eine Telnet-Verbindung aufbauen kann. Über diese Verbindung kann die Steuerung dann Befehle absetzen und die Ausgabe der Telnet-Konsole auswerten und entsprechende Aktionen durchführen.
Was ich konkret damit im Moment versuche ist zunächst sämtliche Zustände auszulesen und dann auf einem Touchpanel anzuzeigen. Der Benutzer sieht dann alle Programme auf Buttons mit den Senderlogos, die wiederum entsprechend der Bouquets oder wahlweise der Häufigkeit der Nutzung angeordnet sind, in einem Fenster die EPG - Info des laufenden Kanals etc. pp. Dafür muss ich natürlich mitkriegen, wenn die Box ihren Status ändert. Z.B. drückt der Benutzer OK-Links-OK (Kanalliste - voriges Bouquet - Kanal auswählen). In diesem Fall müsste ich natürlich die Anzeige des Touchpanel updaten. Wenn ich automatisch über den Programmwechsel informiert würde, wäre das der Trigger für einen Update. Wenn ich diese Info nicht bekomme muss ich entweder zyklisch immer wieder abfragen (Overhead) oder alle FB-Befehle nur über die Steuerung zulassen (uncool) und dann die Bedienlogik der Box in der Steuerung abbilden (d.h. ich müsste in der Steuerung 'wissen', was OK-links-OK auslöst), was recht aufwendig wäre. Das Szenario kann jetzt beliebig komplex werden: stell dir z.B. 3 Boxen im Keller vor, die über Kreuzschienen im ganzen Haus verteilt und über beliebig viel Interfaces gesteuert werden sollen. Da kommen dann noch Prioritätssteuerungen etc. pp. dazu.
So richtig kompliziert würde es werden, wenn jemand über das Web-IF die Bouquets ändert... Ich sehe wenig Chancen, das über periodische Abfragen mitzubekommen.
Apropos Abfragen.. Bei meinen Versuchen bin ich auf ein merkwürdiges Phänomen gestossen... Vielleicht weisst du woran das liegt:
Angenommen ich setze folgenden Befehl ab:
pzapit<CR><LF>
Das ergibt dann wie erwartet folgende Ausgabe:
1: Liste1
2: Liste2
3: Liste3
/var #
Jetzt schicke ich folgendes:
wget -q -O - http://127.0.0.1/control/getbouquet?bouquet=2&mode=TV
ich bekomme:
/var # 1: Das Erste
2: ZDF
3: Bayerisches Fernsehen
.
.
usf. , d.h. den Prompt am Anfang aber es kommt kein Prompt '/var # ' mehr nach der Ausgabe...
bei manchen wget Befehlen ist die Ausgabe OK (also Ausgabe, dann CR/LF, dann Prompt), bei manchen dagegen ist zuerst der Prompt, dann die Ausgabe, dann nix mehr... Iss echt lästig für die Analyse der Ausgabe in der Steuerung...
auf jeden Fall vielen Dank für die Antwort und vielleicht fällt dir ja noch was ein.
VG,
Klaus
...das mit dem OSD hab ich so befürchtet Schade.
Die Geschichte mit dem Sammelaufruf ist auch nicht soooo wichtig. Sie würde mir nur helfen die Commands die ich absetzen muss zu reduzieren: anstatt mehreren wget's halt nur noch eines...
Hintergrund für den 'push' ist folgendes: die Box soll in eine Haussteuerung (z.B. von Crestron oder AMX oder...) integriert werden. Die Steuerung (iss kein PC) kannst du dir als 'Blackbox' vorstellen, die mit der DBox eine Telnet-Verbindung aufbauen kann. Über diese Verbindung kann die Steuerung dann Befehle absetzen und die Ausgabe der Telnet-Konsole auswerten und entsprechende Aktionen durchführen.
Was ich konkret damit im Moment versuche ist zunächst sämtliche Zustände auszulesen und dann auf einem Touchpanel anzuzeigen. Der Benutzer sieht dann alle Programme auf Buttons mit den Senderlogos, die wiederum entsprechend der Bouquets oder wahlweise der Häufigkeit der Nutzung angeordnet sind, in einem Fenster die EPG - Info des laufenden Kanals etc. pp. Dafür muss ich natürlich mitkriegen, wenn die Box ihren Status ändert. Z.B. drückt der Benutzer OK-Links-OK (Kanalliste - voriges Bouquet - Kanal auswählen). In diesem Fall müsste ich natürlich die Anzeige des Touchpanel updaten. Wenn ich automatisch über den Programmwechsel informiert würde, wäre das der Trigger für einen Update. Wenn ich diese Info nicht bekomme muss ich entweder zyklisch immer wieder abfragen (Overhead) oder alle FB-Befehle nur über die Steuerung zulassen (uncool) und dann die Bedienlogik der Box in der Steuerung abbilden (d.h. ich müsste in der Steuerung 'wissen', was OK-links-OK auslöst), was recht aufwendig wäre. Das Szenario kann jetzt beliebig komplex werden: stell dir z.B. 3 Boxen im Keller vor, die über Kreuzschienen im ganzen Haus verteilt und über beliebig viel Interfaces gesteuert werden sollen. Da kommen dann noch Prioritätssteuerungen etc. pp. dazu.
So richtig kompliziert würde es werden, wenn jemand über das Web-IF die Bouquets ändert... Ich sehe wenig Chancen, das über periodische Abfragen mitzubekommen.
Apropos Abfragen.. Bei meinen Versuchen bin ich auf ein merkwürdiges Phänomen gestossen... Vielleicht weisst du woran das liegt:
Angenommen ich setze folgenden Befehl ab:
pzapit<CR><LF>
Das ergibt dann wie erwartet folgende Ausgabe:
1: Liste1
2: Liste2
3: Liste3
/var #
Jetzt schicke ich folgendes:
wget -q -O - http://127.0.0.1/control/getbouquet?bouquet=2&mode=TV
ich bekomme:
/var # 1: Das Erste
2: ZDF
3: Bayerisches Fernsehen
.
.
usf. , d.h. den Prompt am Anfang aber es kommt kein Prompt '/var # ' mehr nach der Ausgabe...
bei manchen wget Befehlen ist die Ausgabe OK (also Ausgabe, dann CR/LF, dann Prompt), bei manchen dagegen ist zuerst der Prompt, dann die Ausgabe, dann nix mehr... Iss echt lästig für die Analyse der Ausgabe in der Steuerung...
auf jeden Fall vielen Dank für die Antwort und vielleicht fällt dir ja noch was ein.
VG,
Klaus
-
- Einsteiger
- Beiträge: 123
- Registriert: Montag 28. November 2005, 11:31
fbshot macht sich zunächst die Mühe, das Bild von 8 auf 24 bit zu konvertieren, um es dann mit einer hohen zlib Kompressionsstufe wieder zu packen...yjogol hat geschrieben:leider liegen die OSD Daten nicht in Textform vor, sonder sind als Linux Framebuffer abzugreifen.
Dies macht fbshot - nur leider zu langsam.
Da hab ich auch keine Idee, ausser bei fbshot die Compression auszuschalten ...
Wenn man zusätzlich noch die Kompressionstufe auf 1 runtersetzt und die Optionen anpasst, könnte es fast reichen!)
-
- Developer
- Beiträge: 809
- Registriert: Montag 4. Juli 2005, 18:45
@neun11turbo
Ich glaube ich kann dir nicht helfen.
Da ich mich im wesentlichen nur am nhttpd vergehe und der ist ja eher ein pull service und weiss von den meisten Systemzuständen ohne weiteres nichts.
@just_me
Ich hab mal die Konvertiertung 8->24/32 rausgenommen, aber es ist nicht spürbar schneller geworden.
Die Kompression bringts natürlich. Ein Wechsel von png auf jpg könnte auch was bringen.
Gruß
yjogol
Ich glaube ich kann dir nicht helfen.
Da ich mich im wesentlichen nur am nhttpd vergehe und der ist ja eher ein pull service und weiss von den meisten Systemzuständen ohne weiteres nichts.
@just_me
Ich hab mal die Konvertiertung 8->24/32 rausgenommen, aber es ist nicht spürbar schneller geworden.
Die Kompression bringts natürlich. Ein Wechsel von png auf jpg könnte auch was bringen.
Gruß
yjogol
-
- Einsteiger
- Beiträge: 123
- Registriert: Montag 28. November 2005, 11:31
@yjogol
Danke für die Option Z_BEST_SPEED:)
http://cvs.tuxbox-cvs.sourceforge.net/c ... 1.1&r2=1.2
Eine Bitte zur Versionsnummer habe ich: Da der Maintainer von fbshot die Maintainership nicht an das dbox-Projekt abgegeben hat, fände ich es fair bei seiner Versionsnummer zu bleiben und stattdessen einen "Patchlevel" anzuhängen. (Also z.B. statt "0.4" etwa "0.3p0")
Danke,
Frieder
Danke für die Option Z_BEST_SPEED:)
http://cvs.tuxbox-cvs.sourceforge.net/c ... 1.1&r2=1.2
Eine Bitte zur Versionsnummer habe ich: Da der Maintainer von fbshot die Maintainership nicht an das dbox-Projekt abgegeben hat, fände ich es fair bei seiner Versionsnummer zu bleiben und stattdessen einen "Patchlevel" anzuhängen. (Also z.B. statt "0.4" etwa "0.3p0")
Danke,
Frieder
-
- Developer
- Beiträge: 809
- Registriert: Montag 4. Juli 2005, 18:45
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 24. Januar 2006, 17:40
kein Problem
Ich hab ja schon oben geschrieben, dass für den 'push' Service wohl der nhttpd nicht so der richtige Ansatzpunkt ist... Da müsste wohl ein eigener Daemon her... aber dafür reichen meine seeeehr bescheidenen C Kenntnisse bei weitem nicht...
Hat noch jemand ne Idee wie ich den wget dazu kriegen kann den Prompt nicht *vor* der eigentlichen Ausgabe zu bringen...? Da knabbere ich echt dran rum, da ich dann nie sagen kann (z.B. bei der Channel-List bei einem Bouquet) wann die Ausgabe fertig ist oder ob ich noch mit was rechnen muß.
Hintergrund ist, dass die Steuerung die Telnet-Kommunikation einfach als einen Buffer sieht, bei dem einzelne Bytes reinkommen. Ich muß selbst entscheiden, wann das 'logische Ende' eines solchen Byte-Streams gekommen ist. Wenn ich sicher sein könnten dass das immer '/var # ' ist ist das ganz einfach...
Danke und VH,
Klaus
Ich hab ja schon oben geschrieben, dass für den 'push' Service wohl der nhttpd nicht so der richtige Ansatzpunkt ist... Da müsste wohl ein eigener Daemon her... aber dafür reichen meine seeeehr bescheidenen C Kenntnisse bei weitem nicht...
Hat noch jemand ne Idee wie ich den wget dazu kriegen kann den Prompt nicht *vor* der eigentlichen Ausgabe zu bringen...? Da knabbere ich echt dran rum, da ich dann nie sagen kann (z.B. bei der Channel-List bei einem Bouquet) wann die Ausgabe fertig ist oder ob ich noch mit was rechnen muß.
Hintergrund ist, dass die Steuerung die Telnet-Kommunikation einfach als einen Buffer sieht, bei dem einzelne Bytes reinkommen. Ich muß selbst entscheiden, wann das 'logische Ende' eines solchen Byte-Streams gekommen ist. Wenn ich sicher sein könnten dass das immer '/var # ' ist ist das ganz einfach...
Danke und VH,
Klaus
-
- Beiträge: 1
- Registriert: Freitag 21. November 2003, 01:46
-
- Neugieriger
- Beiträge: 7
- Registriert: Dienstag 24. Januar 2006, 17:40