Hi,
mittlerweile hat Patrick mir die Freigabe erteilt die Apps in Verbindung mit IPS zu nutzen.
iPhone App hier, Android APP dort und Quellcode da.
So nach und nach fängt es an zu laufen.
Bisher funzt:
UDP Socket anlegen mit Port 55555
Skript anlegen und den folgenden Code hinein kopieren:
<?
// Dieses Script erzeugt einen Broadcast auf welche die Apps reagieren
$MAC = chr(0x00).chr(0x0f).chr(0xb5).chr(0xb2).chr(0x57).chr(0xfa);
$channel = chr(0x07);
$rssi = chr(0x3f);
$port = chr(0x07).chr(0xd0);
$rtc = chr(0x00).chr(0x00).chr(0x24).chr(0xb1);
$battery = chr(0x0b).chr(0xff);
$gpio = chr(0x0d).chr(0x11);
$time = chr(0x54).chr(0x69).chr(0x6d).chr(0x65).chr(0x20).chr(0x4e).chr(0x4f).chr(0x54).chr(0x20).chr(0x53).chr(0x45).chr(0x54).chr(0x00).chr(0x00);
$version = chr(0x57).chr(0x69).chr(0x46).chr(0x6c).chr(0x79).chr(0x20).chr(0x56).chr(0x65).chr(0x72).chr(0x20).chr(0x32).chr(0x2e).chr(0x33).chr(0x36).chr(0x2c).chr(0x20).chr(0x30).chr(0x38).chr(0x2d).chr(0x32).chr(0x32).chr(0x2d).chr(0x32).chr(0x30).chr(0x31).chr(0x32).chr(0x00).chr(0x00);
$deviceid = 'WiFly-EZX12345678901234567890123';
$boottime = chr(0x4e).chr(0x00);
$sensors = chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00);
$capturedBroadcastMessage = $MAC.$channel.$rssi.$port.$rtc.$battery.$gpio.$time.$version.$deviceid.$boottime.$sensors;
// echo strlen($capturedBroadcastMessage); //Ergebnis 110 ist OK
USCK_SendText(32625 /*[UDP Socket]*/, $capturedBroadcastMessage);
?>
Dieses Script durch einen Timer zyklisch alle 7 Sekunden (lt. Datenblatt Seite 95) aufrufen.
SocketServer auf Port 2000 erstellen. Dito Registervariable dazu. Ebenso ein zugehöriges Aktionsscript.
<?
// Aktionsscript für den TCP Port, die Daten kommen dann über den UDP Port rein
$acknowlegde = chr(0x0d); // ist vermutlich die Antwort "ich bin die Firmware und kein Bootloader"
$Firmwareversion = chr(0x06).chr(0x00).chr(0xed).chr(0x00).chr(0x00).chr(0x1b).chr(0x93).chr(0xd7).chr(0x04);
$stillalive = chr(0x0f);
$stillalive2 = chr(0x05).chr(0x04).chr(0x00).chr(0xf8).chr(0x00).chr(0x50).chr(0x99).chr(0x04);
$string = ($IPS_VALUE);
if ($string == chr(0x0f).chr(0x0f)){
SSCK_SendText(42046 /*[Server Socket WyLight]*/, $acknowlegde);
SetValueString(46208 /*[Technik\WyLight\Status der Verbindung]*/, "beim Aufbauen");
}
if ($string == chr(0x0f).chr(0xed).chr(0x2c).chr(0x83).chr(0x04)){
SSCK_SendText(42046 /*[Server Socket WyLight]*/, $Firmwareversion);
SetValueString(46208 /*[Technik\WyLight\Status der Verbindung]*/, "Firmwareversion abfragen");
}
if ($string == chr(0x0f).chr(0xf8).chr(0x6e).chr(0x17).chr(0x04)){ //f8 bedeutet clear script
SSCK_SendText(42046 /*[Server Socket WyLight]*/, $stillalive);
IPS_Sleep(20);
SSCK_SendText(42046 /*[Server Socket WyLight]*/, $stillalive2);
SetValueString(46208 /*[Technik\WyLight\Status der Verbindung]*/, "still alive Abfrage");
}
if ($string == chr(0x0f).chr(0xf5).chr(0xbf).chr(0xba).chr(0x04)){
SetValueString(46208 /*[Technik\WyLight\Status der Verbindung]*/, "abgebaut");
}
?>
Auf dem UDP Port kann man jetzt die eingehenden Daten sehen, 2 Startbytes und 32 RGB Werte hintereinander, 2 Bytes CRC und ein Abschlußbyte.
Die iPhone App läuft in den Betriebsarten Farbrad und RBG Slider ohne Verbindungsabbrüche, momentan zwar nur für einen RGB Kanal, bei der Ablaufsteuerung muss noch weiter gebastelt werden, die Grundlagen liegen bereits vor.
Die Meldung es sei eine neue App verfügbar momentan einfach ignorieren, die hängt wie üblich im Apple Test.
mfg
BerndJ
PS: vielen Dank an die Macher dieser hervorragenden Apps für Ihre Unterstützung