Brennenstuhl Brematic 433 Single Gateway (GWY433) - Funksteckdosen 433Mhz

Hallo Zusammen,

ich habe mich jetzt dazu entschlossen es jetzt richtig anzugehen :slight_smile:

Leider habe ich ein kleines Problem.

Vorgeschichte:
Meine Anfänge in dem Bereich begann mit den guten alten Funksteckdosen (zur Weihnachtszeit). Ursprünglich hatte ich mit mal das Brematic 433 Single Gateway gekauft und musste feststellen, dass diese Steckerchecker App nicht das beste war.

Dann fand ich die Conn-Air Mobile WebApp. Alles war klasse zur Weihnachtszeit (Timer, Gruppen). Die WebApp habe ich einfach auf dem Raspi (Apache) laufen lassen und alles funktionierte.

Dann ging es weiter mit den AVM Dect200 / Philips Hue:-) und so kam ich zu FHEM (Protokollierung, …) und alles funktionierte zusammen.

Jetzt muss ich feststellen, dass ich etwas Hilfe bei der Umsetzung bei IPS benötige.

Ich kann das Gateway irgendwo im Haus optimal positionieren (beim mir habe ich die einfach hinter den Fernseher geklebt und einfach ins Netzwerk gehängt). Feste IP über Fritzbox.

Zur Zeit verwende ich ca. 16 Funksteckdosen (aufgeteilt nach Raum mittels Systemcode -> Fernbedienung A-D)

Problemstellung:
Einbindung der Einbindung des Brennenstuhl Brematic 433 Single Gateway zur Schaltung bestehender Funksteckdosen (nur schalten ohne Rückmeldung usw.)

Hardware:
Brennenstuhl Brematic 433 Single Gateway (GWY433) ist anscheint Baugleich mit dem Intertechno ITGW-433 Gateway

Hilfestellung zum Anliegen:
Conn-Air Mobile WebApp
Thema: HowTO Brematic Home Automation Gateway GWY 433 Brennenstuhl Comfort RCS 1000N

Wäre super wenn mir jemand bei dem Thema helfen könnte.

Hallo Zusammen,

Vielleicht findet sich hier jemand, welcher hieraus ein Modul erstellen könnte.
Ich persönlich habe nach einiger Zeit und Frust es sein gelassen.

Vielleicht bin ich nicht der Einzige, welcher die guten alten Baumarktsteckdosen von Brennstuhl schalten möchte :smiley:

]

Variable erstellen -> Type:Boolean -> Eigenes Profil:~switch

Skript erstellen und diesen Inhalt einfügen
-> Bei $statusID die ObjektID der erstellten Variable eintragen
-> DIP Codierung in $master / $slave eintagen
-> IP Adresse vom Gateway unter $server_ip eintragen

Erstellte Variable editieren und Untergeordnetes Skript als Eigene Aktion auswählen

4.JPG

-> Skript speichern -> Objekt bearbeiten und Objekt ausblenden

6.JPG


<?
# Brematic GWY433 zum schalten für Funksteckdosen mittels DIP Codierung -> Brennstuh / Elro"

# Variable erstellen -> Type:Boolean -> Eigenes Profil:~switch
# Skript erstellen und diesen Inhalt einfügen
# -> Bei $statusID die ObjektID der erstellten Variable eintragen
# -> DIP Codierung in $master / $slave eintagen
# -> IP Adresse vom Gateway unter $server_ip eintragen
# -> Skript speichern -> Objekt bearbeiten und Objekt ausblenden
# Erstellte Variable editieren und Untergeordnetes Skript als Eigene Aktion auswählen
#
# Basierend auf Skript von http://www.l3x.de/connair/
#

###Benutzereingabe

$statusID  = 14222 /*[Brematic\Brematic\10101]*/;// ID der Statusvariable
$master="10101"; //Master Code ABCDE = 11111
$slave="10000"; //Slave Code
$server_ip   = '192.168.20.48'; // IP der Brematic eintragen

$server_port = 49880 ; //Port der Brematic -> FIX
$status =GetValueBoolean($statusID); //Variable die abgefragt wird
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

###Aufbau der Message

    $sA=0;
    $sG=0;
    $sRepeat=10;
    $sPause=5600;
    $sTune=350;
    $sBaud=25;
    $sSpeed=14;
    $uSleep=800000;
    $txversionan=1;  //komischerweise schaltet nur in txversion 1 an
     $txversionaus=3; //komischerweise schaltet nur in txversion 3 aus
    $HEAD="TXP:$sA,$sG,$sRepeat,$sPause,$sTune,$sBaud,";
    $TAILAN=",$txversionan,1,$sSpeed,;";
    $TAILAUS=",$txversionaus,1,$sSpeed,;";
    $AN="1,3,1,3,3";
    $AUS="3,1,1,3,1";
    $bitLow=1;
    $bitHgh=3;
    $seqLow=$bitHgh.",".$bitHgh.",".$bitLow.",".$bitLow.",";
    $seqHgh=$bitHgh.",".$bitLow.",".$bitHgh.",".$bitLow.",";
    $bits=$master;
    $msg="";
    for($i=0;$i<strlen($bits);$i++) {
        $bit=substr($bits,$i,1);
        if($bit=="0") {
            $msg=$msg.$seqLow;
        } else {
            $msg=$msg.$seqHgh;
        }
    }
    $msgM=$msg;
    $bits=$slave;
    $msg="";
    for($i=0;$i<strlen($bits);$i++) {
        $bit=substr($bits,$i,1);
        if($bit=="0") {
            $msg=$msg.$seqLow;
        } else {
            $msg=$msg.$seqHgh;
        }
    }
    $msgS=$msg;

   $messageAUS=$HEAD.$bitLow.",".$msgM.$msgS.$bitHgh.",".$AUS.$TAILAUS;
    $messageSAUS=strlen($HEAD.$bitLow.",".$msgM.$msgS.$bitHgh.",".$AUS.$TAILAUS);
    $messageAN=$HEAD.$bitLow.",".$msgM.$msgS.$bitHgh.",".$AN.$TAILAN;
    $messageSAN=strlen($HEAD.$bitLow.",".$msgM.$msgS.$bitHgh.",".$AN.$TAILAN);

#Ausführung Code & Variablenänderung

if ($status == "true")
{
SetValueBoolean($statusID, false); //variable ändern auf aus <- bitte ändern auf Variable von $status
socket_sendto($socket, $messageAUS, $messageSAUS, 0, $server_ip, $server_port); //Code schicken an Gateway

}

else
{
SetValueBoolean($statusID, true); //variable ändern auf an <- bitte ändern auf Variable von $status
socket_sendto($socket, $messageAN, $messageSAN, 0, $server_ip, $server_port); //Code schicken an Gateway


}