2 DBox2 reagieren immer auf eine FB

Boxenweitwurf
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

@petb
mit weiteren Kommandos meine ich die Fernbedienungsaktionen,
solange die 2. Box aktiv ist werden die Ferbedienungskommandos
auf die 2. Box weitergeleitet (hier über Ethernet), dazu darf die 2. Box natürlich nicht auf die FB hören.
Wenn wieder auf Box 1 zurückgeschaltet wird, dann bearbeitet Box 1 die FB Kommandos wieder selber,
auf das Rückschaltkommando muß sie auch selber hören :-)
Man hat quasi eine Masterbox und eine Slavebox

Houdini
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Und was ich auch noch nicht abgefangen habe ist ob die andere Box überhaupt an ist.
Man kann also die Fb sperren, auch wenn keine andere Box da ist.
Das könntest Du über einen ping an die andere Box feststellen.

Code: Alles auswählen

ping -c 2 192.168.000.3 #prüfen ob andere Box ein ist
if [ $? -eq 1 ]; then
echo andere Box ist ausgeschaltet
else
echo andere Box ist eingeschaltet
fi;
Greetz von DrStoned :lol: :lol: :lol:
petb
Erleuchteter
Erleuchteter
Beiträge: 785
Registriert: Samstag 6. August 2005, 03:39

Beitrag von petb »

DrStoned hat geschrieben:
Und was ich auch noch nicht abgefangen habe ist ob die andere Box überhaupt an ist.
Man kann also die Fb sperren, auch wenn keine andere Box da ist.
Das könntest Du über einen ping an die andere Box feststellen.

Code: Alles auswählen

ping -c 2 192.168.000.3 #prüfen ob andere Box ein ist
if [ $? -eq 1 ]; then
echo andere Box ist ausgeschaltet
else
echo andere Box ist eingeschaltet
fi;
Ja, das würde gehen.
Ich hatte ja gehofft das ich direkt den Status FB frei oder gesperrt abfragen kann über /control/rc? aber der liefert immer ok, egal ob frei oder blockiert.

Wenn hier der Status geliefert würde, könnte ich einen anderen Weg einschlagen und das Netz durchsuchen ob eine Box mit FB-Freigabe da ist und dann die Box sperren ohne an diese box ran zu müssen.
Das wäre irgendwie schöner.

Bye
PetB

<EDIT>
Habe jetz mal schnell eine Prüfung ob die Andere Box an ist eingebaut.
Ich benutze aber nicht Ping sondern schaue ob die Webapi auf der anderen Box da ist.
So sieht man auch ob es eine Dbox2 ist und ob die Webapi funktioniert.

ich versuche gerade das Multi_FB-Change Script so zu gestalten das es das Netz durchsucht und alle gefundenen Boxen in ein config File schreibt und daraus dann die Scripteinträge automatisch generiert.
So muss der USer dann nur "Ein" Script ins Scriptmenue einpflegen und der Rest sollte dann automatsich passieren.
Mal sehen ob das so klappt.
</EDIT>
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Wenn hier der Status geliefert würde, könnte ich einen anderen Weg einschlagen und das Netz durchsuchen ob eine Box mit FB-Freigabe da ist und dann die Box sperren ohne an diese box ran zu müssen.
Das wäre irgendwie schöner.

Wenn Du auf den Boxen Schalterdateien anlegst, wenn Du deren Fernbedienungen sperrst, die Du dann auf deren Vorhandensein abfragst, kannst Du dies erreichen. Im übrigen kannst Du Dir auch mal das Remote-Tiimer-Plugin von rich anschauen, darin findest du sehr viele Beispiele über Remote-Scripting. Damit können Aufnahme-Timer von bis zu 10 Remote-Boxen über eine Masterbox programmiert und gelöscht werden, sogar über das Internet. Übrigens ist da das FB sperren von Remote-Boxen auch drin. Vorraussetzung sind dabei allerdings das Flexmenü, das Input-Plugin und die Messagebox.

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
petb
Erleuchteter
Erleuchteter
Beiträge: 785
Registriert: Samstag 6. August 2005, 03:39

Beitrag von petb »

Aha, gut,

ich habe gerade ein aktuelles Problem:

ich habe ne Variable $MyIP
Darin ist z.B. 192.168.10.5

Ich möchte jetzt nur den Teil 192.168.10. haben.

Wie bekomme ich die Variable nun in den sed geparst. ?

Sollte das nicht irgendwie klappen ...
der sed sollte stimmen oder ? sed 's,[^\.]*$,,'

Bye PetB
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

evtl. damit

echo $MyIP | cut -f1-3 -d.
petb
Erleuchteter
Erleuchteter
Beiträge: 785
Registriert: Samstag 6. August 2005, 03:39

Beitrag von petb »

dietmarw hat geschrieben:evtl. damit

echo $MyIP | cut -f1-3 -d.
Hi,
und wie wieder zurück in eine Variable ?

Konkret will ich $MyIP in seine Bestandteile zerlegen.

Am besten als aus 192.168.10.11 -> 192 168 10 und 11, die jeweils wieder in variablen sein sollen.

Irgendwie steh ich auf dem Schlauch, substituiere ich, sucht er die Ip als Datei, Pipe ich kommt auchnur Mist raus

Wie war das denn mit den ( und den { Klammern ?

Bye PEtB
1 x DBOX2 Phillips, 1 x DBOX2 Nokia, 1 x DBOX2 Sagem, 100er Gibertini (Astra / Hotbird), NFS Server
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

#! /bin/bash

MyIP="192.168.13.55"

a1=`echo $MyIP | cut -f1 -d.`
a2=`echo $MyIP | cut -f2 -d.`
a3=`echo $MyIP | cut -f3 -d.`
a4=`echo $MyIP | cut -f4 -d.`
echo $a1
echo $a2
echo $a3
echo $a4
petb
Erleuchteter
Erleuchteter
Beiträge: 785
Registriert: Samstag 6. August 2005, 03:39

Beitrag von petb »

dietmarw hat geschrieben:#! /bin/bash

MyIP="192.168.13.55"

a1=`echo $MyIP | cut -f1 -d.`
a2=`echo $MyIP | cut -f2 -d.`
a3=`echo $MyIP | cut -f3 -d.`
a4=`echo $MyIP | cut -f4 -d.`
echo $a1
echo $a2
echo $a3
echo $a4
Das erzeugt das

Code: Alles auswählen

: not foundi_fb_change.sh: 17:
: not foundi_fb_change.sh: 18:
: not foundi_fb_change.sh: 19:
: not foundi_fb_change.sh: 20:
: not foundi_fb_change.sh: 21:
: not foundi_fb_change.sh: 22:
ich habe doch auf der Box keine bash, sondern nur eine sh.

Ich habs jetzt aber rausgefunden wie die notation sein muss.

IPRANGE=$(echo $MyIP | cut -f1-3 -d.)

Oder für die Einzelteile jetzt so.

Code: Alles auswählen

a1=$(echo $MyIP | cut -f1 -d.) 
a2=$(echo $MyIP | cut -f2 -d.)
a3=$(echo $MyIP | cut -f3 -d.) 
a4=$(echo $MyIP | cut -f4 -d.) 
echo $a1 
echo $a2 
echo $a3 
echo $a4
Und um den Klammernkram so herauszufinden hab ich jetzt wieder Stunden gebraucht.

ich denke mal so würde es auchmit meinem Regex sed Dingens gehen.

egal, so ist es am flexibelsten.

ich denke mal das wars dann.
jetzt ist der Multi_FB_Change soweit das er getestet werden kann.

Danke
Bye
PetB
petb
Erleuchteter
Erleuchteter
Beiträge: 785
Registriert: Samstag 6. August 2005, 03:39

Beitrag von petb »

Kurzbeschreibung Multi-FB-Change

Es gibt jetzt ein Init Script das nur ins Pluginverzeichnis geworfen werden muss.
Dort wird es ausführbar gemacht und wird in der console gestartet.
Es durchsucht dann anhand der Box IP das komplette Subnetz nach Boxen.
Das dauert zwar ein wenig, weil weder der Ping, noch der wegt auf der Box einen Zeit Parameter kennen und dann z.B. beim Ping, schon mal 2-3 Sekunden vergehen bis er aufgibt.
Also bei 250 Adresen, kann das dann auch schon mal ne Viertel Stunde dauern.
Für die ganz eiligen kann man aber auch die Ip Adressen in die conf Datei schreiben.
Das Script fragt dann ob es die Conf-Datei löschen soll.
Falls man nein sagt nimmt es diese als gegeben.

Und jetzt das schönste:
Dann erstellt es im Pluginverzeichnis für jede entfernte Box ein eigenes Script um die FB dort freizuschalten und auf der aktuellen Box zu sperren.
Natürlich setzt es die Scripte auch gleich ausführbar.

Dann muss man nur noch die Plugins neu laden und schwups ist es nun auch für mehrere Boxen möglich die FB Gewalt zu übertragen :-)

Also keine eigene Frickelei mit Scripterstellen usw.

Werde das jetzt selbst mal ein wenig auf mehreren Boxen testen und dann werd ich das ins wiki schieben.

bye PetB
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

ähhhm ping kann man die Anzahl der pakete mitgeben: http://fgouget.free.fr/bing/ping_src-man.shtml

schau mal nach -c wie count :wink:
---------------------------
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?
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Code: Alles auswählen

ping -c 2
=2 Pings. Hatte ich oben in meinem Beispiel drin.

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
petb
Erleuchteter
Erleuchteter
Beiträge: 785
Registriert: Samstag 6. August 2005, 03:39

Beitrag von petb »

Jops, es geht auch nicht so sehr um die Anzahl der Pings, die hab ich auf 1 gestellt. Wenn halt einer mal verloren geht, pech :-)
Es ärgert mich mehr das im Busybox Ping kein Zeitwert angegeben werden kann.
-W geht dort nicht.
Daher dauert es auch wenn man nur einen Ping ansetzt relativ lange bis er merkt das da nichts reagiert und dann zum nächsten geht.
und von 1 bis 254 dauert dann eben.

Aber man kann im script auch anstelle des vollen Scans einen Teilbereich angeben, das geht auch schneller.

Das ist ja auch alles nicht sooo wichtig.
Die meisten werden eh die IPs der Boxen direkt in der fb_change.conf eintragen.
Wenn das Script sieht das eine conf da ist und der user sagt das script soll keine neue anlegen, wird das Netz überhaupt nicht gescannt.

Die Funktion ist nur für user die sich kaum auskennen.
Da geht dann fast alles automatisch.

Ich werf es jetzt ins wiki rein.

Und bitte geht freundlich mit mir um.
Ich weis das da mit Sicherheit Verbesserungpotential vorhanden ist.
Ich habe kaum Kurzschreibweisen benutzt und sonst mag es vieleicht auch etwas rustikal wirken :lol:

Es ist public.

Bye
PetB
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Wenn Du möchtest, kannst Du Dein Script auch im JtG-Plugin-Forum uploaden. Für alle Leute, die Schwierigkeiten haben, es per copy und paste selbst zu erstellen. :wink: :wink: :wink:

Übrigens habe ich dort gerade eine neue Version des Remote-Timer-Plugins veröffentlicht.

8) 8) 8) Vielen Dank an rich dafür. 8) 8) 8)

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
petb
Erleuchteter
Erleuchteter
Beiträge: 785
Registriert: Samstag 6. August 2005, 03:39

Beitrag von petb »

DrStoned hat geschrieben:Wenn Du möchtest, kannst Du Dein Script auch im JtG-Plugin-Forum uploaden. Für alle Leute, die Schwierigkeiten haben, es per copy und paste selbst zu erstellen. :wink: :wink: :wink:

Greetz von DrStoned :lol: :lol: :lol:
Ja gerne, nur wie ?

Wenn auf der Box die Ip Adresse der Box über DHCP zugewiesen wird, wird diese dann ujnter var/etc/network/interfaces eingetragen ?
Davon geh ich im Moment nämlich aus, damit es auch für Newbies funktioniert.
Bye
PetB
1 x DBOX2 Phillips, 1 x DBOX2 Nokia, 1 x DBOX2 Sagem, 100er Gibertini (Astra / Hotbird), NFS Server
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Ja gerne, nur wie ?
Schreibe einfach einen neuen Beitrag im JtG-Plugin-Unterforum und hänge Dein Script als Attachment an.
Das Verschieben in den Download-Bereich übernehme dann ich. :wink:

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Du mußt den Anhang als ZIP packen, sonst geht es nicht.

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
Eckat
Interessierter
Interessierter
Beiträge: 31
Registriert: Mittwoch 14. Juli 2004, 23:40

Beitrag von Eckat »

So, also erstmal ein großes Bild an petb für das gute Script.

Als erstes: Es funktioniert!!! :D

Dann: Sorry, der Text ist etwas länger geworden, aber ich bin jedem sehr dankbar, der ihn trotzdem liest, da es, für mich, noch kleinste Problemchen gibt.

Nun aber einige kleine Anmerkungen. Bitte nur als Anregungen verstehen, ich bin sehr glücklich mit dem Ausgangsscript.

Dazu erstmal das von mir abgewandelte Script:

Code: Alles auswählen

#!/bin/sh
MyIP=192.168.2.101
OtherBoxIP=192.168.2.102

wget -q http://$MyIP/fb/controlpanel.dbox2?standby -O /dev/null
wget -q http://$MyIP/control/rc?lock -O /dev/null
wget -q http://$OtherBoxIP/control/rc?unlock -O /dev/null
wget -q http://$OtherBoxIP/fb/controlpanel.dbox2?standby -O /dev/null
Die Ausgabemeldung, was passiert, habe ich gelöscht, da sie bei mir nicht nur lange sondern dauerhaft angezeigt wurde. Es ging nur mit "home" zu beenden, was schwierig ist, wenn die FB gesperrt wurde ;)

Der erste und der letzte Befehl sollten vom Prinzip klar sein.
Für mich war es sinnvoll, dass die deaktivierte Box in den Standby geht und die reaktivierte aus dem Standby aufwacht, da mein TV dann die Umschaltung automatisch vornimmt :lol:
Dazu aber ein Phänomen welches in der Test-Phase aufgetreten ist.

Für einen ersten Test habe ich nur den Standby Befehl für die deaktivierte Box hinzugefügt (also $MyIP).
Da wurde dann die FB der anderen Box reaktiviert, gleichzeitig schien es aber laut LC-Display so, dass die Box auch aus dem Standby aufgewacht war. Sprich, da war der letzte Menü-Eintrag, der vor dem deaktivieren der FB aktiv war, angezeigt. Aber es gab kein TV-Bild. Drückte ich nun an der FB die Power-Taste, schaltete sich die 2. (also $OtherBoxIP) ein, obwohl sie laut LC-Display schon AN war.
Daraufhin hab ich mir gedacht, wenn ich die FB "umschalten" will, möchte ich sicher eh was an der anderen Box machen und habe daher den "Aufwachen-Standby"-Befehl für $OtherBoxIP hinzugefügt.

Allerdings habe ich nun ein wohl ähnlich gelagertes Problem. Um den Wechsel zu vollziehen, gehe ich ja über DBox -> Scripte -> "umschalten" zu dem Script, führe es mit ok aus. Dann schaltet sich, nach meinem Script, die erste Box aus, die FB wird dort gesperrt. Dann reaktiviert die 2. Box die FB und wacht aus dem Standby auf.
Bis hierhin ist alles ok, wenn ich mal davon ausgehe, dass an der 2. Box (also die gerade reaktivierte) vorher (z.B. per Webinterface) die FB gesperrt wurde.
Mache ich dann dort mit dem gleichen Script (natürlich angepasste IP's) den Wechsel. funktioniert erstmal alles. Aber nach kurzer Zeit (würde mal schätzen ca. 1/2 Min), erscheint auf der DBox (besser gesagt per TV-Ausgabe) das Menü, welches sonst über die DBox-Taste zu erreichen ist. Die hat sich also wohl vor dem Standby auch noch die "Menü-Position" gemerkt, zeigt es aber beim Aufwachen nicht direkt an. Nur sobald der TimeOut dafür aktiv wird, schaltet sie eine Stufe im Menü-Baum zurück, was man dann wieder sieht.
Könnte man das irgendwie beheben bzw. ändern?


Dann noch eine Kleinigkeit:
Wenn ich das Script aktiviere, bekomme ich die Meldung, ob ich das wirklich will (rote Taste für "ja"). Da aber die Aktivierung eh quasi nicht ausversehen zu treffen ist (wegen der Position im Menü), ist meiner Meinung nach die Abfrage nicht notwendig.
Kann man die evtl. abschalten?


Dann noch eine kleine Anmerkung:

Mit

Code: Alles auswählen

wget -q http://$MyIP/...
erhielt ich auf der Konsole (habs nur damit gesehen) eine Fehlermeldung.
Grund war, dass ich meine Web-Interfaces der DBoxen (nach http://wiki.tuxbox-cvs.sourceforge.net/ ... binterface) mit einem Zugriffsschutz versehen hatte.
Hier hilft, wie wahrscheinlich die meisten wissen

Code: Alles auswählen

wget -q http://USER:PASS@$MyIP/...
Als kleiner Tipp (USER:PASS@), bevor jemand verzweifelt und wie ich so oft den Wald vor lauter Bäumen nicht sieht :oops:

CU Eckat
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Dann noch eine Kleinigkeit:
Wenn ich das Script aktiviere, bekomme ich die Meldung, ob ich das wirklich will (rote Taste für "ja"). Da aber die Aktivierung eh quasi nicht ausversehen zu treffen ist (wegen der Position im Menü), ist meiner Meinung nach die Abfrage nicht notwendig.
Kann man die evtl. abschalten?
Diese Meldung kann man nicht abschalten, da es eine Systemmeldung von Neutrino ist.

Ich habe jetzt noch eine neuere Version erstellt, in dieser werden die Scripts gleich an die richtige Stelle in der Box geschrieben. Außerdem habe ich darin gleich noch eine readme.txt erstellt.

Die neue Version 0.2 findet Ihr hier zum Download.

Bitte beachten, dass Ihr zum Runterladen von Plugins im JtG-Forum registriert und eingeloggt sein müsst.

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol: