Antworten
Dez 19, 2017 - 01:42
PHP Code zum ansteuern des V4 findest Du im PHP Modul AIO Gateway. Grundsätzlich sollte FS20 immer schalten, bekommst Du denn irgendeine Fehlermeldung vom AIO Gateway bzw. wie ist der Response wenn es nicht funktioniert?
Dez 19, 2017 - 03:37
Dein php code kannst du gerne posten in dem du den codeeditor hier benutzst {;}
Hochladen kannst du hier nichts, kannst aber im homematic-forum tun...
Hochladen kannst du hier nichts, kannst aber im homematic-forum tun...
Dez 19, 2017 - 05:10
hier noch der das PHP-Script,
unter aio-schalten.php abspeichern.
gekennzeichnete Variablen anpassen.
dann sollte das funktioniren.
ein Teil davon, Umrechnung FS20 Code, ist nicht von mir, hab ich irgendwo im Internet gefunden und angepasst!
unter aio-schalten.php abspeichern.
gekennzeichnete Variablen anpassen.
dann sollte das funktioniren.
ein Teil davon, Umrechnung FS20 Code, ist nicht von mir, hab ich irgendwo im Internet gefunden und angepasst!
################################################################
## Beispiele für Aio Gateway über API-Schnittstelle zu schalten
################################################################
# Gateway IP
$IP = "192.168.178.23"; # IP Adresse anpassen
# rausfinden wo mein Programm läuft
$server = $_SERVER["SERVER_ADDR"];
echo "Server : $server";
$Systempfad = "/var/www/aio/"; # anpassen!
$Pfad = "aio/"; # anpassen !
$http_pfad = "http://".$server."/".$Pfad."aio-schalter.php";
# FS20 Schalter 1, Daten anpassen
# bei allen 4 Daten anpassen !!
$HC1 = "4324"; #HC1 Haus Code
$GC1 = "3244"; #GC1 Geräte Code
$FS20_Adr1 = "1111"; # Geräte Adresse
$FS20_Code1 = $HC1.$GC1.$FS20_Adr1;
# Code umrechnen
$arr1 = str_split($FS20_Code1);
/* Stelle um 1 reduzieren */
for ($i = 0; $i <= 11; $i++)
{
$arr1[$i] = $arr1[$i] -1;
}
/* Aufteilung in Zweierblöcke */
/* Die jeweils erste Zahl eines Blocks wird mit 4 multipliziert und mit der zweiten Zahl addiert */
for ($i = 0; $i <= 10; $i=$i+2)
{
$arr2[$i] = $arr1[$i] * 4 + $arr1[$i+1];
}
/* Jeder Block wird nun in seine Hexadezimaldarstellung überführt (0-9, A-F) */
for ($i = 0; $i <= 10; $i=$i+2)
{
$arr2[$i] = dechex($arr2[$i]);
}
$FS20_1_send = $arr2[0].$arr2[2].$arr2[4].$arr2[6].$arr2[8].$arr2[10];
# FS20 Schalter 2, Daten anpassen
$HC2 = "4324"; #HC1 Haus Code
$GC2 = "3244"; #HC2 Geräte Code
$FS20_Adr2 = "1112"; # Geräte Adresse
$FS20_Code2 = $HC2.$GC2.$FS20_Adr2;
# Code umrechnen
$arr1 = str_split($FS20_Code2);
/* Stelle um 1 reduzieren */
for ($i = 0; $i <= 11; $i++)
{
$arr1[$i] = $arr1[$i] -1;
}
/* Aufteilung in Zweierblöcke */
/* Die jeweils erste Zahl eines Blocks wird mit 4 multipliziert und mit der zweiten Zahl addiert */
for ($i = 0; $i <= 10; $i=$i+2)
{
$arr2[$i] = $arr1[$i] * 4 + $arr1[$i+1];
}
/* Jeder Block wird nun in seine Hexadezimaldarstellung überführt (0-9, A-F) */
for ($i = 0; $i <= 10; $i=$i+2)
{
$arr2[$i] = dechex($arr2[$i]);
}
$FS20_2_send = $arr2[0].$arr2[2].$arr2[4].$arr2[6].$arr2[8].$arr2[10];
# FS20 Schalter 3, Daten anpassen
$HC3 = "4324"; #HC1 Haus Code
$GC3 = "3244"; #HC2 Geräte Code
$FS20_Adr3 = "1113"; # Geräte Adresse
$FS20_Code3 = $HC3.$GC3.$FS20_Adr3;
# Code umrechnen
$arr1 = str_split($FS20_Code3);
/* Stelle um 1 reduzieren */
for ($i = 0; $i <= 11; $i++)
{
$arr1[$i] = $arr1[$i] -1;
}
/* Aufteilung in Zweierblöcke */
/* Die jeweils erste Zahl eines Blocks wird mit 4 multipliziert und mit der zweiten Zahl addiert */
for ($i = 0; $i <= 10; $i=$i+2)
{
$arr2[$i] = $arr1[$i] * 4 + $arr1[$i+1];
}
/* Jeder Block wird nun in seine Hexadezimaldarstellung überführt (0-9, A-F) */
for ($i = 0; $i <= 10; $i=$i+2)
{
$arr2[$i] = dechex($arr2[$i]);
}
$FS20_3_send = $arr2[0].$arr2[2].$arr2[4].$arr2[6].$arr2[8].$arr2[10];
# FS20 Schalter 4, Daten anpassen
$HC4 = "4324"; #HC1 Haus Code
$GC4 = "3244"; #HC2 Geräte Code
$FS20_Adr4 = "1114"; # Geräte Adresse
$FS20_Code4 = $HC4.$GC4.$FS20_Adr4;
# Code umrechnen
$arr1 = str_split($FS20_Code4);
/* Stelle um 1 reduzieren */
for ($i = 0; $i <= 11; $i++)
{
$arr1[$i] = $arr1[$i] -1;
}
/* Aufteilung in Zweierblöcke */
/* Die jeweils erste Zahl eines Blocks wird mit 4 multipliziert und mit der zweiten Zahl addiert */
for ($i = 0; $i <= 10; $i=$i+2)
{
$arr2[$i] = $arr1[$i] * 4 + $arr1[$i+1];
}
/* Jeder Block wird nun in seine Hexadezimaldarstellung überführt (0-9, A-F) */
for ($i = 0; $i <= 10; $i=$i+2)
{
$arr2[$i] = dechex($arr2[$i]);
}
$FS20_4_send = $arr2[0].$arr2[2].$arr2[4].$arr2[6].$arr2[8].$arr2[10];
$FS20_an = "1000";
$FS20_aus = "0000";
#echo $FS20_Code1." : ".$FS20_1_send."
";
#echo $FS20_Code2." : ".$FS20_2_send."
";
#echo $FS20_Code3." : ".$FS20_3_send."
";
#echo $FS20_Code4." : ".$FS20_4_send."
";
####################
# Intertechno Codes
# Schalter mit 2 Code Schalter
# 1. Schalter Code A - P = 0 - F
# 2. Schalter Code 1 - 16 = Minus 1 und dann in Hex umrechnen = 0 - F
# Beispiele alle mit Code A
$IT1 = "00";
$IT2 = "01";
$IT3 = "02";
$IT4 = "03";
$IT5 = "04";
$IT6 = "05";
$IT7 = "06";
$IT8 = "07";
$IT9 = "08";
$IT10 = "09";
$IT11 = "0A";
$IT12 = "0B";
$IT13 = "0C";
$IT14 = "0D";
$IT15 = "0E";
$IT16 = "0F";
$IT_ein = "E";
$IT_aus = "6";
$neuladen = " ";
echo $neuladen ;
$Kopf = " * Schalter für AIO Gateway * ";
echo $Kopf ;
# Tabelle
# Tabellenanfang
$tanfang = "
echo $tanfang.$reihe1.$reihe2.$reihe3.$reihe4.$reihe5.$reihe6.$reihe7.$reihe8.$reihe
9.$reihe10.$reihe11.$reihe12.$reihe13.$tende;
echo "
";
header("location: $http_pfad?nn=0");
exit;
?>
Dez 21, 2017 - 17:13
das Problem besteht immer noch!
nach etlichen Tests hab ich festgestellt, das kommt wenn ich Task´s anlege und mit
/command?XC_FNC=GetAll
oder mit
/command?XC_FNC=Getstates
den Status abfrage.
heute ist es sogar so schlimm das alle Befehle die mit
/command?XC_FNC=SendSc&type Hm, FS20 oder IT
gesendet werden nicht mehr schalten!
Befehle mit
/command?XC_FNC=Send2&code schalten aber weiterhin.
auch mit IQontrol schaltet kein HM, FS20, IT, andere mit sonstige angelernte schalten aber noch.
Fehlermeldung, keine, {XC_SUC}
ich denke Morgen früh geht das alles wieder!
schon seltsam!
nach etlichen Tests hab ich festgestellt, das kommt wenn ich Task´s anlege und mit
/command?XC_FNC=GetAll
oder mit
/command?XC_FNC=Getstates
den Status abfrage.
heute ist es sogar so schlimm das alle Befehle die mit
/command?XC_FNC=SendSc&type Hm, FS20 oder IT
gesendet werden nicht mehr schalten!
Befehle mit
/command?XC_FNC=Send2&code schalten aber weiterhin.
auch mit IQontrol schaltet kein HM, FS20, IT, andere mit sonstige angelernte schalten aber noch.
Fehlermeldung, keine, {XC_SUC}
ich denke Morgen früh geht das alles wieder!
schon seltsam!
Von
Danke für den Link, kan mann immer brauchen.
heute Morgen schaltet der FS20 Sender bisher ohne Probleme, über 200 mal mit IQontro und über 50 mal mit PHP Script getestet.
wo da der Fehler ist??
Neuen Kommentar hinzufügen