Hallo,
ich habe für die Statusaktualisierung derzeit folgendes gemacht:
Scrpt digitalstrom.php in IPS Symcon/Webfront/user/digitalstrom angelegt:
PHP-Code:
<?php
//--------------------
// Einstellungen
$logging = 1; //1 oder 0 für Logging in Textdatei
$dateiname ="digitalstrom.txt"; //Name der Logdatei
//-------------------------
if ($logging)
{
$datei = fopen($dateiname,"a+");
}
$method = $_GET['method'];
$item = $_GET['item'];
$state = $_GET['state'];
$time = (date("Y.m.d - H:i",time()));
if ($method == "set_value_boolean")
{
if ($logging)
{
fwrite($datei, $time." - Methode: ".$method."\n");
fwrite($datei, $time." - Item: ".$item."\n");
fwrite($datei, $time." - Wert: ".$state."\n");
}
$id_int = intval($item);
if ($logging)
{
fwrite($datei, $time." - IPS-ID: ".$id_int."\n");
}
if($state == "ON" OR $state == "on" OR $state == 100) {
$state_bool = true;
} elseif ($state == "OFF" OR $state == "off"OR $state == 0) {
$state_bool = false;
}
$return = DS_SwitchMode($id_int,$state_bool);
//echo $return."\n";
if ($return == false & $logging)
{
$error = implode(";",error_get_last());
fwrite($datei, $time." - Fehler beim schreiben der Variable: ".$error." \n");
}
else
{
fwrite($datei, $time." - Variable erfolgreich aktualisiert\n");
}
}
else if ($logging)
{
fwrite($datei, $time." - Falsche Methode: ".$method. "\n");
}
if ($logging)
{
fwrite($datei, "\n");
fclose($datei);
}
?>
Im Digitalstrom Webinterface die App "Scene Responder" installiert.
Dort für jede Klemme, die einen lokalen Taster hat, bzw. deren Status ich sehen möchte zwei Automaten angelegt.
Auslöser:
- Gerätetaster Betätigung
- Raum
- Klemme
- Zustand (lokal ein, lokal aus)
Auszuführende Aktivität:
- URL aufrufen:
Hier die URL:
http://ip-adresse-ips-server/user/di...8426&state=off
Als Item wird die ID der DSLight Instanz eingetragen, und als state den Wert den man bei Auslöser gewählt hat.
Damit werden meine Lichtinstanzen immer korrekt angezeigt.
Das einzurichten ist zwar etwas Fleißarbeit, tut aber seinen Zweck.
Gruß
Christian