Connair über FHEM steuern

Begonnen von rippi46, 06 November 2013, 20:04:17

Vorheriges Thema - Nächstes Thema

rippi46

#180
Hallo RKronenberg,

das ist exact die Sequenz aus Post #177 für on für A1. Darunter ist die für off für A1.

Das mit dem ";" kannst du probieren, wenn es so nicht funktioniert.

Gruß rippi

PS: kannst du mal dein Definitionen posten?
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

RKronenberg

Hallo Rippi,

die beiden Sequenzen von der Konsole gesendet, senden den richtigen Ein- und Auschaltbefehl, die Dosen schalten (endlich) das ";" spielt jetzt da keine Rolle.

Gruß Ralph

rippi46

Dann sollte der Code jetzt auch funktionieren!

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

RKronenberg

Hallo Rippi,

sollte in der $SendData die zweite Bedingung nicht $c_AUS beinhalten?

meine 99_revteleUtils.pm sieht jetzt so aus:

use CGI qw(:standard);
use IO::Socket;
use MIME::Base64;
use Time::Piece;
$main::NextUpdate = ();

sub revtele {
my $SendData="";
my $c_A = "0";
my $c_G = "0";
my $c_repeat = "10";
my $c_pause = "5600";
my $c_tune = "350";
my $c_baud = "25";
my $c_speed = "16";
my $c_master = "$_[0]";
my $c_slave = "$_[1]";
my $c_bitLow="1";
my $c_bitHgh="3";
my $c_tx433ver="1,";

my $c_seqHgh="$c_bitHgh,$c_bitLow,$c_bitHgh,$c_bitLow,";
my $c_seqLow="$c_bitLow,$c_bitHgh,$c_bitLow,$c_bitHgh,";
my $c_seqF1="$c_bitLow,$c_bitHgh,$c_bitHgh,$c_bitLow,";


my $c_AN = "$c_seqF1$c_seqF1";
my $c_AUS = "$c_seqLow$c_seqLow";
my $c_add="$c_seqLow$c_seqF1$c_seqF1";


$c_bits[A]="$c_seqHgh$c_seqF1$c_seqF1$c_seqF1";
$c_bits[B]="$c_seqF1$c_seqHgh$c_seqF1$c_seqF1";
$c_bits[C]="$c_seqF1$c_seqF1$c_seqHgh$c_seqF1";
$c_bits[D]="$c_seqF1$c_seqF1$c_seqF1$c_seqHgh";

$c_bits[1]="$c_seqHgh$c_seqF1$c_seqF1";
$c_bits[2]="$c_seqF1$c_seqHgh$c_seqF1";
$c_bits[3]="$c_seqF1$c_seqF1$c_seqHgh";


my ($state) = "$_[2]";
if ($state eq "on")
{
  $SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AN$c_tx433ver$c_speed;";
}
else
{
  $SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AUS$c_tx433ver$c_speed;";
}


my ($socket,$data);
#  We call IO::Socket::INET->new() to create the UDP Socket
$socket = new IO::Socket::INET(PeerAddr=>'192.168.100.102:49880',Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}


es schaltet noch nicht.

rippi46

Hallo RKronenberg,

das muß natürlich $c_AUS heißen. (sorry)

Kannst du auch die Definition in der fhem.cfg posten. Vielleicht wird nicht A1 übergeben?

Zum Test könntest du auch die beiden Code für on und off direkt in die 99_revteleUtils.pm einsetzen.

also so:
use CGI qw(:standard);
use IO::Socket;
use MIME::Base64;
use Time::Piece;
$main::NextUpdate = ();

sub revtele {
my $SendData="";
my $c_ip = "Deine IP des Gateway";
my $c_port = "49880";
my $c_A = "0";
my $c_G = "0";
my $c_repeat = "10";
my $c_pause = "5600";
my $c_tune = "350";
my $c_baud = "25";
my $c_speed = "16";
my $c_master = "$_[0]";
my $c_slave = "$_[1]";
my $c_bitLow="1";
my $c_bitHgh="3";
my $c_tx433ver="1";

my $c_seqHgh="$c_bitHgh,$c_bitLow,$c_bitHgh,$c_bitLow,";
#my $c_seqHgh="3,1,3,1,";

my $c_seqLow="$c_bitLow,$c_bitHgh,$c_bitLow,$c_bitHgh,";
#my $c_seqLow="1,3,1,3,";

my $c_seqF1="$c_bitLow,$c_bitHgh,$c_bitHgh,$c_bitLow,";
#my $c_seqF1="1,3,3,1,";


my $c_AN = "$c_seqF1$c_seqF1";
#my $c_AN = "1,3,3,1,1,3,3,1,";


my $c_AUS = "$c_seqLow$c_seqLow";
#my $c_AUS = "1,3,1,3,1,3,1,3,";

my $c_add="$c_seqLow$c_seqF1$c_seqF1";
#my $c_add="1,3,1,3,1,3,3,1,1,3,3,1,";


$c_bits[A]="$c_seqHgh$c_seqF1$c_seqF1$c_seqF1";
#$c_bits[A]="3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,";
 
$c_bits[B]="$c_seqF1$c_seqHgh$c_seqF1$c_seqF1";
$c_bits[C]="$c_seqF1$c_seqF1$c_seqHgh$c_seqF1";
$c_bits[D]="$c_seqF1$c_seqF1$c_seqF1$c_seqHgh";

$c_bits[1]="$c_seqHgh$c_seqF1$c_seqF1";
#$c_bits[1]="3,1,3,1,1,3,3,1,1,3,3,1,";

$c_bits[2]="$c_seqF1$c_seqHgh$c_seqF1";
$c_bits[3]="$c_seqF1$c_seqF1$c_seqHgh";


my ($state) = "$_[2]";
if ($state eq "on")
{
  #$SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AN$c_tx433ver,$c_speed";
  $SendData = "TXP:0,0,10,5600,350,25,3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,3,1,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,16";
}
else
{
  #$SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AUS$c_tx433ver,$c_speed";
  $SendData = "TXP:0,0,10,5600,350,25,3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,3,1,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,3,3,1,1,3,1,3,1,3,1,3,1,16";
}


my ($socket,$data);
#  We call IO::Socket::INET->new() to create the UDP Socket
$socket = new IO::Socket::INET(PeerAddr=>"$c_ip:$c_port",Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}


das ganze funktioniert dann aber nur mit A1.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

RKronenberg

Nach Korrektur sieht mein Notify für den Schalter so aus:

define Schalter_8_ntfy notify Schalter_8:.* {\
    my $master = "A";;\
    my $slave = "1";;\
    my $v=Value("Schalter_8");;\
    if ($v eq "on") {revtele("$master","$slave","on")};;\
    if ($v eq "off") {revtele("$master","$slave","off")};;\
    }
attr Schalter_8_ntfy room 99_System


meine 99_revteleUtils wie aus dem letzten Post.

sollte alles so korrekt sein. Ich füge jetzt aber mal deine direkte übergabe so ein, und sehe was dann passiert.

RKronenberg

Wenn ich die beiden $sendData fest übergebe, schalten die Dosen.

#$SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AN$c_tx433ver,$c_speed";
  $SendData = "TXP:0,0,10,5600,350,25,3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,3,1,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,16";
}
else
{
  #$SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AUS$c_tx433ver,$c_speed";
  $SendData = "TXP:0,0,10,5600,350,25,3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,3,1,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,3,3,1,1,3,1,3,1,3,1,3,1,16";
}


Das funktioniert. Irgendwo fehlt ein Komma oder was auch immer...

rippi46

#187
Oder es wird nicht A1 übergeben.

versuche mal das:

use CGI qw(:standard);
use IO::Socket;
use MIME::Base64;
use Time::Piece;
$main::NextUpdate = ();

sub revtele {
my $SendData="";
my $c_ip = "Deine IP des Gateway";
my $c_port = "49880";
my $c_A = "0";
my $c_G = "0";
my $c_repeat = "10";
my $c_pause = "5600";
my $c_tune = "350";
my $c_baud = "25";
my $c_speed = "16";

#my $c_master = "$_[0]";
my $c_master = "A";

#my $c_slave = "$_[1]";
my $c_slave = "1";

my $c_bitLow="1";
my $c_bitHgh="3";
my $c_tx433ver="1";

my $c_seqHgh="$c_bitHgh,$c_bitLow,$c_bitHgh,$c_bitLow,";
#my $c_seqHgh="3,1,3,1,";

my $c_seqLow="$c_bitLow,$c_bitHgh,$c_bitLow,$c_bitHgh,";
#my $c_seqLow="1,3,1,3,";

my $c_seqF1="$c_bitLow,$c_bitHgh,$c_bitHgh,$c_bitLow,";
#my $c_seqF1="1,3,3,1,";


my $c_AN = "$c_seqF1$c_seqF1";
#my $c_AN = "1,3,3,1,1,3,3,1,";


my $c_AUS = "$c_seqLow$c_seqLow";
#my $c_AUS = "1,3,1,3,1,3,1,3,";

my $c_add="$c_seqLow$c_seqF1$c_seqF1";
#my $c_add="1,3,1,3,1,3,3,1,1,3,3,1,";


$c_bits[A]="$c_seqHgh$c_seqF1$c_seqF1$c_seqF1";
#$c_bits[A]="3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,";

$c_bits[B]="$c_seqF1$c_seqHgh$c_seqF1$c_seqF1";
$c_bits[C]="$c_seqF1$c_seqF1$c_seqHgh$c_seqF1";
$c_bits[D]="$c_seqF1$c_seqF1$c_seqF1$c_seqHgh";

$c_bits[1]="$c_seqHgh$c_seqF1$c_seqF1";
#$c_bits[1]="3,1,3,1,1,3,3,1,1,3,3,1,";

$c_bits[2]="$c_seqF1$c_seqHgh$c_seqF1";
$c_bits[3]="$c_seqF1$c_seqF1$c_seqHgh";


my ($state) = "$_[2]";
if ($state eq "on")
{
  $SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AN$c_tx433ver,$c_speed";
  #$SendData = "TXP:0,0,10,5600,350,25,3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,3,1,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,16";
}
else
{
  $SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AUS$c_tx433ver,$c_speed";
  #$SendData = "TXP:0,0,10,5600,350,25,3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,3,1,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,3,3,1,1,3,1,3,1,3,1,3,1,16";
}


my ($socket,$data);
#  We call IO::Socket::INET->new() to create the UDP Socket
$socket = new IO::Socket::INET(PeerAddr=>"$c_ip:$c_port",Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}


Gruß rippi

PS: Es wird  A1 übergeben , aber im folgenden D1 verwendet; irgendwo ist noch ein Fehler
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

rippi46

#188
hier  eine hoffentlich funktioniernde 99_revtelUtils.pm:

use CGI qw(:standard);
use IO::Socket;
use MIME::Base64;
use Time::Piece;
$main::NextUpdate = ();

sub revtele ($$$){
my ($hash) = @_;
my $SendData="";
my $c_ip = "Deine IP des Gateway";
my $c_port = "49880";
my $c_A = "0";
my $c_G = "0";
my $c_repeat = "10";
my $c_pause = "5600";
my $c_tune = "350";
my $c_baud = "25";
my $c_speed = "16";
my $c_master = "$_[0]";
print " Wert von c_master = $_[0] \n";

my $c_slave = "$_[1]";
print " Wert von c_slave = $_[1] \n";

my $c_bitLow="1";
my $c_bitHgh="3";
my $c_tx433ver="1";

my $c_seqHgh="$c_bitHgh,$c_bitLow,$c_bitHgh,$c_bitLow,";
my $c_seqLow="$c_bitLow,$c_bitHgh,$c_bitLow,$c_bitHgh,";
my $c_seqF1="$c_bitLow,$c_bitHgh,$c_bitHgh,$c_bitLow,";


my $c_AN = "$c_seqF1$c_seqF1";
my $c_AUS = "$c_seqLow$c_seqLow";
my $c_add = "$c_seqLow$c_seqF1$c_seqF1";


if ($c_master eq "A"){
$c_bits[A]="$c_seqHgh$c_seqF1$c_seqF1$c_seqF1";
print "Wert von Master: $c_bits[A]\n";}
elsif ($c_master eq "B"){
$c_bits[B]="$c_seqF1$c_seqHgh$c_seqF1$c_seqF1";
print "Wert von Master: $c_bits[B]\n";}
elsif ($c_master eq "C"){
$c_bits[C]="$c_seqF1$c_seqF1$c_seqHgh$c_seqF1";
print "Wert von Master: $c_bits[C]\n";}
elsif ($c_master eq "D"){
$c_bits[D]="$c_seqF1$c_seqF1$c_seqF1$c_seqHgh";
print "Wert von Master: $c_bits[D]\n";}

if ($c_slave eq "1"){
$c_bits[1]="$c_seqHgh$c_seqF1$c_seqF1";}
elsif ($c_slave eq "2"){
$c_bits[2]="$c_seqF1$c_seqHgh$c_seqF1";}
elsif ($c_slave eq "3"){
$c_bits[3]="$c_seqF1$c_seqF1$c_seqHgh";}

print "Wert von Master: $c_bits[$c_master]\n";
print "Wert von Slave: $c_bits[$c_slave]\n";


my ($state) = "$_[2]";
print "Wert von state = $_[2] ";

if ($state eq "on")
{
  $SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AN$c_tx433ver,$c_speed";
  print "Das ist der Wert SendData = $SendData \n";
}
else
{
  $SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AUS$c_tx433ver,$c_speed";
print "Das ist der Wert SendData = $SendData \n";
}


my ($socket,$data);
#  We call IO::Socket::INET->new() to create the UDP Socket
$socket = new IO::Socket::INET(PeerAddr=>"$c_ip:$c_port",Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}


die print-Befehle kannst du entfernen, wenn alle funktioniert.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

RKronenberg

Jetzt wird das Gateway wieder nicht angesprochen, keine Sendeaktivität, im Logfile:

Wert von c_master = A
Wert von c_slave = 1
Wert von Master: 3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,
Wert von Master: 3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,
Wert von Slave: 3,1,3,1,1,3,3,1,1,3,3,1,
Wert von state = on Das ist der Wert SendData = TXP:0,0,10,5600,350,25,3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,3,1,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,16
2017.12.06 15:05:41 3: Schalter_8_ntfy return value: ERROR in Socket Creation : Das Argument ist ungültig

Wert von c_master = A
Wert von c_slave = 1
Wert von Master: 3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,
Wert von Master: 3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,
Wert von Slave: 3,1,3,1,1,3,3,1,1,3,3,1,
Wert von state = off Das ist der Wert SendData = TXP:0,0,10,5600,350,25,3,1,3,1,1,3,3,1,1,3,3,1,1,3,3,1,3,1,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,3,3,1,1,3,1,3,1,3,1,3,1,16
2017.12.06 15:06:04 3: Schalter_8_ntfy return value: ERROR in Socket Creation : Das Argument ist ungültig



sch.....schade

rippi46

Habs geändert!!!!

Waren die falschen Anführungstriche!!!!!!

Anstatt '$c_ip:$c_port' muss es  "$c_ip:$c_port" sein

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

RKronenberg

Hallo Rippi,

You made it. !!!

es funktioniert. Super. Und wieder etwas dazu gelernt.

DANKE !!!

Gruß Ralph

P.S. werde meine funktionierende 99_revteleUtils.pm und die Schalterdefinition noch posten, wenn jemand das gleiche sucht.

rippi46

Hallo RKronenberg,

schön, dass es jetzt funktioniert. Das war jetzt eine schwere Geburt!!!
Manchmal sind es echt Kleinigkeiten, warum es nicht funktioniert, oder man baut wieder alte Fehler ein.

Zudem sind meine Perl-Kenntnisse auch nicht die Besten.

Aber ich denke jeder hat etwas dazu gelernt.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

RKronenberg

Hallo,

hier jetzt für alle die noch ein REV Telecontrol Set rumliegen haben und das auch gerne mit dem Brematic GWY433 schalten möchten.
Die Funksteckdosen sind hier https://wiki.fhem.de/wiki/Intertechno_Code_Berechnung#REV_Telecontrol im FHEM WIKI beschrieben. Die Geräte haben auch die Bezeichnung 08342 auf der Rückseite und einen Drehschalter mit den Positionen A1 - D3.

Folgende Datei in das entsprechende FHEM Verzeichnis speichern:

99_revteleUtils.pm

use CGI qw(:standard);
use IO::Socket;
use MIME::Base64;
use Time::Piece;
$main::NextUpdate = ();

sub revtele ($$$){
my ($hash) = @_;
my $SendData="";
my $c_ip = "Deine Gateway IP Adresse";
my $c_port = "49880";
my $c_A = "0";
my $c_G = "0";
my $c_repeat = "10";
my $c_pause = "5600";
my $c_tune = "350";
my $c_baud = "25";
my $c_speed = "16";
my $c_master = "$_[0]";
my $c_slave = "$_[1]";
my $c_bitLow="1";
my $c_bitHgh="3";
my $c_tx433ver="1";

my $c_seqHgh="$c_bitHgh,$c_bitLow,$c_bitHgh,$c_bitLow,";
my $c_seqLow="$c_bitLow,$c_bitHgh,$c_bitLow,$c_bitHgh,";
my $c_seqF1="$c_bitLow,$c_bitHgh,$c_bitHgh,$c_bitLow,";


my $c_AN = "$c_seqF1$c_seqF1";
my $c_AUS = "$c_seqLow$c_seqLow";
my $c_add = "$c_seqLow$c_seqF1$c_seqF1";


if ($c_master eq "A"){
$c_bits[A]="$c_seqHgh$c_seqF1$c_seqF1$c_seqF1";}
elsif ($c_master eq "B"){
$c_bits[B]="$c_seqF1$c_seqHgh$c_seqF1$c_seqF1";}
elsif ($c_master eq "C"){
$c_bits[C]="$c_seqF1$c_seqF1$c_seqHgh$c_seqF1";}
elsif ($c_master eq "D"){
$c_bits[D]="$c_seqF1$c_seqF1$c_seqF1$c_seqHgh";}

if ($c_slave eq "1"){
$c_bits[1]="$c_seqHgh$c_seqF1$c_seqF1";}
elsif ($c_slave eq "2"){
$c_bits[2]="$c_seqF1$c_seqHgh$c_seqF1";}
elsif ($c_slave eq "3"){
$c_bits[3]="$c_seqF1$c_seqF1$c_seqHgh";}

my ($state) = "$_[2]";

if ($state eq "on")
{
  $SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AN$c_tx433ver,$c_speed";
  }
else
{
  $SendData = "TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bits[$c_master]$c_bits[$c_slave]$c_add$c_AUS$c_tx433ver,$c_speed";
}


my ($socket,$data);
#  We call IO::Socket::INET->new() to create the UDP Socket
$socket = new IO::Socket::INET(PeerAddr=>"$c_ip:$c_port",Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}


und dann die Definition für einen Schalter:


define Schalter_8_ntfy notify Schalter_8:.* {\
    my $master = "A";;\
    my $slave = "1";;\
    my $v=Value("Schalter_8");;\
    if ($v eq "on") {revtele("$master","$slave","on")};;\
    if ($v eq "off") {revtele("$master","$slave","off")};;\
    }
attr Schalter_8_ntfy room 99_System
define Schalter_8 dummy
attr Schalter_8 alias Licht Schlafzimmer
attr Schalter_8 eventMap BI:on B0:off
attr Schalter_8 genericDeviceType switch
attr Schalter_8 group Licht
attr Schalter_8 room 22_Schlafzimmer
attr Schalter_8 setList state:on, off


Vielen Dank an Rippi46 der hier 2 Tage lang mit mir unermüdlich das Ganze durchprobiert hat. So stell ich mir Hilfe in einem Forum vor.

Gruß Ralph

immer noch unterwegs mit einem Raspi3 und FHEM 5.7. - Never Change a running System.  :D :D

Müller

Hallo,
in welches Verzeichnis muß die dateinen (Brematic.pm) ablegen?

Danke
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung