Connair über FHEM steuern

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

Vorheriges Thema - Nächstes Thema

sven1973

Hallo zusammen,
ich bin absoluter Anfänger mit fhem und arbeite mich noch ein.
Zu meiner Test Konfiguration:
Ich habe mir auf einem virtuellen Windows 7 ein fhem aufgesetzt, was auch erst einmal soweit ohne Probleme funktioniert.
Zudem habe ich von Brennenstuhl das GWY 433 und dazu lernbare Brennenstuhl  RCP3600 IP44 Funksteckdosen. Zusätzlich habe ich mir die App SteckerPRO geholt sowohl für mein IPhone wie auch für den PC.  Das Brennenstul GWY lässt sich mit der SteckerPRO App auch problemlos steuern bzw. ich kann damit sowohl vom PC aus, wie auch von meinem Handy aus die Steckdosen schalten.
Nun ist aber mein Ziel das ganze noch komfortabler mit fhem auf Dauer zu steuern, denn mein Ziel ist es, das ich später auch einige Steckdosen Zeit gesteuert betreiben möchte oder sogar mit Sprache wie zum Beispiel mit Alexa  steuern möchte.
Aber bevor ich Zeitsteuerung oder Sprachesteuerung angehe, muss ich erst einmal fhem soweit haben, dass meine Steckdosen bzw. das Brennenstuhl GWY angesprochen wird.

Ich habe mir schon in viele Foren, Beiträge und auch Anleitungen mittlerweile durchgelesen. Aber ich hänge nun an einer Stelle fest und hoffe das man mir hier weiter hilft um wenigstens schon einmal die Steckdosen auch von fhem aus, An  und Aus zu anschalten.

Was schon funktionierte ist die Einbindung der Module ,,10_BREMATIC.pm" und ,,00_BREMATIC_LAN.pm", so wie es Tompsq (Thomas) in dem Post  #125 beschrieben hat.
Zumindest habe ich dieses 1 zu 1 übernommen und nur die IP Adresse von meinem Gateway angepasst. (Meine interne IP Adresse vom Brennenstuh GWY  ist: 192.168.2.151 Port 49880)
Nun kann ich sehen wenn ich auf ,,On" oder ,,off" klicke von dem  Schalter SchaltsteckdoseBrematic, das mein Brennenstuhl GWY auch angesprochen wird. Zumindest leuchtet dann kurz die blaue Lampe an dem GWY auf.
Das Problem ist aber, das ich lernbare Brennenstuhel  RCP3600 IP44 Schaltsteckdosen habe und weis so nicht welchen Code die haben?
Auch hier hatte ich nun versucht mich weiter einzuarbeiten und habe dann mit Wireshark und dem Programm Steckerpro am PC gearbeitet und mir die TXP Codes ermittelt die an die Schaltsteckdosen gesendet werden.

So ist z.B. für eine Schaltsteckdose der TXP Code für An:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;
Und für Aus:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,1,2,1,2,1,2,2,1,2,1,1,2,2,1,1,2,1,2,2,1,1,2,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2;

Mein Problem ist nun wie bekomme ich diese nun in Fhem eingebunden bzw. kann diese in die Master und Slave Codierung umwandeln, damit ich auch die Schaltsteckdosen in fhem angelegt bekomme und von dort aus steuern kann?
Über Hilfe bin ich sehr dankbar, denn ich sehe vermutlich den Wald vor laute Bäumen im Moment nicht mehr.
Grüße
Sven

rippi46

Hallo sven1973

du kannst ja vielleicht von der Fernbedienung alle Codes aufzeichnen und dann in einem Dummy definieren.

so ähnlich:

if ($state eq "on")
{
  system("echo \"TXP:*code für on*,;\" | nc -u IP-Adresse Port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
else
{
  system("echo \"TXP:*code für off*,;\" | nc -u IP-Adresse Port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}


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

sven1973

Hallo Rippi,
danke für eine Antwort. Aber als Anfänger verstehe ich noch nicht ganz wo ich den Code eintragen muss?
Kannst Du mir vielleicht das was ich genau machen soll schritt für schritt erklären?
Einen Schalter als Dummy in fehm anlegen mit z.B. Den Befehl:
define Wohnzimmer1  dummy
bekomme ich hin.
Aber wie kann ich nun zu diesem Dummy meinen passenden ausgelesenen TXP Code zu diesem Schalter Dummy zu ordnen, so dass er passend reagiert wenn ich ich ein und aus schalte.
Der Schalter muss dann auch diesen Code passend an Brennenstuhl GWY weiter geben, damit dann die Schaltsteckdose reagiert.
Ich hoffe Du kannst es mir als Anfänger erklären, damit ich das umsetzen kann.
Grüße
Sven

rippi46

Hallo sven1973

so ähnlich sollte es aussehen:

Leider ungetestet!!

define SchalterA dummy
attr SchalterA devStateIcon on:li_wht_on off:li_wht_off
attr SchalterA eventMap BI:on B0:off
attr SchalterA room Wohnzimmer
attr SchalterA setList state:on,off


define SchalterA_ntfy notify SchalterA:.* {\
    my $v=Value("SchalterA");;\
    if ($v eq "on") ({system("echo TXP:*code für on*,; | nc -u IP-Adresse Port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null")});;\
    if ($v eq "off") ({system("echo TXP:*code für off*,; | nc -u IP-Adresse Port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null")});;\
    }
attr SchalterA_ntfy room Wohnzimmer


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

sven1973

Hallo Rippi,
ich stelle mich vermutlich total ungeschickt an?
Die ersten Codes bzw. Befehle sind mir klar, die kann ich in der fhem Eingabe direkt eintippen und der Schalter wird direkt angelegt. Zum testen habe ich auch einfach erste einmal Deine Vorgabe 1 zu 1 übernommen. Heißt in der fhem.cfg Datei sind dann auch die eintragungen gekommen und ich habe den Raum Wohnzimmer mit dem SchalterA nun erhalten.
Aber wie gehe ich nun mit Deiner zweiten Code Vorgabe vor?
Muss ich diese in die Datei 99_myUtils.pm eintragen ?
Wenn ich Dich richtig verstehe, dann müsste ich meinen TXP Code in Deiner Vorgabe dann auch so eintragen:

define SchalterA_ntfy notify SchalterA:.* {\
    my $v=Value("SchalterA");;\
    if ($v eq "on") ({system("echo TXP: 0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;,; | nc -u IP-Adresse Port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null")});;\
    if ($v eq "off") ({system("echo TXP0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,1,2,1,2,1,2,2,1,2,1,1,2,2,1,1,2,1,2,2,1,1,2,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2;,; | nc -u IP-Adresse Port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null")});;\
    }
attr SchalterA_ntfy room Wohnzimmer


Meine ausgelesener Code mit Wireshark zum testen ist:
für An:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;
Und für Aus:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,1,2,1,2,1,2,2,1,2,1,1,2,2,1,1,2,1,2,2,1,1,2,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2;
Mit diesem Code möchte ich erst mal testen. Wenn ich dann den Zusammenhang auch verstehe, kann ich die Schalter und auch alle anderen weiteren Codes von meinen Funksteckdosen in fhem einbauen und dann von fhem aus das Brennenstuhl GWY steuern, was dann wiederum die Schaltsteckdosen einschaltet.

rippi46

#140
Hallo sven1973,

der zweite Teil ist ein Notify und  soll auch in die fhem.cfg.

Du kannst ja erst einmal folgendes eingeben:

define SchalterA_ntfy notify SchalterA:.* {}

und anschließend dann den Code in der Klammer in die Definition noch einfügen.

oder versuch einmal folgenden Befehl in Fhem einzugeben und schau ob die Steckdose schaltet:
Natürlich mit deiner IP und Port!!!

{ system("echo \"TXP: 0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;; \" | nc -u IP-Adresse Port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null") }


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

sven1973

Hallo Rippi,
Ich bin jetzt erst dazu gekommen mich mit Deinen weiteren vorgeschlagenen Tipps zu beschäftigen.
Leider immer noch ohne Erfolg.
Gebe ich folgenden Code wie von Dir vorgeschlagen in Fhem ein:
{ system("echo \"TXP: 0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;; \" | nc -u 192.168.2.151 49880 & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null") }

Da bekomme ich dann in Fhem die Fehlermeldung:   Global symbol "$pid" requires explicit package name (did you forget to declare "my $pid"?) at (eval 131) line 1.

Ich habe auch die Codes wie von Dir in dem Ntfy unter DEF eingetragen.
Anschließend habe ich mir auch mit einem Editor einmal die eintragungen in der fhem.cfg angeschaut.

Was ich nun nicht verstehe, ich habe zum Testen auch mein Brennenstuhl GWY eingebunden mit dem Modul von Tompsq (Thomas) wie in dem Post  #125 beschrieben.
Wenn ich nun den Schalter SchaltsteckdoseBrematic betätige, dann leuchtet auch die blaue LED am Bennenstuhl GWY kurz auf. Heißt mit anderen Worten, dann wird auch das Brennstuhl GWY angesprochen. Allerdings natürlich mit einem falschen Bit Code.
Da ich selber lernbare Brennenstuhl Schaltsteckdosen habe und weis natürlich nicht welche Code Reheinfolge ich setzen muss, weil die ja keine Jumper haben, habe ich mir die Arbeit mit Wireshark gemacht.
Ich habe dann den TXP Code mit Wireshark und der SteckerPro am PC mir mitgeschnitten. Denn mit der SteckerPro App kann ich schon über das Brennenstuhl GWY ohne Probleme meine Schaltsteckdosen steuern.

Nutze ich nun die von Dir vorgeschlagenen einstellungen des SchalterA, wird das Brennenstuhl GWY nicht angesprochen, es leuchtet keine blaue LED kurz auf. 
Ich bekomme aber auch keine Fehlerausgabe und im Event Monitor kann ich sehen, das ein bzw. ausgeschaltet wird. Mehr aber auch nicht.
Das Brennestuhl GWY hat bei mir die IP Adresse 192.168.2.151 und der Port ist die 49880.
Was kann noch falsch sein? Oder kann man den TXP Code umwandeln in eine passende Bit Folge, so dass ich die passenden Bit einstellen kann, wie es bei der SchaltsteckdoseBrematic der Fall ist?
Heißt dann z.B.: den Befehl  define SchaltsteckdoseBrematic BREMATIC Brem_gw  ?????  ?????

Hier einmal ein Auszug aus meiner  fhem.cfg, wo von der unter Teil mit SchalterA nach Deiner Anleitung entstanden ist:

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
define Brem_gw BREMATIC_LAN 192.168.2.151 49880
define SchaltsteckdoseBrematic BREMATIC Brem_gw 01100 01000
attr SchaltsteckdoseBrematic IODev Brem_gw
attr SchaltsteckdoseBrematic room Teich
#
define SchalterA dummy
attr SchalterA devStateIcon on:li_wht_on off:li_wht_off
attr SchalterA eventMap BI:on B0:off
attr SchalterA room Wohnzimmer
attr SchalterA setList state:on,off
define SchalterA_ntfy notify SchalterA:.*|SchalterA:state:.*|define SchalterA_ntfy notify SchalterA:.* {\my $v=Value("SchalterA");;;;\
    if ($v eq "on") ({system("echo TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2,;; | nc -u 192.168.2.151 49880 & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null")});;;;\
    if ($v eq "off") ({system("echo TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,1,2,1,2,1,2,2,1,2,1,1,2,2,1,1,2,1,2,2,1,1,2,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,;; | nc -u 192.168.2.151 49880 & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null")});;;;\
    }\
attr SchalterA_ntfy room Wohnzimmer

rippi46

Hallo sven1973

probiere mal folgendes:

trage in die 99_myUtils.pm ein:

sub connairSchalterA {
my $c_ip = "192.168.2.151";
my $c_port = "49880";
my ($state) = "$_[0]";
if ($state eq "on")
{
  system("echo \"TXP: 0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
else
{
  system("echo \"TXP: 0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
}


und in der fhem.cfg:

define SchalterA dummy
attr SchalterA devStateIcon on:li_wht_on off:li_wht_off
attr SchalterA eventMap BI:on B0:off
attr SchalterA room Wohnzimmer
attr SchalterA setList state:on,off

define SchalterA_ntfy notify SchalterA:.* {\
    my $v=Value("SchalterA");;\
    if ($v eq "on") {connairSchalterA("on")};;\
    if ($v eq "off") {connairSchalterA("off")};;\
    }
attr SchalterA_ntfy room Wohnzimmer


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

sven1973

Hallo Rippi,
danke für Deine Geduld mit mir und Deinen Erklärungen.
Ich habe Deine vorgaben 1 zu 1 in der fhem.cfg und auch in der 99_myUtils.pm übernommen.
Ich habe dann fhem auch zu Sicherheit einmal neu gestartet.
Leider geht es immer noch nicht. Aber ich bekomme nun in der Logdatei wenigstens einen Fehler, der darauf schließt, dass ich kein ,,nc" Befehl schicken kann.
Liegt es daran das ich fhem auf einem Windows 7 Betriebssystem aufgesetzt habe und nicht auf ein Linux Betriebssystem?

Hier mal die Fehlermeldung aus dem Log, wenn ich nun den SchalterA auf On und Off schalte:

2017.10.08 23:36:47 1: PERL WARNING: Terminating on signal SIGINT(2)
2017.10.08 23:36:48 1: starting in console mode
2017.10.08 23:36:48 1: Including fhem.cfg
Der Befehl "nc" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Der Befehl "nc" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Was mich nur wundert, mit den Modul von Tompsq (Thomas) wie in dem Post  #125 beschrieben, bekomme ich wenigstens das Brennenstuhl GWY auch angesprochen.
Danke noch mal für Deine Geduld und auch Hilfe die Du mir gibst.

rippi46

Hallo sven1973,

dir fehlt netcat für Windows (nc).

https://github.com/diegocr/netcat

dann sollte es funktionieren.

oder in der 99_myUtils.pm:

sub connairSchalterA {
my ($state) = "$_[0]";
my  $SendData="";

    if($state eq "on") {
        $SendData = "TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2";
    } else {
        $SendData = "TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,1,2,1,2,1,2,2,1,2,1,1,2,2,1,1,2,1,2,2,1,1,2,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2";
    }
my ($socket,$data);
#  We call IO::Socket::INET->new() to create the UDP Socket
$socket = new IO::Socket::INET(PeerAddr=>'192.168.2.151:49880',Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}


Dass es mit dem Modul von Thomas soweit funktioniert (Gateway angesprochen) liegt nur daran, dass die IP und der Port stimmt. Wenn du aus deiner Bitfolge
die einzelnen Teile (maste,slave, tune,baud, ....) extrahieren könntest, würde deine 99_myUtils so aussehen:

sub brennenstuhl ($$$){
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.2.151:49880',Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}

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

sven1973

Hallo Rippi,
Danke für Deine super schnellen Antworten.
Sobald ich zu Hause bin, werde ich testen und Deine Empfehlung testen. Mit dem Thema netcat hatte ich mir schon fast gedacht gehabt und hatte schon angefangen gehabt danach zu googeln. Aber dann würde es mir gestern doch zu spät. Insofern schon mal Danke für den Link.
Ich werde berichten, sobald ich netcat installiert habe.

Das Thema mit der Bitfolge hatte ich auch schon die ganze Zeit immer im Kopf. Aber bisher wüßte ich nicht wie ich mir aus dem Ausgelesenen TXP Code die Bitfolge ermitteln kann? Zumindest finde ich da auch nichts zu im Internet. Wenn Du da auch einen Tipp hast, ist dieses auch ein Ansatz und ich könnte dann meine Schalter mit dem Modul von Thomas auch einbinden. Aber vorausgesetzt ist natürlich das ich die richtige Bitfolge ermittele.

Ich werde später erstmal den Ansatz mit netcat angehen und berichten.
Erst einmal Danke das Du mir hilfst.

sven1973

Hallo Rippi,
erste kurze und schnelle Rückantwort: "Du bist der beste! Danke!" :D
Ich habe auf die schnelle für den ersten Test nur entschieden mal eben die 99_myUtils.pm 1 zu 1 zum testen von Dir zu übernehmen.
Und siehe da, nun schaltet auch die Schaltsteckdose.
Somit sind meine ausgelesenen Codes die ich über Wireshark gemacht habe schon einmal richtig!
Der Bringer bei mir ist dann der Befehl $SendData = "TXP: .........
Das läuft auch wenn man Fhem in einem Windows installiert hat und Netcat (nc) hat. Wobei die Variante mit Netcap werde ich auch noch mal testen.
So viel eben schon einmal auf die Schnelle als Antwort das es mit Deiner zu Letzt angegeben 99_myUtils.pm funktioniert und ich nun schon mal Dank Dir auf dem richtigen weg bin.
Vielleicht hilft es auch dem ein oder anderen User der hier mit ließt.

sven1973

Hallo Rippi,
zweite Rückmeldung zu Netcat!
Ich habe mir die nc.exe von vor 4 Jahren auf dem angegebenen Link von Dir herunter geladen und in das Verzeichnis c:\Windows\System32 mit abgelegt auf dem indows 7 PC, wo ich fhem drauf am laufen habe..
Dann habe ich sicherheitshalber fhem einmal neu gestartet.
Allerdings funktioniert Deine von gestern angegebene  99_myUtils.pm aus Deiner Antwort #142 dann immer noch nicht.
Aber um sicher zu gehen ob der nc Befehl überhaupt funktioniert, habe ich mir dann eine Dos Konsole auf dem PC wo Fhem drauf ist aufgemacht und dort einmal folgenden Befehl eingegeben direkt unter c:\

echo \"TXP: 0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;\" | nc -u 192.168.2.151 49880 & pid=$!

Mit diesem Befehl spreche ich zwar das Brennenstuhl GWY an, heißt die blaue LED flackert  4 mal ganz schnell auf und das war es. Aber meine Schaltscheckdose die ich aktuell zum testen nutze, schaltet leider nicht ein.

Somit ist glaube der bessere Weg für mich es über den Befehl $SendData = "TXP: .........
weiter umzusetzen. Heißt mit der 99_myUtils.pm aus Deiner Antwort #144 und den eintragungen in der fhem.cfg aus Deiner Antwort #142.

Es sei denn ich entscheide mich eines Tages dazu, dass ich mir einen raspberry pi zulege und dann somit Linux als Betriebssystem habe. Aber im Moment zum testen und um mich erst einmal mit fhem weiter zu beschäftigen werde ich es auf meinem virtuellen Windows 7 Testsystem lassen und kann mich nun an die nächsten Aufgaben machen.

Die nächsten Aufgaben werden sein:
Zeitsteuerung die ich gerne einbauen möchte, damit die Schalsteckdosen später automatisch zu gewissen Zeiten gesteuert werden, denn das kann diese SteckerPro App nicht  und ich aber dennoch manuell eingreifen kann und auch trotzdem nach wie vor die StecklerApp nutzen kann.
Und dann zum Schluss möchte ich mich noch mit der Spracheingabe beschäftigen, um z.B. über Siri oder Alexa die Steckdosen ansprechen.

Danke noch mal, das Du mir bei dem ersten Weg geholfen hast, damit ich aus fhem heraus das Brennenstuhl GWY 433 MHz ansprechen kann und so nun auch jede beliebige Schaltsteckdose die auch lernbar ist, steuern kann. Danke!

rippi46

Hallo sven1973,

schön, dass es soweit schon einmal funktioniert.
Bei der Version mit netcat habe aus Versehen 2-mal den Code für on angegeben, vielleicht ist das das Problem, das es nicht schaltet.

Vielleicht könntest du den Code von einer zweiten Steckdose aufzeichnen, damit man den Code für on, master und slave extrahieren kann.

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

sven1973

Hallo Rippi 46,

doch sie schaltet ein und aus. mit folgender 99_myUtils.pm von Dir:
sub connairSchalterA {
my ($state) = "$_[0]";
my  $SendData="";

    if($state eq "on") {
        $SendData = "TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2";
    } else {
        $SendData = "TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,1,2,1,2,1,2,2,1,2,1,1,2,2,1,1,2,1,2,2,1,1,2,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2";
    }
my ($socket,$data);
#  We call IO::Socket::INET->new() to create the UDP Socket
$socket = new IO::Socket::INET(PeerAddr=>'192.168.2.151:49880',Proto=>'udp') or die "ERROR in Socket Creation : $!\n";
$socket->send($SendData);

$socket->close();

}


Aber wenn ich in der fhem versuche direkt in der Befehlszeile folgenden Befehl zu testen:
echo \"TXP: 0,0,6,0,505,25,6,14,2,1,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;\" | nc -u 192.168.2.151 49880 & pid=$!
Dann bekomme ich ein Fehler das er "echo" nicht kennt.
Darauf hin habe ich direkt die Konsole von dem Windows 7 PC geöffnet wo ich auch fhem drauf am laufen habe und Netcat installiert habe und dort den Befehl noch einmal abgeschickt.
Dann wenn ich es über die direkte Konsole mache, flackert die blaue LED vom Brenenstuhl GWY 4 mal kurz auf. Aber die Schaltsteckdose schaltet nicht.  :-\
Einen weiteren TXP Code von meinen weiteren Steckdosen lese ich Morgen noch einmal gerne aus, denn das muss ich jetzt ja sowieso machen, wenn ich meine anderen Steckdosen auch schalten möchte.
Die weiteren TXP Codes die ich dann ausgelesen habe, stelle ich dann Morgen gerne Dir zu Verfügung.
Noch mal danke für Deine Hilfe und einen schönen Restabend. Bis Morgen dann.
Gruß Sven