Script Trigger gibt Connection refused (111) zurück

Guten Morgen,
habe auf einen Raspberry homegear 6.x installiert, läuft auch soweit.
Nun wollte ich auf Grund von Performancegründen über einen HM-PB-2-WM55-2 eine (Steckdose) HM-LC-Sw1-Pl-DN-R1 schalten.
Dazu habe ich folgendes geschrieben.

[color=#FF0040]$Client->send(“addEvent”, array(
“TYPE” => 0,
“ID” => “Switch Switching”,
“PEERID” => 1,
“PEERCHANNEL” => 1,
“VARIABLE” => “PRESS_SHORT”,
“TRIGGER” => 8,
“TRIGGERVALUE” => true,
“EVENTMETHOD” => “setValue”,
“EVENTMETHODPARAMS” => Array(2, 1, “STATE”, true)
));[/color]

ich führe die Datei via /var/lib/homegear/scripts/CreateEvent.php
und erhalte :

[color=#0000BF]root@wifi8081:~# /var/lib/homegear/scripts/CreateEvent.php
PHP Fatal error: Uncaught exception ‘XMLRPC\XMLRPCException’ with message ‘Could not open socket. Host: localhost Port: 2001 Error: Connection refused (111)’ in /var/lib/homegear/scripts/HM-XMLRPC-Client/Client.php:135
Stack trace:
#0 /var/lib/homegear/scripts/HM-XMLRPC-Client/Client.php(118): XMLRPC\Client->connect()
#1 /var/lib/homegear/scripts/Connect.php(15): XMLRPC\Client->__construct(‘localhost’, 2001, false)
#2 /var/lib/homegear/scripts/CreateEvent.php(11): include_once(’/var/lib/homege…’)
#3 {main}
thrown in /var/lib/homegear/scripts/HM-XMLRPC-Client/Client.php on line 135[/color]

Habe schon die Positionen im Script geschoben, gleiches Ergebnis :open_mouth:

[color=#FF0000]Homegear lauscht auf Port 2001 via lsof -i[/color]
[color=#000080]homegear 805 homegear 10u IPv4 10637 0t0 TCP *:2001 (LISTEN)
homegear 805 homegear 11u IPv4 10648 0t0 TCP *:2002 (LISTEN)
homegear 805 homegear 12u IPv4 10655 0t0 TCP *:cfinger (LISTEN)
homegear 805 homegear 13u IPv4 10662 0t0 UDP 239.255.255.250:1900
[/color]

Ich habe mal zu Testzwecken das hier probiert:

<?php hg_set_value(DEINE_SCHALTER_ID, 1, "STATE", true); sleep(5); hg_set_value(DEINE_SCHALTER_ID, 1, "STATE", false); ?>

und mit homegear -e rs Schalter.php, ausgeführt. Das geht reibungslos.

was läuft hier hier mit dem Trigger schief?

Gruß Achim

Hallo Achim,

um zu sehen, was da schief läuft, bräuchte ich das ganze Skript und das Log vom Aufruf. Allerdings würde ich das Skript auch direkt über Homegear aufrufen:

<?php
$hg = new \Homegear\Homegear();
$hg->addEvent(array(
"TYPE" => 0,
"ID" => "Switch Switching",
"PEERID" => 1,
"PEERCHANNEL" => 1,
"VARIABLE" => "PRESS_SHORT",
"TRIGGER" => 8,
"TRIGGERVALUE" => true,
"EVENTMETHOD" => "setValue",
"EVENTMETHODPARAMS" => Array(2, 1, "STATE", true)
));

Dieses Skript dann mit “homegear -e rs CreateEvent.php” ausführen.

Viele Grüße

Sathya

Guten Morgen Sathya,

habe heute nach Deiner Vorlage den Trigger angelegt, hat sofort funktionell geklappt.
Habe vielen Dank an dieser Stelle.

Eine Frage habe ich noch.

Sollte man lieber mit Triggern oder Direktverknüpfungen arbeiten?

Ich gehe mal davon aus das man mehrere Trigger auf einen Device anlegen kann, aber nur eine Direktverknüpfung. Liege ich da richtig?

Gruß Achim

Hallo Achim,

du kannst auch mehrere Direktverknüpfungen pro Gerät anlegen. Wenn beide Geräte sich gegenseitig gut erreichen können, würde ich die Direktverknüpfung bevorzugen, wo diese möglich sind. Einen Nachteil hast du durch die Nutzung der Events aber nicht.

Viele Grüße

Sathya