Modul für OpenATV, OpenPLI, XTrend, VU+, ....

Da es im anderen Thema nur noch um diese Dinger geht, bitte hier das Thema weiterführen :slight_smile:

Gerne könnt ihr mein Modul als Basis nehmen, ein Dropdown in die Instanz einbauen mit Receiver Auswahl und einfach nur um die entsprechenden Befehle/Funktionen für die im Betreff genannten Receiver/Systeme ergänzen.

Grüße,
Chris

Im anderen Thread hast du geantwortet das Dein Modul (bezogen auf Powerstate) genau so umgesetzt ist. Komischerweise funzt das andere Modul und Deins nicht. Also muss doch irgendetwas anders sein !? :stuck_out_tongue:

Ich kann keinen der Tests auf der Einstellungsseite erfolgreich ausführen.

„Die Taste konnte nicht gesendet werden“
„Testnachricht konnte nicht gesendet werden“
usw.

Evtl. das GetPowerState oder keine Ahnung. Da ich nu Dreamboxen zur Verfügung habe, kann ich es euch leider nicht sagen.

Im anderen Modul wird der PowerState so gesetzt:

public function SetPowerState($id) {
    return $this->request("/web/powerstate?newstate=$id");
  }

Bei mir so:

$url = "http://".$IP."/web/powerstate?newstate=".$PowerStateNr; // 0=ToggleStandby,1=Deepstandby,2=Reboot,3=RestartGUI
						$xml = @simplexml_load_file($url);

Also kann es daran nicht liegen…

…bleibt nur das „GetPowerState“, womit ich prüfe, ob der Receiver überhaupt erreichbar ist…

Aber das kann es auch nicht sein, wenn man mal den Teil aus dem anderen Modul vergleicht:

 public function ReadState() {
    $state = @trim(@$this->request('/web/powerstate')->e2instandby) == 'false';

…und dazu das Gegenüber aus meinem Modul:

$url = "http://".$IP."/web/powerstate";
						$xml = @simplexml_load_file($url);
						if ($xml->e2instandby == "false")
						{
								$PowerStateIST = 1;
								$this->SetValueInteger("PowerStateVAR", 1); // AN
						}
						else
						{
								$PowerStateIST = 2;
								$this->SetValueInteger("PowerStateVAR", 2); // STANDBY
						}
				}
				return $PowerStateIST;

…bleibt mir nur zu wiederholen > Ich habe nur Dreamboxen zur Verfügung, also muss jemand von euch wohl oder übel sich selbst die Mühe machen und entweder selbst ein Modul schreiben oder mein Modul erweitern/anpassen oder keine Ahnung :slight_smile: Ich würde euch gern helfen, kann es aber leider nicht, Mangels Hardware…

Also Dreambox kaufen oder selbst aktiv werden oder warten bis jemand anderes euch die Arbeit abnimmt…

Grüße,
Chris

Fehler gefunden … zumindest den ersten.

Da hier ein <br> drin ist.

echo $xml->e2instandby;

false	<br />

Ich gehe davon aus, das in dem anderen Modul diese

<br />
entfernt werden … ?

Ich hab es noch nicht manuell getestet. Bekommst Du dann auch korrekte hdd Werte und bspw. Einschaltzustand (Ein/Aus oder Standby) angezeigt.
Das passte bei dem Modul nicht. Einige Dinge funktionierten, andere nicht.

@Tetrapack: Dann werd doch mal ein wenig genauer :slight_smile:

Was GENAU funktioniert nicht? Kommt ein Fehler? Wird ein falscher Wert von der Funktion zurück geliefert? …?

Was bringt z.B. dieser Code bei dir für ein Ergebnis?

$result1 = Enigma2BY_GetPowerState($Enigma2BY_InstanzID);
var_dump($result);

Und was bringt dieser Code für ein Ergebnis (IP vom Receiver bitte eintragen)?

<?

$IP = "192.168.x.x";

$result = GetPowerState($IP);
print_r($result);


function GetPowerState($IP)
{
    		if (Sys_Ping($IP, 2000) == false)
    		{
    				return "PING ist FALSE!";
    		}
    		else
    		{
		    		$url = "http://".$IP."/web/powerstate";
						$xml = @simplexml_load_file($url);
						$return[] = $xml;
						if ($xml->e2instandby == "false")
						{
								$return[] = "Receiver eingeschaltet";
						}
						else
						{
								$return[] = "Receiver im Standby";
						}
				}
				return $return;
}
?>

Grüße,
Chris

Naja, was heißt genauer … von den Variablen die vom Modul angelegt werden, wird keine einzige aktualisiert.

int(2)

Und die 2. Ausgabe:

Array
(
    [0] => SimpleXMLElement Object
        (
            [e2instandby] => 
false	
        )

    [1] => Receiver im Standby
)

Benutze ich jedoch ein:

if (trim($xml->e2instandby) == "false")

kommt folgende Ausgabe:

Array
(
    [0] => SimpleXMLElement Object
        (
            [e2instandby] => 
false	
        )

    [1] => Receiver eingeschaltet
)

Na das ist doch mal eine Aussage :slight_smile:

Dann geht das Modul vlt. bei euch doch…die meisten Funktionen liefern nur etwas zurück, wenn GetPowerState == 1 ist :slight_smile: (also der Receiver als eingeschaltet erkannt wird).

Dann geben die VU und Co das vlt. nur anders zurück und deshalb geht nix…moooooment, das haben wir gleich :smiley:

-Chris-

Solange die Images auf E2 beruhen, muss das auch zu 99% gleich funktionieren …

Update online :slight_smile: Bitte Modul updaten und testen. Danke!

-Chris-

Also bei mir ist false auch nicht gleich „false“.
Vielleicht mal ‚richtig‘ vergleichen ?
Also entweder Typen umwandeln oder/und erstmal mit var_dump prüfen ob es wirklich ein boolean oder eine String ist.
print_r zeigt den Datentyp ja nicht an.
Michael

Ich hatte an der Stelle meine „ResultAuswerten“ Funktion nicht verwendet. Hab das aber jetzt umgebaut und mit dem Update von grad eben sollte die Rückgabe von „GetPowerState“ stimmen und vlt. funktioniert damit dann auch gleich der komplette Rest hoff :slight_smile:

Ich warte gespannt auf die Rückmeldung :slight_smile:

-Chris-

PS: An der Stelle kommt von Enigma2 ein String zurück, welchen ich mit der Funktion aber dann auf „echtes“ true/false „umwandle“.

Nu gehts … alle Variablen gefüllt :smiley: :loveips:

Coooooool :slight_smile:

Na dann viel Spaß damit allerseits und weiter geht’s im „originalen“ Thread :smiley:
Enigma2BY - Modul für Receiver mit Enigma2

-Chris-