Brematic Gateway Intertechno

Begonnen von MrStonedfire, 21 September 2014, 19:05:49

Vorheriges Thema - Nächstes Thema

MrStonedfire

Hallo
Ich jetzt mit meinen "Winter-Projekt" begonnen.
Und sogleich taten sich 2 probleme auf.
Aber eins nach den anderen, ich nutze seit Jahren ein Intertechno System um mein Ausenrollo zusteuern.
Jetzt würde ich das ganze gerne mit Fhem steuern.
Das problem jetzt das Rollo fährt über Fhem weder Runter noch Rauf.
Zur weiteren Diagnose habe ich eine ELRO fernbedinung und Zwischensteckdose "umgedippt"??? und nun folgendes festgestellt.

Sender      Steckdose              Rollo
Fhem          An/Aus                  -/-
Elro FB       An/Aus                   -/Aus
Int... FB     An/Aus                 An/Aus

Leider muss ich mir der Elro FB alle vier Tasten gleichzeitig drücken, um meinen code zu senden.
Mein Intertechno Code ist ---Codierrad C-Guppe 1-Taste 2--- was bei Elro ---1An-2Aus-3u.4An-5Aus---.

Ich vermutte aufgrund der ereignisse das die letzten bits für Intertechno nicht ganz korregt sind.
Jemand eine idee ?

99_Utils
}
sub connair($$$){
my ($Master,$Slave,$action) = @_;
my  $SendData="";
my    $sA=0;
my    $sG=0;
my    $sRepeat=10;
my    $sPause=5600;
my    $sTune=350;
my    $sBaud=25;
my    $sSpeed=16;
my    $uSleep=800000;
my    $txversion=2;
my    $HEAD="TXP:$sA,$sG,$sRepeat,$sPause,$sTune,$sBaud,";
my    $TAIL=",$txversion,1,$sSpeed,;";
my    $AN="1,3,1,3,3";
my    $AUS="3,1,1,3,1";
my    $bitLow=1;
my    $bitHgh=3;
my    $seqLow=$bitHgh.",".$bitHgh.",".$bitLow.",".$bitLow.",";
my    $seqHgh=$bitHgh.",".$bitLow.",".$bitHgh.",".$bitLow.",";
my    $i=0;
my    $bit="";   
my    $msg="";

my  $bits=$Master;
    for($i=0; $i<length($bits); $i++) {   
        $bit=substr($bits,$i,1);
        if($bit=="0") {
            $msg=$msg.$seqLow;
        } else {
            $msg=$msg.$seqHgh;
        }
    }
my    $msgM=$msg;
   
    $bits=$Slave;
   
    $msg="";
    for($i=0; $i<length($bits); $i++) {
        $bit=substr($bits,$i,1);
        if($bit=="0") {
            $msg=$msg.$seqLow;
        } else {
            $msg=$msg.$seqHgh;
        }
    }
my    $msgS=$msg;

    if($action eq "on") {
        $SendData = $HEAD.$bitLow.",".$msgM.$msgS.$bitHgh.",".$AN.$TAIL;
    } else {
        $SendData = $HEAD.$bitLow.",".$msgM.$msgS.$bitHgh.",".$AUS.$TAIL;
    }
my ($socket,$data);
#  We call IO::Socket::INET->new() to create the UDP Socket
$socket = new IO::Socket::INET(PeerAddr=>'192.168.0.123:49880',Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}

config

define Tor dummy
attr Tor alias Tor
attr Tor eventMap BI:on B0:off
attr Tor room Garten
attr Tor setList state:on,off
define Tor_ntfy notify Tor:.* {\
    my $master = "30330";;\
    my $slave = "33330";;\
    my $v=Value("Tor");;\
    if ($v eq "on") {connair("$master","$slave","on")};;\
    if ($v eq "off") {connair("$master","$slave","off")};;\
    }