digitalstrom - stimmungen

Hallo. Ich bin absoluter Neuling und gerade glücklich, dass ich mal die Instanzen hingekriegt habe. Als Quereinsteiger von openHAB muss ich mich jetzt mal mit den Unterschieden auseinandersetzen.

Die digitalstrom-Geräte sind eingelesen. „Anwesenheit“, „Abwesenheit“, „Klingelton“ und „Alarmsignal“ sind auch da.

Wie komme ich an die Stimmungen heran?

Danke für die Starthilfe.

Rechte Maustaste, dann Objekt hinzufügen, genauer Instanz hinzufügen. Dann am Besten selektierst Du auf „Digitalstrom“. Dann wählen dS Room. Dann Namen dafür eingeben. z.B. Küche. Nächster Schritt: Raumnummer wählen (diese findest Du im dS Configurator für die Küche). Dann bei „Gruppe“ auf Licht einstellen. C’est la vie.

Im IP-Symcon Configurator findest Du jetzt diese Instanz mit einem Integer daran gehängt. Dieser Integer zeigt die Stimmung im Raum an.
Leider ist das Formate sehr mager. (Hoffe IP-Symcon erweitert diese Formate einmal). Entsprechend musst Du es einmal selbst machen. Doppelklick auf diese Scene Integer. Dann Profil verwalten wählen. Anstatt diese kleine Format „~ds.Zone“, mach es selbst einmal mit allen Werten. Wähle „Neu“. Gib einen Namen für diese Format z.B. dS_Licht. Danach in der rechten Tabelle gibst Du ein: 0 „Raum Aus“, 1 „Bereich 1 Aus“, 2 „Bereich 2 Aus“, etc. Danach bist Du schon seit weit nach dem Speichern.

Es fehlt noch die Umsetzung gemäss meiner Anleitung über die Berechnung des Rückkanals und schon hast Du ein perfektes System.

Für jede Lampe kreierst Du eine Integervariable. Diese Integervariable zeigt dann den von IP-Symcon berechneten Status an.

Vielen Dank für die „Gehhilfe“. Ich wäre ja selbst nie darauf gekommen und bin gerade ein bisschen unsicher, ob Symcon bei dieser Komplexität überhaupt das Richtige für mich ist…

Nun, ich habe dank Deiner Hilfe eine Variable erstellt und bearbeitet. Ich habe zum Probieren Raum 4 (bei mir Wohnen/Essen, LICHT) genommen. Leider kann ich das mit „Profil verwalten“ nicht nachvollziehen, weil ich diese Option nicht habe. Auch das mit „rechter Tabelle“ geht nicht, weil es keine rechte oder linke Tabelle hat? Ich hänge mal eine Bildschirmkopie an.

Kann es sein, dass Symcon 5 hier andere Menüs hat?

Gruss. Marc

Sorry, in IP-symcon sagt man nicht formate sondern Profile.


Hier Profile verwalten


Diese so zum Beispiel eingeben

hallo msiegw. Ich wollte einen kurzen Zwischenbericht geben, nicht dass Du denkst, ich habe es nicht gelesen. Ich bin gerade etwas oft unterwegs und kann nur sporadisch ausprobieren. Zuerst zum „Rückkanal“. Das ist technisch noch weit über meinem Level, aber ich bleibe dran!
Dadurch, dass Symcon V5 andere Menüs hat, ist es für mich nicht immer einfach, die äquivalenten Abläufe zu finden. Aber ich komme hin.
Ich verstehe den Teil mit ~ds.Zone nicht richtig. Ich habe jetzt einfach einmal für das Licht im Wohnzimmer die Szenen 1-4 angelegt. Was ist der Vorteil, wenn ich das mit 0 „Raum Aus“, 1 „Bereich 1 Aus“, 2 „Bereich 2 Aus“ mache?
Ah, und ist es richtig, dass benutzerdefinierte Handlungen (noch) nicht gehen?
Gruss. Marc.

Hallo msiegw

Ich versuche schon seit einiger Zeit den Rückkanal seitens Digitalstrom in IPS auszulessen.
Glücklich währe ich schon die Zustände einzelner Lampen zu Kennen.
Mit der Digitalstromkonfiguration habe ich keine Mühe, auch mit IPS klappt es recht gut.
Ich habe auch schon mehrere Artikel von dir gelesen und versucht diese umzusetzen. Bisher leider ohne Erfolg.
Nun bin ich an dieser Post hängen geblieben, konnte auch alles nachvollziehen und einrichten.
Aber wie geht es weiter?

Es fehlt noch die Umsetzung gemäss meiner Anleitung über die Berechnung des Rückkanals und schon hast Du ein perfektes System.

Wo finde ich diese Umsetzung, oder gibt es bereits andere Lösungsansätze?
Für einen Tipp währe ich dankbar.

Dieser Post ist ziemlich alt. Seit 1.16 muss man den Zustand der Lampen nicht mehr berechnen. Man kann das ganze System pollen in einem Sekundenbruchteil. Dies ist in Beschreibung Rückkanal beschrieben. Ebenso weiss man, wann man das System pollen muss. Dies geht für Lampen und Schattenklemmen. Temperatur- oder Feuchtigkeitsstatis pollt man zum Beispiel jede Minute einmal.

Vielen Dank für deine Antwort

Ich habe versucht deinen Anweisungen zu folgen, leider verstehe ich
diese nicht im Detail. (da Verweisse auf andere Post → was ist jezt
aktuell)
Könntest du dir vorstellen, den Weg wie Polle ich den aktuellen Zustand
(der Lampen /Jalussien) in einfachen Worten wiederzugeben?
Verstehe mich nicht falsch, ich habe grossen Respekt was du da geleistet
hast und ich staune immer wieder was mit Ip-Symcon möglich ist.
Aber ich glaube das du mit einer aktuellen „How to do“ nicht nur mich
sondern viele Digitalstömler glücklich machen würdest.

Vielen Dank für deinen Einsatz

Das Kernstück ist folgendes php-Skript:

<?php
$Server = "192.168.1.23"; 
$AppToken = "506aa41219d946d918cf7421ced104154e067c2e0c378cda8e50d6fcb1aaasdf";       //64-Stelligen Applikation Token
$tcpPort = "8080";


$Call2 = "/api/v1/apartment/status?includeAll=true";

$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);

 

$sessionToken = fdSLogin();


$ist2=fdSGetJson($Call2, $sessionToken);
$ist2=json_decode($ist2,true);

$ist2=$ist2['data']['included']['dsDevices'];
print_r($ist2);



/************************************************* Funktionen definieren  **********************************/
 
/* digitalSTROM Login Prozedure Function */
function fdSLogin(){
    global $Server;
    global $tcpPort;
    global $AppToken;
    global $arrContextOptions;
 
    if($sessionToken = file_get_contents("https://" . $Server . ":" . $tcpPort . "/json/system/loginApplication?loginToken=" . $AppToken, false, stream_context_create($arrContextOptions))){
        $sessionToken = json_decode($sessionToken);
        return $sessionToken->result->token;
    }
    else{
        return "<font color='red'><b>ERROR:</b> unable to get loginToken from digitalSTROM Server</font><br>";
    }
}
 
/* digitalSTROM get JSON content Function */
function fdSGetJson($call, $sessionToken){
    global $Server;
    global $tcpPort;
    global $arrContextOptions;
    $sHelp;
    global $debug;
 
    $sHelp = "https://" . $Server . ":" . $tcpPort . $call . "&token=" . $sessionToken;
 
    if($jsonOutput = file_get_contents($sHelp , false, stream_context_create($arrContextOptions))){
        return $jsonOutput; // plain output
    }
    else{
        return "<font color='red'><b>ERROR:</b> unable to get JSON Content from digitalSTROM Server</font><br>";
    }
}
>

Die ersten beiden Zeilen (IP-Adresse deines dSS, sowie den Applikations Token abschreiben) musst Du entsprechend ändern.

Wenn Du den output siehst als eine json Datenbank, bist Du schon beinahe durch. Danach können wir aufbauen weiterreden.

Vielen Dank für deine Hilfestellung,
Den Output meiner Devices sehe ich nun, auch das diese schalten anhand einer Lampe die ich ein/aus schalte.
–>Lampe ausgeschaltet

[10] => Array
(
[id] => 303505d7f80000000000004000024e3500
[type] => dsDeviceStatus
[attributes] => Array
(
[functionBlocks] => Array
(
[0] => Array
(
[id] => 303505d7f80000000000004000024e3500
[outputs] => Array
(
[0] => Array
(
[id] => brightness
[value] => 0
[status] => ok
[targetValue] => 0
[level] => 0
)

                                    )

                            )

                    )

–>Lampe eingeschaltet

[10] => Array
(
[id] => 303505d7f80000000000004000024e3500
[type] => dsDeviceStatus
[attributes] => Array
(
[functionBlocks] => Array
(
[0] => Array
(
[id] => 303505d7f80000000000004000024e3500
[outputs] => Array
(
[0] => Array
(
[id] => brightness
[value] => 100
[status] => ok
[targetValue] => 100
[level] => 1
)

                                    )

                            )

Jetzt hast Du es beinahe geschafft. In Rückkanal Beschreibung findest Du noch meine Ausführungen, wie man diese Zustände einer Variable zuweist.

Ein Problem ist, dass Du die Variablen, welche durch den Konfigurator erstellt wurden für eine Klemme, nicht überschreiben kannst. Sie sind schreibgeschützt. Diesen Schreibschutz kannst Du umgehen, indem Du JSONRPC verwendest. Du gehst von IP-Symcon hinaus und manipulierst die IP-Symcon Datenbank von „aussen“.

Wenn Du den Zustand eine Lampe mit einer eigenen Variable darstellen möchtest (meine Empfehlung), dann brauchst Du diesen Umweg nicht. Du musst aber beachten, dass die Beschreibung json Datenbank für verschiedene Typen von Klemmen anders aussieht. Im obigen Link findet Du meine Ausführunge für GE-KL200, SW-UMR200, SW-KL200 oder SW-SSL200-JS.

Das nächste Kapitel ist, wann Du jeweils pollen musst. Dies ist auch im obigen Link erklärt. Dies ist der Teil mit dem Websocket ws://192.168.1.111:8090/api/v1/apartment/notifications
Kurzum, Du bekommst vom dSS eine Meldung zum Websocket, dass eine Klemme den Zustand geändert hat. Leider erfährst Du jedoch nicht welche. Entsprechend musste Du einfach das ganze System pollen.

Somit hast Du den Rückkanal perfekt erstellt.

Brauchst Du noch Hilfe zur Erstellung des Hinkanals? Siehe

<?
if ($_IPS['SENDER'] == 'WebFront')
    {

        SetValue($_IPS['VARIABLE'], $_IPS['VALUE']); 

        switch ($_IPS['VALUE'])
            {
                  case 0:
                        DS_CallScene(12345 ,1); 
                  break;

                  case 1:
                        DS_CallScene(12345 ,6);
                  break;
            }

    }
?>

Zum Sendung der Bereiche 1 ein und Bereich 1 aus. 12345 musst Du entsprechend der dS Zone abändern. Dieses Skript an die Variable hinhängen.

Vielen Dank für deinen super Support

Ich muss mir dass nächstes Wochenende mal in Ruhe anschauen.
Aber es ist für mich schon einiges klarer geworden.

Sollte ich noch Fragen haben komme ich gerne auf dich zu.
Ich bin wirklich happy, dass das mit den Rückmeldungen schon mal halbwegs klappt.
Ohne deine Hilfe währe ich nie so weit gekommen.