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
]
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
-> Skript speichern -> Objekt bearbeiten und Objekt ausblenden
<?
# 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
}