LOXONE <--> Homegear

Hi an alle,

vielleicht könnt Ihr mir helfen.
Ich will mit dem Loxone Miniserver meine HM Komponenten steuern und würde dafür gerne nur Homegear verwenden.

Jetzt bin ich am überlegen, wie ich das am besten anstelle.
Für das Schalten von HM Komponenten würde sich HTTP anbieten.
Lassen sich bei Homegear Values direkt setzen? Ähnlich der XML-API von der CCU oder simple-api von ccu.io?

Für die Richtung Homegear -> Loxone müsste über Events gehen. Ich kann bei Loxone einen virtuellen Eingang erstellen und diesen über HTTP schalten.

Hat vielleicht von euch schon mal sowas gebaut?

Gruß
Pascal

Hier noch ein paar Infos zu Loxone Webschnitstelle
http://www.loxone.com/dede/service/dokumentation/fernsteuerung/webservices.html

Hi,

ich bin ein wenig weiter gekommen.
Ich habe herausbekommen, dass ich den internen Webserver für den Aufruf eigener Skripte benutzen kann.
Ich hab mir mal auf die schnelle was gebaut.

/var/lib/homegear/www/rpc/vd-bu.php

<?php
        print_r(hg_set_value(intval(htmlspecialchars($_GET["id"])), 1, "VALVE_STATE", intval(htmlspecialchars($_GET["value"]))));
?>

Jetzt habe ich Probleme bei der anderen Richtung.
Ich will für einen HM-TC-CC ein Event auf die Temperatur erstellen welches ein Skript startet.

#!/usr/bin/env php
<?php
include_once("Connect.php");
try {
$Client->send("addEvent", array(
  "TYPE" => 0,
  "ID" => "Temp KBU",
  "PEERID" => 1,
  "PEERCHANNEL" => 1,
  "VARIABLE" => "TEMPERATURE",
  "TRIGGER" => 7,
  "EVENTMETHOD" => "runScript",
  "EVENTMETHODPARAMS" => Array(false, "tolox.php", "VI19" . " " . $Client->send("getValue", array(1,1, "TEMPERATURE")) , false)
));
echo 'Result: '; var_dump($Client);
}
catch(Exception $e) {
    print "Exception catched. Code: ".$e->getCode().". Message: ".$e->getMessage();
}
?>

Da bekomme ich folgende Meldung im Errorlog:

Was mache ich falsch?

Gruß
Pascal

Hallo Pascal,

zunächst einmal kann ich dir Homegear 0.6 ans Herz legen :wink:. Gerade das Skripting geht damit deutlich besser, da wir die Skriptengine auf PHP umgestellt haben. Dann kannst du bei den “EVENTMETHODPARAMS” das “false” weglassen.

Was ist denn die Fehlermeldung, also was steht hinter dem “Error struct:”?

Du könntest theoretisch für den LOXONE-Server auch ein ganzes Interface in PHP als Homegear-Gerät schreiben, welches alle Homegear-Ereignisse an diesen weiterleitet. Dazu könntest du dir als Vorlage Homegear-OpenWeatherMap [1] nehmen. Über kurz oder lang werde ich das auch besser dokumentieren :wink:.

Viele Grüße

Sathya

[1] github.com/Homegear/Homegear-Op … herMap.xml

Hallo sathya,

danke für deine Antwort:

Main Log Ordner war voll. Darum wurde der Fehler abgeschnitten.
Hier der ganze Fehler:

[quote]11/20/15 17:37:49.340 RPC Server (Port 2001): Info: RPC Method called: runScript Parameters:
(Boolean) 0
(String) tolox.php
(String) VI19 18.3
(Boolean) 0
11/20/15 17:37:49.341 Error: Could not execute RPC method for event from peer with id 1, channel 1 and variable TEMPERATURE. Error struct:
(Struct length=2)
{
[faultCode]
{
(Integer) -1
}
[faultString]
{
(String) Wrong parameter count.
}
[/quote]

Mit dem OpenWeatherMap klinkt sehr interessant. Das übersteigt meine Fähigkeiten im programmieren bei weitem.

Gruß
Pascal

So,

ich bin weiter gekommen.
Das Script wird jetzt gestartet. Aber leider mit der internen Engine.

[quote]11/20/15 18:47:21.163 RPC Server (Port 2001): Info: RPC Method called: runScript Parameters:
(String) tolox.php
(String) VI19 25.5
11/20/15 18:47:21.163 Info: Executing script “/var/lib/homegear/scripts/tolox.php” with parameters “VI19 25.5” using internal script engine.
11/20/15 18:47:21.183 Scriptengine (/var/lib/homegear/scripts/tolox.php): PHP Fatal error: Uncaught Error: Call to undefined function curl_init() in /var/lib/homegear/scripts/tolox.php:3
Stack trace:
#0 {main}
thrown in /var/lib/homegear/scripts/tolox.php on line 3
11/20/15 18:47:21.184 Script output:
#!/usr/bin/env php
[/quote]

"EVENTMETHODPARAMS" => Array("tolox.php","VI19". " " . $Client->send("getValue", array(1,1, "TEMPERATURE")))

Jetzt läuft es.

Ich habe das tolox Skript von php in sh umbenannt.

Hallo Pascal,

super, dass es jetzt läuft! Wenn du skripten möchtest, rate ich dir wirklich die Umstellung auf Homegear 0.6 an. Damit ist es doch deutlich einfacher geworden, da “echtes” PHP als Skriptengine verwendet wird :wink:. Wenn du irgendwelche Fragen hast, immer her damit.

Viele Grüße

Sathya