Connair über FHEM steuern

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

Vorheriges Thema - Nächstes Thema

Chridd


McElch

Rippi, bitte hilf! Du scheinst ja hier der SteckerChecker zu sein! ;D

Mein Tag 3 mit FHEM... habe dieses Thema hier entdeckt, wei ich auch noch ein Connair habe. Kann euch gar nicht sagen, wie cool ich FHEM finde, und wie sehr ich mich freue, das Connair vielleicht wieder benutzen zu können! Ich habe Versucht, das hier mitgelesene nachzubauen:

- eine 99_ConnairUtils.pm angelegt und erstmal stumpf 1:1 mit deinem Inhalt befüllt, nur die IP angepasst
- deren Rechte genau wie die anderen 99_* gesetzt
- deinen Code in die fhem.cfg kopiert, auch hier erstmal alles 1:1, Individualisiert wird später, wenn es klappt ...  8)
- restart

Wenn ich jetzt den Laserdrucker im WEB ein/ausschalte, passiert erstmal nichts.

Ich bin mir aber nicht sicher, ob es an der falschen Codierung der Steckdose liegt?

Im log steht jedenfalls:

2016.03.13 14:58:58 3: LaserBuero_ntfyN return value: Undefined subroutine &main::bin2dec called at (eval 35) line 5.

Das lässt mich vermuten, dass es eher nicht am Code der Dose liegt, oder?  :o

rippi46

Hallo McElch

vermutlich fehlt dir in der 99_ConnairUtils.pm die Funktion bin2dec.

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

sub connair {
my $c_ip = "192.168.178.40";
my $c_port = "49880";
my $c_speed = "16";
my $c_A = "0";
my $c_G = "0";
my $c_repeat = "15";
my $c_pause = "5600";
my $c_tune = "350";
my $c_baud = "25";
my $c_speed = "16";
my $c_AN = "1,3,1,3,3";
my $c_AUS = "3,1,1,3,1";
my $c_master = "$_[1]";
my $c_slave = "$_[2]";
my $c_bitLow="1";
my $c_bitHgh="3";

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


$c_bits[0]="$c_seqLow$c_seqLow$c_seqLow$c_seqLow$c_seqLow";
$c_bits[1]="$c_seqLow$c_seqLow$c_seqLow$c_seqLow$c_seqHgh";
$c_bits[2]="$c_seqLow$c_seqLow$c_seqLow$c_seqHgh$c_seqLow";
$c_bits[3]="$c_seqLow$c_seqLow$c_seqLow$c_seqHgh$c_seqHgh";
$c_bits[4]="$c_seqLow$c_seqLow$c_seqHgh$c_seqLow$c_seqLow";
$c_bits[5]="$c_seqLow$c_seqLow$c_seqHgh$c_seqLow$c_seqHgh";
$c_bits[6]="$c_seqLow$c_seqLow$c_seqHgh$c_seqHgh$c_seqLow";
$c_bits[7]="$c_seqLow$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh";
$c_bits[8]="$c_seqLow$c_seqHgh$c_seqLow$c_seqLow$c_seqLow";
$c_bits[9]="$c_seqLow$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh";
$c_bits[10]="$c_seqLow$c_seqHgh$c_seqLow$c_seqHgh$c_seqLow";
$c_bits[11]="$c_seqLow$c_seqHgh$c_seqLow$c_seqHgh$c_seqHgh";
$c_bits[12]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqLow$c_seqLow";
$c_bits[13]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqLow$c_seqHgh";
$c_bits[14]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh$c_seqLow";
$c_bits[15]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh";
$c_bits[16]="$c_seqHgh$c_seqLow$c_seqLow$c_seqLow$c_seqLow";
$c_bits[17]="$c_seqHgh$c_seqLow$c_seqLow$c_seqLow$c_seqHgh";
$c_bits[18]="$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh$c_seqLow";
$c_bits[19]="$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh$c_seqHgh";
$c_bits[20]="$c_seqHgh$c_seqLow$c_seqHgh$c_seqLow$c_seqLow";
$c_bits[21]="$c_seqHgh$c_seqLow$c_seqHgh$c_seqLow$c_seqHgh";
$c_bits[22]="$c_seqHgh$c_seqLow$c_seqHgh$c_seqHgh$c_seqLow";
$c_bits[23]="$c_seqHgh$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh";
$c_bits[24]="$c_seqHgh$c_seqHgh$c_seqLow$c_seqLow$c_seqLow";
$c_bits[25]="$c_seqHgh$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh";
$c_bits[26]="$c_seqHgh$c_seqHgh$c_seqLow$c_seqHgh$c_seqLow";
$c_bits[27]="$c_seqHgh$c_seqHgh$c_seqLow$c_seqHgh$c_seqHgh";
$c_bits[28]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqLow$c_seqLow";
$c_bits[29]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqLow$c_seqHgh";
$c_bits[30]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh$c_seqLow";
$c_bits[31]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh";


 
my ($state) = "$_[0]";
if ($state eq "on")
{
  system("echo \"TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bitLow,$c_bits[$c_master]$c_bits[$c_slave]$c_bitHgh,$c_AN,1,1,$c_speed,;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
else
{
  system("echo \"TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bitLow,$c_bits[$c_master]$c_bits[$c_slave]$c_bitHgh,$c_AUS,1,1,$c_speed,;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
}

sub bin2dec { return unpack("N", pack("B32", substr("0" x 32 . shift, -32))); }


IP anpassen 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

McElch

Danke für die schnelle Unterstützung! :)

Das wars aber nicht, die Funktion ist drin, also das ist ja wohl vermutlich die letzte Zeile, also das "sub bin2dec..."

War drin, habe deinen Code sicherheitshalber aber nochmal kopiert, IP nochmal angepasst, die Fehlermeldung bleibt aber gleich... :(


rippi46

Hallo McElch,

zeige mir mal den Inhalt deiner 99_ConnairUtils.pm und den relevanten Teil deiner fhem.cfg

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

McElch

Aber gern! Klasse dass du mir trotz Sonntagnachmittag hier so schnell hilfst!

99_ConnairUtils.pm in
/usr/local/FHEM/share/fhem/FHEM


package main;
use strict;
use warnings;
use POSIX;
sub
ConnairUtils_Initialize($$)
{
   my ($hash) = @_;
}
use CGI qw(:standard);
use IO::Socket;
use MIME::Base64;
use Time::Piece;
$main::NextUpdate = ();

sub connair {
my $c_ip = "192.168.70.208";
my $c_port = "49880";
my $c_speed = "16";
my $c_A = "0";
my $c_G = "0";
my $c_repeat = "15";
my $c_pause = "5600";
my $c_tune = "350";
my $c_baud = "25";
my $c_speed = "16";
my $c_AN = "1,3,1,3,3";
my $c_AUS = "3,1,1,3,1";
my $c_master = "$_[1]";
my $c_slave = "$_[2]";
my $c_bitLow="1";
my $c_bitHgh="3";

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


$c_bits[0]="$c_seqLow$c_seqLow$c_seqLow$c_seqLow$c_seqLow";
$c_bits[1]="$c_seqLow$c_seqLow$c_seqLow$c_seqLow$c_seqHgh";
$c_bits[2]="$c_seqLow$c_seqLow$c_seqLow$c_seqHgh$c_seqLow";
$c_bits[3]="$c_seqLow$c_seqLow$c_seqLow$c_seqHgh$c_seqHgh";
$c_bits[4]="$c_seqLow$c_seqLow$c_seqHgh$c_seqLow$c_seqLow";
$c_bits[5]="$c_seqLow$c_seqLow$c_seqHgh$c_seqLow$c_seqHgh";
$c_bits[6]="$c_seqLow$c_seqLow$c_seqHgh$c_seqHgh$c_seqLow";
$c_bits[7]="$c_seqLow$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh";
$c_bits[8]="$c_seqLow$c_seqHgh$c_seqLow$c_seqLow$c_seqLow";
$c_bits[9]="$c_seqLow$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh";
$c_bits[10]="$c_seqLow$c_seqHgh$c_seqLow$c_seqHgh$c_seqLow";
$c_bits[11]="$c_seqLow$c_seqHgh$c_seqLow$c_seqHgh$c_seqHgh";
$c_bits[12]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqLow$c_seqLow";
$c_bits[13]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqLow$c_seqHgh";
$c_bits[14]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh$c_seqLow";
$c_bits[15]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh";
$c_bits[16]="$c_seqHgh$c_seqLow$c_seqLow$c_seqLow$c_seqLow";
$c_bits[17]="$c_seqHgh$c_seqLow$c_seqLow$c_seqLow$c_seqHgh";
$c_bits[18]="$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh$c_seqLow";
$c_bits[19]="$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh$c_seqHgh";
$c_bits[20]="$c_seqHgh$c_seqLow$c_seqHgh$c_seqLow$c_seqLow";
$c_bits[21]="$c_seqHgh$c_seqLow$c_seqHgh$c_seqLow$c_seqHgh";
$c_bits[22]="$c_seqHgh$c_seqLow$c_seqHgh$c_seqHgh$c_seqLow";
$c_bits[23]="$c_seqHgh$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh";
$c_bits[24]="$c_seqHgh$c_seqHgh$c_seqLow$c_seqLow$c_seqLow";
$c_bits[25]="$c_seqHgh$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh";
$c_bits[26]="$c_seqHgh$c_seqHgh$c_seqLow$c_seqHgh$c_seqLow";
$c_bits[27]="$c_seqHgh$c_seqHgh$c_seqLow$c_seqHgh$c_seqHgh";
$c_bits[28]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqLow$c_seqLow";
$c_bits[29]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqLow$c_seqHgh";
$c_bits[30]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh$c_seqLow";
$c_bits[31]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh";


 
my ($state) = "$_[0]";
if ($state eq "on")
{
  system("echo \"TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bitLow,$c_bits[$c_master]$c_bits[$c_slave]$c_bitHgh,$c_AN,1,1,$c_speed,;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
else
{
  system("echo \"TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bitLow,$c_bits[$c_master]$c_bits[$c_slave]$c_bitHgh,$c_AUS,1,1,$c_speed,;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
}

sub bin2dec { return unpack("N", pack("B32", substr("0" x 32 . shift, -32))); }


1;


und die confi:


define LaserBuero dummy
attr LaserBuero alias Laserdrucker
attr LaserBuero eventMap BI:on B0:off
attr LaserBuero room Buero
attr LaserBuero setList state:on,off

define LaserBuero_ntfyN notify LaserBuero:.* {\
    my $master = "11111";;\
    my $slave = "00100";;\
    my $v=Value("LaserBuero");;\
    if ($v eq "on") {connair("on",bin2dec("$master"),bin2dec("$slave"))};;\
    if ($v eq "off") {connair("off",bin2dec("$master"),bin2dec("$slave"))};;\
    }




rippi46

Hallo McElch,

schmeiß mal alles raus aus deiner 99_ConnairUtils.pm und füge den Inhalt von Antwort #92 ein und teste dann nochmal.

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

McElch

Okay, jetzt sieht das log schon etwas freundlicher aus! Es schaltet zwar noch immer nicht, aber das kann ja am Ende auch an der Steckdose und dem Code liegen?

Das log sagt jetzt beim Schalten:

sh: nc: not found
2016.03.13 16:33:45 3: LaserBuero_ntfyN return value: -1
sh: nc: not found
sh: nc: not found
2016.03.13 16:34:23 3: LaserBuero_ntfyN return value: -1
sh: nc: not found

rippi46

Hallo McElch,

das sieht schon besser aus. Vermutlich hast du auf deiner Synology kein netcat installiert.

Gruß0 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

McElch

OMG Rippi, das würde ich jetzt aber nicht als eine gute Nachricht bezeichnen, ich hab doch keine Ahnung!?

Bin heile froh, dass ich das alles soweit nach Kochbuch hinbekommen hab...  :'(

Wie geht das? ipkg install netcat?  :o


rippi46

#100
Hallo McElch

von der Synology habe ich leider keine Ahnung wie man Software nachinstalliert. Aber vermutlich funktioniert das über ipkg. (ipkg install netcat)

oder du versuchst das ganze über udp.

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

$socket->close();

}



und in der fhem.cfg

define LautsprecherBad dummy
attr LautsprecherBad alias Badlautsprecher
attr LautsprecherBad eventMap BI:on B0:off
attr LautsprecherBad group Lautsprecher
attr LautsprecherBad room Bad,Sound
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")};;\
    }


und wieder IP in der  99_ConnairUtils.pm und Schalter in der fhem.cfg anpassen.

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

McElch

#101
Rippi, you god damn SteckerChecker Schrecker!  ;D

So klappt es!!! Unglaublich! Vielen Dank!!!  :D

rippi46

Hallo McElch,

wie hast du es jetzt gemacht?

Über ipkg netcat nachinstalliert oder über udp-skript

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

McElch

Über deinen UDP code. Die netcat-Baustelle wollte ich jetzt so kurz vor den Wahlergebnissen nicht noch aufmachen...  ;D

Mann, ich kann dir gar nicht sagen, wie sehr ich mich freue, dass das ConnAir jetzt wieder was tun hat! Ich fand das damals soo ärgerlich, dass das eingestellt wurde...

Theoretisch müsste das doch jetzt eigentlich als CUL für alle möglichen 433MHz-Sachen, also zB auch für Baumarkt-Intertechno-Geräte gehen, oder?

rippi46

#104
Hallo McElch

Intertechno musst du extra anpassen.

ich hatte das für Intertechno mal angepasst.

99_intertechUtils.pm

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

sub intertech {
my $c_ip = "192.168.178.40";
my $c_port = "49880";
my $c_A = "0";
my $c_G = "0";
my $c_repeat = "6";
my $c_pause = "11125";
my $c_tune = "89";
my $c_baud = "25";
my $c_speed = "125";
my $c_AN = "12,4,4,12,12,4";
my $c_AUS = "12,4,4,12,4,12";
my $c_master = "$_[1]";
my $c_slave = "$_[2]";
my $c_bitLow="4";
my $c_bitHgh="12";

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


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

$c_bits[1]="$c_seqHgh$c_seqHgh$c_seqHgh$c_seqHgh";
$c_bits[2]="$c_seqLow$c_seqHgh$c_seqHgh$c_seqHgh";
$c_bits[3]="$c_seqHgh$c_seqLow$c_seqLow$c_seqHgh";
   
my ($state) = "$_[0]";
if ($state eq "on")
{
  system("echo \"TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bitLow,$c_bits[$c_master]$c_bits[$c_slave]$c_seqHgh$c_seqLow$c_bitHgh,$c_AN,1,$c_speed,;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
else
{
  system("echo \"TXP:$c_A,$c_G,$c_repeat,$c_pause,$c_tune,$c_baud,$c_bitLow,$c_bits[$c_master]$c_bits[$c_slave]$c_seqHgh$c_seqLow$c_bitHgh,$c_AUS,1,$c_speed,;\" | nc -u $c_ip $c_port & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
}


und in der fhem.cfg

define LampeSchlaf dummy
attr LampeSchlaf alias Schlafzimmerlampe
attr LampeSchlaf eventMap BI:on B0:off
attr LampeSchlaf group Lampen
attr LampeSchlaf icon li_wht_on
attr LampeSchlaf room Schlafzimmer,Lampen
attr LampeSchlaf setList state:on,off
#attr LampeSchlaf fm_type state,offbutton,onbutton
define LampeSchlaf_ntfy notify LampeSchlaf:.* {\
    my $master = "A";;\
    my $slave = "1";;\
    my $v=Value("LampeSchlaf");;\
    if ($v eq "on") {intertech("on","$master","$slave")};;\
    if ($v eq "off") {intertech("off","$master","$slave")};;\
    }


Schade, dass es für den Connair keine Firmware-Erweiterung für den Empfang mehr gibt.
Wenn man den Codeaufbau anderere Protokolle kennt, kann man natürlich den mit dem Connair nachbauen.

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