Hallo zusammen,
ich klinke mich mal ein…
Ich gehe davon aus, dass Du soweit schon eine funktionierende Enocean-Infrastruktur (IPS, Enocean-Gateway via USB oder LAN) hast, also Enocean Telegramme am IPS empfangen kannst, richtig? Wenn ja, dann ist alles weitere nicht mehr so tragisch. Du musst nur ein Cutter für deine Enocean-I/O-Instanz und eine Register Variable einrichten, um die Telegramme mitschneiden und mit eine Skript auswerten zu können.
Der Cutter sieht ungefähr so aus:
Die Register Variable so:
So sieht es dann im Objektbaum aus:

Beim Skript kann ich dir im Moment mangels Zeit nicht viel helfen, bin selber am basteln des Skriptes für meine Rollladen/Jalousie-Steuerung. Die Grundstruktur könnte folgendermaßen aussehen (Nicht vollständgi). Interessant für dich sind die Fett markierten Zeilen, da dort nicht nur ein Zustand, sondern Daten (in diesem Falle die Fahrzeit) ausgewertet werden.
<?
if ($_IPS[‚SENDER‘] == „RegisterVariable“)
{
//Prüfen nach Sync-Bytes „A5 5A“
if(strpos($_IPS[‚VALUE‘], chr(0xA5).chr(0x5A)) !== false)
{
//Telegramm in Hex umwandeln
$telegram = Str2Hex($_IPS[‚VALUE‘]);
//Telegramm im Bytes aufteilen
$bytes = explode(" ", $telegram);
//Telegrammaufbau definieren
$sync = "$bytes[0]$bytes[1]";
$type = "$bytes[2]";
$org = "$bytes[3]";
$data3 = "$bytes[4]";
$data2 = "$bytes[5]";
$data1 = "$bytes[6]";
$data0 = "$bytes[7]";
$id = "$bytes[8]$bytes[9]$bytes[10]$bytes[11]";
//Beschattung
//Rolladen 1 - Arbeiten
if($id == "FFXXXXXX")
{
if($org == "05")
{
if($data3 == "01")
{
SetValue(51155 /*[Beschattung\OG\Arbeiten\Rolladen ist]*/, "Start Auf");
}
if($data3 == "02")
{
SetValue(51155 /*[Beschattung\OG\Arbeiten\Rolladen ist]*/, "Start Ab");
}
if($data3 == "70")
{
SetValue(51155 /*[Beschattung\OG\Arbeiten\Rolladen ist]*/, "Endlage Oben");
}
if($data3 == "50")
{
SetValue(51155 /*[Beschattung\OG\Arbeiten\Rolladen ist]*/, "Endlage Unten");
}
}
if($org == "07")
{
if($data1 == "01")
{
SetValue(51155 /*[Beschattung\OG\Arbeiten\Rolladen ist]*/, "Aufgefahren");
[b]SetValue(24719 /*[Beschattung\OG\Arbeiten\Fahrzeit]*/, hexdec($data2)/10);[/b]
}
if($data1 == "02")
{
SetValue(51155 /*[Beschattung\OG\Arbeiten\Rolladen ist]*/, "Abgefahren");
[b]SetValue(24719 /*[Beschattung\OG\Arbeiten\Fahrzeit]*/, hexdec($data2)/10);[/b]
}
}
}
}
}
function Str2Hex($daten)
{
$hex = „“;
for($i=0; $i<strlen($daten); $i++)
$hex .= sprintf("%02X ", ord($daten[$i]));
return $hex;
}
?>
Ansonsten suche mal im Forum nach dem Thread für die Enocean Wetterstation Eltako Multisensor (habe ich auch so gemacht), dafür gibt es auch keine Modul, aber so lässt sich diese wunderbar einbinden und das Prinzip ist gleich.
Grüße