Hey Michael,
ich habe leider kein HMW-IO-12-Sw7-DR zum Testen, aber es müsste eigentlich gehen, die Ein- und Ausgänge direkt zu verknüpfen. Der zweite Weg wäre, in Homegear ein Ereignis zu erzeugen, welches bei Änderung am Eingang den Ausgang schaltet. Für beides hier eine kurze Anleitung.
[size=150]Ein- und Ausgänge verknüpfen[/size]
Leider besitzt Homegear noch keine Weboberfläche zur Konfiguration. Es müsste aber funktionieren, den “HomeMatic-Konfigurator” zu verwenden (findest du auf der HomeMatic Homepage).
Alternativ kannst du ein PHP-Script zum verknüpfen verwenden (einfach in “/var/lib/homegear/scripts/link.php” speichern):
#!/usr/bin/env php
<?php
require_once("HM-XMLRPC-Client/Client.php");
$Client = new \XMLRPC\Client("localhost", 2001);
//Eingänge sind Kanal 1 bis 12, Ausgänge Kanal 13 bis 19. Für mehr Informationen zu addLink siehe: https://www.homegear.eu/index.php/AddLink
print_r($Client->send("addLink", array(
1, //ID des sendenden Geraetes
1, //Kanal des Eingangs
1, //ID des empfangenden Geraetes
13 //Kanal des Ausgangs
)));
?>
Dieses Script kannst du dann einfach mit “/var/lib/homegear/scripts/link.php” ausführen. Danach sollte der Eingang mit dem Ausgang verknüpft sein. Was dann beim Schalten passiert, lässt sich durch setzen diverser Konfigurationsparameter einstellen. Die einstellbaren Parameter findest du in der XML-Datei (hmw_io12_sw7_dr.xml). Letztere sind nicht ganz selbsterklärend. Wenn du weitere Infos zu den Parametern brauchst, sag bescheid. Eine Erklärung sämtlicher Parameter ist mir hier zu aufwändig .
[size=150]Ereignisse[/size]
Alternativ lassen sich Ereignisse verwenden. Diese kannst du mit der RPC-Funktion “addEvent” (https://www.homegear.eu/index.php/AddEvent) erzeugen. Auch hierfür ein Beispielscript (packs in /var/lib/homegear/scripts/createEvent.php):
#!/usr/bin/env php
<?php
require_once("HM-XMLRPC-Client/Client.php");
$Client = new \XMLRPC\Client("localhost", 2001);
print_r($Client->send("addEvent", array(
"TYPE" => 0, //Getriggertes Ereignis
"ID" => "Schalter 1", //Ein beliebiger Name zum identifizieren des Ereignisses
"PEERID" => 1, //ID des HMW-IO-12-Sw7-DR
"PEERCHANNEL" => 1, //Kanal des Einganges (1 bis 12)
"VARIABLE" => "PRESS_SHORT", //"PRESS_SHORT" oder "PRESS_LONG" (siehe XML-Datei hmw_io12_sw7_dr.xml)
"TRIGGER" => 8, //Der Wert der Variablen muss "TRIGGERVALUE" entsprechen, damit das Ereignis ausgeloest wird
"TRIGGERVALUE" => true, //Wenn "PRESS_SHORT" "true" ist, wird das Ereignis ausgeloest
"EVENTMETHOD" => "setValue", //RPC-Funktion, die durch das Ereignis aufgerufen wird
"EVENTMETHODPARAMS" => Array( //Parameter, die an die Funktion "setValue" uebergeben werden
1, //ID des HMW-IO-12-Sw7-DR
13, //Kanal des Ausgangs
"INSTALL_TEST", //Name der Variablen, die gesetzt werden soll. "INSTALL_TEST" toggled den Schalter
true) //Fuer "INSTALL_TEST" egal
)));
?>
Jetzt /var/lib/homegear/scripts/createEvent.php ausführen und mit jedem Kontakt am Eingang wird der Schalter getoggled.
Wenn du den Schalter unabhängig von Ereignissen über die Kommandozeile ein- und ausschalten möchtest, kannst du die Funktion “setValue” (siehe https://www.homegear.eu/index.php/SetValue) verwenden:
print_r($Client->send("setValue", array(1, 13, "STATE", true)));
Ich hoffe, das hilft dir weiter. Wenn du noch weitere Fragen hast oder Hilfe beim Scripting benötigst, sag bescheid .
Liebe Grüße
Sathya