Schaltstatus im Web- oder IOS Interface

Hallo zusammen.

Ich würde gerne wissen, wieso ich den aktuellen Schaltzustand im IPS Webinterface nicht sehe.

Eine bereits durch einen Wandschalter via digitalstrom geschaltete Leuchte steht im IPS Webinterface immer noch da, wo sie das letzte Mal durch dieses Interface geschaltet wurde. Also z.B. auf aus. Statt ein wie im richtigen Zustand.

Hab ich hier noch einen Haken oder gibt es da eine Lösung?

Danke
Danny

Hallo,

Das ist leider bei Digitalstrom Aktoren so. Behauptet zumindest paresy.
Derzeit wird der Status eines einzelnen Aktors nicht an IPS zurück gemeldet. Das ist unschön, aber bei mir auch so.

Z.B openHAB hat da eine andere Implementierung, dort wird der Status an das Item zurück gemeldet.
Allerdings ist notwendig dafür ein Script auf dem DS Server abzulegen und ein Zertifikat auszutauschen,
Damit müssen wir scheinbar derzeit leben.

@paresy:
Hat sich hier vielleicht etwas geändert oder gibt es eine Aussicht?

Gruß
Christian

Bisher ist mir leider nicht bekannt, das sich an der Situation etwas geändert hat. Immerhin gibt es ja die dS Room Instanzen, wodurch Ihr die Stimmung im Raum setzen könnt. Dort wird dann auch korrekt der „Status“ zurückgemeldet.

paresy

Hallo Paresy,

ich habe mich heute noch mal mit dem API von Digitalstrom beschäftigt.
Ich hatte openHAB ebenfalls laufen, und dort wurde eine eigne Subscription per XML eingerichtet, und ein zugehöriges JavaScript abgelegt.

Jetzt habe ich heute mal in meine DS Instanz in IPS geschaut, was ankommt, wenn ich an einer Klemme Licht den lokalen Taster betätige:


18.08.2015 10:41:07.00 |                EVENT | {"properties":{"originToken":"","callOrigin":"9","sceneID":"50"},"source":{"set":"dsid(3504175fe0000000000000000001927e00)","isApartment":false,"isGroup":false,"zoneID":15,"dsid":"3504175fe0000000000000000001927e00","isDevice":true},"name":"callScene"}

Wenn ich nun diesen String auseinander nehme bekomme ich die ID der Klemme (dsid) und die aufgerufene Scene („sceneID“:„50“)

Lt Doku steht dieses Szene für „Device Off“

Das sollte sich doch so verarbeiten lassen, das man den Status in IPS entsprechend anpassen kann?

Was bei Rolläden zurückgemeldet wird werde ich heute noch mal testen und hier posten.

Ich hoffe dies hilft ggfs. bei der besseren Implementierung von DS in IPS.

Gruß
Christian

Leider ist das so nicht ganz korrekt für alle Fälle. Du kannst die Szenentabelle im dSS beliebig ändern. D.h. du kannst die Stimmungen 1-4 einfach so programmieren wie du magst und ich bekomme also den wirklichen Wert in Prozent raus. Stimmung 4 kannst ja z.B. auch Gerät Aus bedeuten.

Ich hatte mit den dS Entwicklern ja schon darüber gesprochen und die haben gesagt, dass es so komplex ist, dass die es nicht im dSS ausrechnen lassen wollen, um es z.B. IPS zur Verfügung zu stellen.

paresy

Hallo paresy,

die werden es schon wissen. Schade, damit fehlt aus meiner Sicht wesentliche Information in IPS, nicht nur beim Licht, sondern vor allen Dingen bei den Rolladen.

Ich habe mal versucht heraus zu finden, für was

[ul]
[li]„originToken“:""
[/li][li]„callOrigin“:„9“
[/li][/ul]

steht, aber leider nichts gefunden. Meine Vermutung wäre, das dies die Herkunft des Events ist. Dann könnte man wenigstens dann den Status aktualisieren, wenn der Auslöser der lokale Taster ist, und dieser als Gerätetaster konfiguriert ist.

Gruß
Christian

Hallo,

habe mir folgendes zum testen eingerichtet.
dS-Server bekommt ja mit wenn eine Aktion ausgeführt wird.
Versende dann eine Mail an IPS Server.
Der wertet die Mail aus und setzt den Status in IPS.

Ich weis das ist eine Krücke es funkt aber, natürlich mit entsprechender Zeitverzögerung.

Mann müsste doch nur jemanden finden der den dS-Server dazu bringt
per JSON eine Aktion auszuführen wenn beim dS-Server was ankommt.

… andere Idee dazu:

ich habe in der Digitalstrom App „Szene Responder“ folgendes eingerichtet.

  • [li] Auslöser Gerätetaster Betätigung
    [/li][li] Raum und Lichtklemme ausgewählt
    [/li][li] Aktivität - URL aufrufen
    [/li][li] und folgende URL hinterlegt:
    [/li]
    http://ip-des-ips-servers/user/digitalstrom/digitalstrom.php?method=set_value_boolean&item=xxxxx&state=off

Im Link muss das „xxxxx“ durch die InstanzID der Digitalstrom Licht Klemme getauscht werden und der Wert am ende der jeweiligen Aktion(on/off) angepasst werden.

Auf dem IPS Server habe ich im Verzeichnis Webfront/user/ das Verzeichnis „digitalstrom“ angelegt.
Dort habe ich folgendes Script abgelegt:


<?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."
");
    	    fwrite($datei, $time." - Item: ".$item."
");
    	    fwrite($datei, $time." - Wert: ".$state."
");
    }
    $id_int = intval($item);
    if ($logging)
    {
    	    fwrite($datei, $time." - IPS-ID: ".$id_int."
");
    }
    
    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."
";
    if ($return == false & $logging)
    {
    	    $error = implode(";",error_get_last());
    	    fwrite($datei, $time." - Fehler beim schreiben der Variable: ".$error." 
");
    }
    else 
    {
    	    fwrite($datei, $time." - Variable erfolgreich aktualisiert
");
    }


}
else if ($logging)
{
    fwrite($datei, $time." - Falsche Methode: ".$method. "
");	
}

if ($logging)
{
	fwrite($datei, "
");
	fclose($datei);
}


?>

Im Script wird die Instanz der jeweiligen Lichtklemme geschaltet.

Ob das wirklich so funktioniert weiss ich noch nicht, sollte aber eigentlich gehen.
Wofür ich noch keine Lösung habe ist für die Rolladen, da da der Wert wichtig wäre. Aber das finden wir auch noch raus.

Gruß
Christian

Hi,

durch deinen Denkanstoß.
Es geht noch einfacher z.Zt. nur in Vers IPS 4.0 (RasPi).
Im Scene Responder neuen Automat anlegen mit aufruf einer URL
In IPS einen Hook anlegen mit einem auslösenden Script.
[SIZE=3][SIZE=3]In die URL den Hook Aufruf eintragen.

http://0812ce1aa37842566f1ec2643264241d.ipmagic.de/hook/Test

Mit dem Script Status eintragen.

funktionert.
[/SIZE]
[/SIZE]

Vielen Dank für die angeregte Diskussion.

Tönt für mich im Moment so, dass meine DS Umgebung IPS nicht ganz so doll harmoniert.
Wer weiss, vielleicht kriegen wir noch ein paar Dinge hin.

Danny

Hi zusammen,

Gibts denn hier Neuigkeiten? kann das wirklich nicht verstehen, warum DS den Status nicht weiter gibt.

Lg