70_STV.pm: Patch für sofortiges Verbinden

Begonnen von vbs, 06 Januar 2015, 12:22:12

Vorheriges Thema - Nächstes Thema

vbs

Hi Zwiebel,

würde gerne diesen Patch vorschlagen, der ein Kommando "connect" hinzufügt. Wenn man das setzt, dann versucht FHEM sofort eine Verbindung zum TV aufzubauen, ohne dass auf das 60 Sekunden Intervall gewartet wird. Ich nutze das zB, wenn ich den TV gerade per CEC eingeschaltet habe und dann eben weiß, dass er jetzt verfügbar ist.

Ich habe das Kommando (im Gegensatz zu den anderen Befehl) bewusst klein geschrieben, um es von den TV-Befehlen abzugrenzen. Ist natürlich auch nur ein Vorschlag...

Was hältst du davon?

Zwiebel

Hallo vbs,

ich habe generell kein Problem mit deinem Patch, kann ich gern einspielen.

Ich würde gern wissen woher die 60s kommen? Das STV verwendet keinen Intervall. Was verwendest du um das Modul herum als Intervall bei dem das Blocking zuschlägt?

viele Grüße
Zwiebel

vbs

Hi Zwiebel,

wenn ich es nicht total falsch verstehe, dann sind die 60 Sekunden hart kodiert in DevIo.pm.

Zeile 216:

    my $timeout = $hash->{TIMEOUT} ? $hash->{TIMEOUT} : 3;
    my $conn = IO::Socket::INET->new(PeerAddr => $dev, Timeout => $timeout);
    if($conn) {
      delete($hash->{NEXT_OPEN});
      $conn->setsockopt(SOL_SOCKET, SO_KEEPALIVE, 1) if(defined($conn));

    } else {
      Log3 $name, 3, "Can't connect to $dev: $!" if(!$reopen);
      $readyfnlist{"$name.$dev"} = $hash;
      DevIo_setStates($hash, "disconnected");
      $hash->{NEXT_OPEN} = time()+60;
      return "";
    }

Zwiebel

Hallo vbs,

ich glaube du löst da ein ganz anderes Problem was mit einem ansteuern von einem Samsung TV garnichts zu tun hat.

Möchtest du nach dem einschalten so schnell wie möglich ein weiteres Kommando Absetzen?

Den Patch von dir hab ich eingespielt und ist ab morgen verfügbar.

viele Grüße
Zwiebel



vbs

Ja stimmt schon, dass das kein Samsung-spezifisches Problem ist. Ich will potentiell möglichst schnell nach dem Einschalten in der Lage sein, ein Befehl abzusetzen ohne die 60 Sekunden abwarten zu müssen.
Danke fürs Einchecken. :)

Spiff

Hi vbs,

ich habe nach dem Hinweis von aplatac für das Mediaportal-Plugin die Connect-Routine übernommen.
http://forum.fhem.de/index.php/topic,18895.msg274068.html#msg274068
Ich weiss zwar nicht, was die ganz genau macht, aber sie funktioniert hier auch gut.  ::)
In dem Modul heisst sie MP_Connect.

Vielen Dank dafür!

Gruß
Spiff.

vbs

Das freut mich, danke für die Rückmeldung!