Connair über FHEM steuern

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

Vorheriges Thema - Nächstes Thema

rippi46

#150
Hallo sven1973

Zitatecho \"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=$!
so kannst du den Befehl nicht in die Kommandozeile von fhem eingeben.
fhem kennt den Systembefehl echo nicht.

Du musst fhem sagen, das jetzt ein Systembefehl kommt. Also so:

{ 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 >/dev/null >/dev/null" ) }

Das Problem bei der Sache ist nur, dass sich netcat nicht beendet und dadurch dein fhem hängt. Du musst dann den Prozess nc "abschießen"

Am besten ist von jeder Steckdose die on-off-codes aufzuzeichnen, um dadurch Rückschlüsse auf die einzelnen Parameter zu bekommen.

Wenn das mit dem udp-Protokoll aber funktioniert, dann brauchst du kein netcat.

Falls alle Stricke reißen:
könnte man in der fhem.cfg folgendes definieren:

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") {connairSchalter("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")};;\
    if ($v eq "off") {connairSchalter("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")};;\
    }
attr SchalterA_ntfy room Wohnzimmer


und in der myUtils.pm mit netcat:

sub connairSchalter {
my ($SchalterCodeONOFF) = "$_[0]";
my $c_ip = "192.168.2.151";
my $c_port = "49880";
system("echo \"$SchalterCodeONOFF;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}


oder mit udp:

sub connairSchalter {
my ($SchalterCodeONOFF) = "$_[0]";
my  $SendData="";

$SendData = "$SchalterCodeONOFF";
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 Rippi46,
danke für Deine Antwort, die muss ich mir gleich noch einmal ganz in Ruhe anschauen.
Deinen Vorgeschlagenen Systembefehl werde ich in fehm auch gleich noch einmal in Ruhe testen.
Von netcat werde ich abstand nehmen, weil genau das was Du geschildert hast, habe ich auch bereits in anderen Foren Beiträgen gelesen, das sich dann ggf.  fhem aufhängt.

Aber ich war in der Zwischenzeit nicht untätig gewesen und habe zum einen meine insgesamt fünf Brennenstuhl RCR3600IP 44 Schaltsteckdosen mit Wireshark ausgelesen, so dass ich hier jetzt nun die Ein- und Ausschalt TXP zusammen habe.

Vielleicht noch einmal ausführlich zu meinem Projekt,  womit ich mich beschäftige vorab, damit Du einen genaueren Eindruck meines Vorhabens bekommst:
Diesen Sommer habe ich mir im Garten eine größere und tiefere Teichanlage gebaut. Und diese möchte ich nun mit unterschiedlichen Spots (Licht) und auch Wasserspielen ausstatten. Deswegen auch die Brennenstuhl RCR3600IP 44 Schaltsteckdosen, damit ich die draußen verwenden kann.
Im Haus selber habe ich noch ein paar Baumarkt Schaltsteckdosen, die ich für die Fernsehanlage oder Stehlampe & Co verwende. Die Steckdosen vom Baumarkt habe ich auch bereits über das Brennenstuhl GWY am laufen und kann die mit der SteckerPro App steuern. Was mir eigentlich auch erst einmal so ausreicht. Vielleicht werde ich diese aber auch später noch mal in fhem zusätzlich mit einbinden?
Aber an meinem neuen Gartenteich möchte ich mir gewisse Senaren programmieren, das zu gewissen Uhrzeiten gewisse Lichter angehen oder auch z.B. die Pumpe für den Wasserfall. Und so bin ich zu fhem gekommen um mir das dann selber nach und nach nun so zu programmieren wie ich es gerne möchte. Denn genau solche Zeitsteuerungen kann die SteckerPro App nicht und ist auch nicht so flexibel wie fhem.
Aber ich muss gestehen, ich bin noch ein absoluter Anfänger mit fhem und arbeite mich nun mehr und mehr da rein.
So das zu dem Projekt, damit Du Dich gleich nicht wunderst wie ich meine Schaltsteckdosen in Fhem bezeichnet habe bzw. für mich genannt habe.
Nun aber zurück zum Thema.

Hier mal wie gestern Abend versprochen, meine ausgelesenen TXP Codes von den fünf Brennenstuhl RCR3600IP 44 die ich erst einmal habe:
Ausgelesene TXP Codes mit Wireshark:

1 Wasser-Beleuchtung:
An:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,1,2,1,2,2,1,1,2,1,2,2,1,2,1,1,2,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;

Aus:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,1,2,1,2,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2;

Wasser-Beleuchtung-2:
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

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;


Scheibenbeleuchtung:
An:
TXP:0,0,6,0,505,25,6,14,1,2,2,1,1,2,2,1,2,1,1,2,1,2,1,2,2,1,1,2,2,1,1,2,2,1,2,1,2,1,1,2,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2;

Aus:
TXP:0,0,6,0,505,25,6,14,1,2,2,1,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,2,1,2,2,1,2,1,1,2,2,1,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2;


Unterwasserbeleuchtung-1:
An:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,2,1,2,1,1,2,1,2,1,2,2,1,2,1,2,1,2,1,1,2,1,2,2,1,2,1,2,1,2,1,1,2,2,1,1,2,2,1,2,1,1,2,1,2;

Aus:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,2,1,2,1,2,1,1,2,1,2,1,2,1,2,2,1,1,2,1,2,1,2,1,2,1,2,2,1,2,1,1,2,1,2,1,2,2,1,2,1,1,2,1,2;


Unterwasserbeleuchtung-2:
An:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,2,1,1,2,1,2,2,1,1,2,2,1,2,1,2,1,2,1,1,2,1,2,1,2,2,1,2,1,2,1,1,2,2,1,1,2,2,1,2,1,1,2,1,2;

Aus:
TXP:0,0,6,0,505,25,6,14,2,1,1,2,2,1,1,2,1,2,2,1,1,2,1,2,2,1,1,2,1,2,2,1,2,1,2,1,1,2,2,1,2,1,1,2,1,2,1,2,2,1,2,1,1,2,1,2;


Für Dich zur Info, wir hatten die letzten Tage immer schon getestet mit der Steckdose Wasser-Beleuchtung-2. Du hattest diese SchalterA in Deinen Vorgaben genannt und in den Raum Wohnzimmer gelegt.
Dieses habe ich bereits mit alias auf Wasser-Beleuchtung-2 umgeändert und auch in den Raum Teich gelegt.
Zusätzlich habe ich mich dann noch etwas weiter mit Deinen Vorgaben beschäftigt, so dass ich nun auch schon eine weitere Schaltsteckdose erfolgreich über fhem steuern kann.
Es ist bei mir Wasser-Beleuchtung-1.

Hier mal meine kompletten Einträge in der fhem.cfg, wie sie aktuell für die beiden Schaltsteckdosen aus sieht. Ach so, dass was ich zum Testen von Thomas hatte, habe ich aktuell auch noch zum testen in der fhem.cfg gelassen:

attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd none
attr global nofork 1
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# 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
###Schalter zum Testen nicht in Funktion nur mit einem Code
define SchaltsteckdoseBrematic BREMATIC Brem_gw 01100 01000
attr SchaltsteckdoseBrematic IODev Brem_gw
attr SchaltsteckdoseBrematic room Test_Raum_Brematic
#
###Schalter zum Testen nicht in Funktion nur mit einem Code
define Scheibe BREMATIC Brem_gw 11111 11111
attr Scheibe IODev Brem_gw
attr Scheibe room Test_Raum_Brematic
#
#### 2-Wasser-Beleuchtung
define SchalterA dummy
attr SchalterA alias Wasser-Beleuchtung-1
attr SchalterA devStateIcon on:li_wht_on off:li_wht_off
attr SchalterA eventMap BI:on B0:off
attr SchalterA room Teich
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")};;\
    }

#### 2-Wasser-Beleuchtung
define SchalterB dummy
attr SchalterB alias Wasser-Beleuchtung-2
attr SchalterB devStateIcon on:li_wht_on off:li_wht_off
attr SchalterB eventMap BI:on B0:off
attr SchalterB room Teich
attr SchalterB setList state:on,off

define SchalterB_ntfy notify SchalterB:.* {\
    my $v=Value("SchalterB");;\
    if ($v eq "on") {connairSchalterB("on")};;\
    if ($v eq "off") {connairSchalterB("off")};;\
    }


Und hier die 99_myUtils für die beiden Schaltsteckdosen:
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

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,1,2,1,2,2,1,1,2,1,2,2,1,2,1,1,2,2,1,1,2,2,1,2,1,1,2,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,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,1,2,1,2,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();

}
sub connairSchalterB {
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();

}
1;


Nun schaue ich aber erst noch einmal ganz in Ruhe mir Deine letzte Antwort durch und schaue was ich mir aus Deinen letzten Vorschlägen auch noch weiter erarbeiten kann.
Noch mal Danke für Deine Hilfe.
Grüße
Sven



sven1973

#152
Hallo Rippi46,
kurz zu Deiner Info noch.
Ich habe so eben noch mal Den von Dir vorgeschlagenen System Befehl in fhem direkt übernommen:
{ 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 >/dev/null >/dev/null" ) }

Wenn ich das mache und den Befehl abschicke, gibt mir fhem folgenden Info direkt aus:

65280

Aber die Schaltsteckdose schaltet nicht.
In der Log Datei selber steht aber kein Fehler oder irgend ein neuer Eintarg drin.
Soviel noch als kurze Rückantwort.
Grüße
Sven

rippi46

#153
Hallo Sven,

vermutlich liegt es daran, das unter Windows das etwas anders funktioniert. Vielleicht funktioniert die Pipe nicht richtig und der Code für die Steckdose wird nicht übergeben. Aber dem würde ich keine Bedeutung mehr schenken.

Ich würde auch die Definition in der 99_myUtils.pm eher allgemein halten.

Mein Vorschlag:

fhem.cfg:
define SchalterA dummy
attr SchalterA alias Wasser-Beleuchtung-1
attr SchalterA devStateIcon on:li_wht_on off:li_wht_off
attr SchalterA eventMap BI:on B0:off
attr SchalterA room Teich
attr SchalterA setList state:on,off

define SchalterA_ntfy notify SchalterA:.* {\
    my $v=Value("SchalterA");;\
    if ($v eq "on") {connairSchalter("TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,1,2,1,2,2,1,1,2,1,2,2,1,2,1,1,2,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2")};;\
    if ($v eq "off") {connairSchalter("TXP:0,0,6,0,505,25,6,14,2,1,1,2,1,2,1,2,2,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,1,2,1,2,2,1,1,2,2,1,1,2,1,2,1,2,1,2,1,2")};;\
    }
attr SchalterA_ntfy room Teich

define SchalterB dummy
attr SchalterB alias Wasser-Beleuchtung-2
attr SchalterB devStateIcon on:li_wht_on off:li_wht_off
attr SchalterB eventMap BI:on B0:off
attr SchalterB room Teich
attr SchalterB setList state:on,off

define SchalterB_ntfy notify SchalterB:.* {\
    my $v=Value("SchalterB");;\
    if ($v eq "on") {connairSchalter("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")};;\
    if ($v eq "off") {connairSchalter("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")};;\
    }
attr SchalterB_ntfy room Teich


analog dazu dann die anderen Schalter.

und die 99_myUtils.pm:
sub connairSchalter {
my ($SchalterCodeONOFF) = "$_[0]";
my  $SendData="";

$SendData = "$SchalterCodeONOFF";
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();

}

dann musst du nicht jeden Schalter auch in der 99_myUtils.pm definieren.

Die Codes der Schalter sehen ziemlich wirr aus.
Die ersten 8 Stellen nach der allgemeinen Definition(Repeat,Pause,Tune,Baud) und die letzten 10 Stellen sind sowohl bei on als auch bei off identisch (pro Schalter).
Die Stellen 19 un 20 von Hinten sind vermutlich der On bzw off Code. Der Rest ist nicht auf Anhieb erklärbar.
Deswegen würde ich es wie oben beschrieben definieren.

Timer könnte man so definieren:

define T_SchalterA DOIF ([{sunset(-1800)}-00:00:00])(set SchalterA on) DOELSE (set SchalterA off)
attr T_SchalterA room Teich,Timer

also 30 Minuten vor Sonnenuntergang einschalten und um 0:00Uhr wieder ausschalten.

Aber das ist wieder ein anderes Thema!

Gruß rippi

PS: habe es in meiner Konfiguration mit einem Schalter und dem TXP-String getestet. Hat einwandfrei funktioniert.


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 Rippy46,

Dein Vorschlag ist super gut! Ich habe ihn getestet und er  funktionierte sofort  sehr gut!
Mit diesem Vorschlag ist die 99_myUtils.pm schön klein und die fhem.cfg auch übersichtlicher für mich als Fhem Anfänger.  Besten Danke dafür.

Aber eine Frage habe ich noch: Wofür hast Du die beiden notify Zeilen, ich meine die letzten Zeilen zu den jeweiligen Schalter gesetzt?

attr SchalterA_ntfy room Teich
attr SchalterB_ntfy room Teich


Denn die Schalter Wasser-Beleuchtung-1 und Wasser-Beleuchtung-2 funktionieren ja auch ohne diesen Befehl und ich hätte dann in der Raumübersicht ,,Teich" nur die dummy Schalter die ich sehe und nicht auch noch die notify.
Der Grund dafür erschließt sich mir im Moment noch nicht ganz, warum man das notify dort sehen sollte?

Aber ansonsten Top! Es funktionierte sofort. Danke!

Als nächstes werde ich dann auch mal mich mit der Zeitgeschichte beschäftigen und mit den zwei Schaltern ersteinmal testen. Wobei ich mir hier selber noch nicht ganz sicher bin, ob ich mit Sonnenuntergang arbeiten werde, oder einfach nur mit einer festen Ein- und Ausschalt  Zeiten? Wobei Du vermutlich recht hast, wenn ich mit einem Sonnenuntergang arbeite, dann ist es bei einer Teichbeleuchtung sehr sinnvoll, je nach Jahreszeit ist dann auch immer passend das Licht bzw. die Wasserspielbeleuchtung an und geht dann zu einer festen Uhrzeit aus.
Aber Thema Zeit gehört glaube nun hier nicht mehr in diesem Thema ,,Connair über FHEM steuern" oder bei mir müsste es heißen ,,Brennenstuhl GWY 433 MHz über FHEM steuern.:)

Grüße Sven

rippi46

Hallo Sven,

ZitatAber eine Frage habe ich noch: Wofür hast Du die beiden notify Zeilen, ich meine die letzten Zeilen zu den jeweiligen Schalter gesetzt?

attr SchalterA_ntfy room Teich
attr SchalterB_ntfy room Teich

ich habe mir einfach angewöhnt alle Teile, die den Schalter betreffen auch in den gleichen Raum zu stecken.
Aber das ist künstlerische Freiheit. Natürlich funktioniert der Schalter auch ohne das das notify im gleichen Raum ist.

Schön, dass jetzt alles 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

Hallo ihr Steckdosenspezalisten,

Meine Brennenstuhl Steckdosen habe ich schon vor gut einem Jahr mit Hilfe der Einträge in der my99_utils Methode und den entsprechenden Definitionen in FHEM integriert, läuft auch zuverlässig mit dem Brematic GWY433 Gateway.
Jetzt habe ich noch ein paar REV 8342 Steckdosen hier liegen, und würde die auch gerne über das Gateway schalten, hat da jemand einen Hinweis wie ich die ins System einbinden könnte?

Gruß Ralph

rippi46

Hallo RKronenberg,

wenn du die Möglichkeit hast die TXP Codes auszulesen, könntest du es vielleicht wie Sven konfigurieren.

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 Danke für die Antwort,

das sind die Steckdosen die auch im WiKi beschrieben sind.

REV Telecontrol
Die REV Telecontrol haben einen Dreh-Wahlschalter auf der Rückseite, mit dem sich der Hauscode (A - D) und der Gerätecode (1 - 3) bestimmen lässt.

Die Codierung ist dabei:

Hauscode   Stelle 1-4
A   1FFF
B   F1FF
C   FF1F
D   FFF1
Gerätecode   Stelle 5-7
1   1FF
2   F1F
3   FF1
Dazu (Stelle 8+9+10) noch drei statische Werte: 0FF.

Der Code für An ist FF, für Aus 00.

Beispiel:

define My_Switch IT 1FFF1FF0FF FF 00 für A1
Erfolgreich getestet mit CULfw V 1.49 CUL868.

jetzt wäre es schön wenn mich einer aufs Rad setzen würde...

Danke und Grüße

rippi46

Hallo RKronenberg,

versuche es mal mit diesen Einstellungen:

ZitatIch habe die Dinger aufgeschraubt und die Hardware analysiert: Es ist ein PT2272A L2 Decoder verbaut!
Wenn man die 10 Codeschalter zu "12345ABCED" umbeschriftet kann man die Steckdosen mit dem ELRO-Code
ansprechen. 8-)

hier ein Beispiel ohne Garantie

define LautsprecherBad dummy
attr LautsprecherBad alexaName lautsprecher
attr LautsprecherBad alexaRoom bad
attr LautsprecherBad alias Badlautsprecher
attr LautsprecherBad eventMap BI:on B0:off
attr LautsprecherBad genericDeviceType switch
attr LautsprecherBad group Lautsprecher
attr LautsprecherBad icon audio_volume_low
attr LautsprecherBad room Bad,Sound,alexa
attr LautsprecherBad setList state:on,off

define LautsprecherBad_ntfy notify LautsprecherBad:.* {\
    my $master = "10011";;\
    my $slave = "11000";;\
    my $v=Value("LautsprecherBad");;\
    if ($v eq "on") {elro("$master","$slave","on")};;\
    if ($v eq "off") {elro("$master","$slave","off")};;\
    }



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

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

$socket->close();


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,

Meine REV Telecontrol haben nur einen Drehschalter  A1 bis A3 .... D1 bis D3. Also insgesamt 12 mögliche Positionen.

Gruß Ralph.

rippi46

Hallo RKronenberg,

versuche mal:

    master  slave
A1= 11111   11110
A2= 11110   11110
A3= 11111   01110

B1= 01111   11110
B2= 01110   11110
B3= 01111   01110


und dann im Code vom letzten post einsetzen.
IP von deinem Gateway nicht vergessen!

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,

danke für deine aufopferungsvolle Hilfe, habe alles so eingebunden wie von dir beschrieben, das Gateway sendet auch irgendetwas, aber die Dosen schalten leider nicht.
noch irgendwelche Ideen?

Gruß Ralph

RKronenberg

Hallo,

noch eins, ich hab mich mal auf der PowerSwitch Seite umgesehen, und dort diese Info's über die Telecontrol Stecker gefunden:

https://github.com/Power-Switch/PowerSwitch_Android/blob/8b4e20859303c5cf225e41e5b1149e4a55aa39dd/Smartphone/src/main/java/eu/power_switch/obj/receiver/device/rev/Telecontrol.java

vielleicht hilft das ja weiter, ich hab da mal versucht vergleiche anzustellen, komme aber nicht weiter.

Gruß Ralph



rippi46

Ok das kann man vielleicht umsetzen.

Muss ich mir morgen mal anschauen.


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