[Modul] myStrom

IPSymconMyStrom

Dokumentation auf Github

Kurzanleitung:

Mit dem Modul ist es möglich myStrom Stecker und myStrom Birnen zu schalten entsprechend der myStrom REST API.

Vorraussetzungen:
IP-Symcon 4.3

Installation
Die IP-Symcon (min Ver. 4.3) Konsole öffnen. Im Objektbaum unter Kerninstanzen die Instanz Modules durch einen doppelten Mausklick öffnen.

In der Modules Instanz rechts oben auf den Button Hinzufügen drücken.

In dem sich öffnenden Fenster folgende URL hinzufügen:


https://github.com/Wolbolar/IPSymconMyStrom

und mit OK bestätigen.

Anschließend erscheint ein Eintrag für das Modul in der Liste der Instanz Modules.

Einrichtung in IPS
In IP-Symcon nun Instanz hinzufügen (CTRL+1) auswählen unter der Kategorie, unter der man die myStrom Instanz hinzufügen will, und myStrom auswählen. Im Konfigurationsformular ist die IP Adresse des Geräts sowie die MAC Adresse des Geräts einzutragen und der Typ (Switch/Bulb) auszuwählen.

Hallo Fonzo

Vielen Dank für Dein Modul! In der Schweiz sind dieser MyStrom-Adapter ziemlich weit verbreitet, da sie ein grosser Telekommunikationskonzern selbst direkt bewirbt und vertreibt. Ich selbst habe zwei Schaltsteckdosen, wobei zur Zeit nur eine in Betrieb ist. Darum bin ich mit Interesse auf Dein Modul gestossen.

Meines Erachtens habe ich das Gerät wie beschrieben eingerichtet, erhalte aber bei der Aktualisierung der Daten den angezeigten Fehler:

Den gleichen Fehler erhalte ich beim Update der zugehörigen I/O-Instanz.

Woran könnte das liegen? Mit welchen Informationen könnte ich Dir weiterhelfen?

Gruss
Andy

Ich schaue mir das morgen Abend mal an wollte auch noch ein paar Änderungen vornehmen. Gebe Dir dann Bescheid wenn ein Update verfügbar ist.

Perfekt, danke!

Ich habe jetzt ein Update hochgeladen. Der IO wurde komplett gelöscht, jedes Gerät kommuniziert jetzt einzeln. Dementsprechend kann auch pro Gerät ein Update Intervall eingestellt werden.

Kannst Du mal Rückmeldung geben ob sich die Schaltsteckdose schalten lässt. Weiterhin wenn man die Instanz und dort das Debug Fenster öffnet, was steht dort sobald Daten abgeholt werden?

Hallo Fonzo

Konnte nun einmal testen, es funktioniert aber noch nicht wirklich. Folgendes ist der Output im Debugger:

Ich habe mich nun einmal durch die module.php gewühlt und hatte den Eindruck, dass Du bei der Schaltsteckdose den gleichen Befehl verwendest, wie er für die Birne beschrieben ist:

function Send($command)
    {
        $ip = $this->ReadPropertyString('ip');
        $mac = $this->ReadPropertyString('mac');
        $URL = "http://" . $ip . "/api/v1/device/" . $mac;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$URL);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $command);
        $response = curl_exec($ch);
        $err = curl_error($ch);
        curl_close($ch);

Die API sieht für die Schaltsteckdose aber andere Befehle vor:

Set State
ON – http://[IP]/relay?state=1
OFF – http://[IP]/relay?state=0
TOGGLE – http://[IP]/toggle

Get Values
http://[IP]/report

Response
{
„power“: 0,
„relay“: false
}

[IP] – IP Address of your Switch e.g. 192.168.1.99

Dafür bekommt man mit „report“ auch noch den aktuellen Verbrauch geliefert.

Grüsse
Andy

Danke für den Hinweis, mach dann mal ein Update und schaue dann mal ob es dann geht.

Das Schalten funktioniert nun einwandfrei! Perfekt.

Die zyklische Abfrage führt noch zu folgendem Fehler:

Ich könnte mir vorstellen, dass es sich dabei noch um den Verbrauch handelt, für welchen ja noch keine Variable angelegt wurde.

Das hat zunächst mal nichts mit der Variable zu tun wenn dort schon ein Fehler kommt.

Was passiert denn bzw. was bekommst Du als Antwort, wenn Du in einem Browser


http://[IP]/report

eingibst?

Das hier:

Status.PNG

Ich habe mal ein Update gemacht, kannst Du mal Rückmeldung geben ob es sich schalten lässt und der Wert richtig abgeholt wird?

Sorry, dass es so lange gedauert hat, war die letzten Tage unterwegs.

Schalten läuft, beim Wert für den Verbrauch müsste das Variablenprofil im Modul noch auf Watt angepasst werden, dann stimmt es!

Vielen Dank!

Habe das Variablenprofil mal abgeändert auf ~Watt3680, im Zweifelsfall musst das das Variablen Profil einfach umstellen und dann schauen ob dies das passende ist. Ansonsten noch mal melden.

Beim erneuten Anlegen der Instanz kommt folgende Warnung:

Warning.PNG

Wahrscheinlich kommt deshalb auch diese Information, wenn ich auf „Aktualisierwn“ klicke:

Hinweis.PNG

Im Debugger sieht es so aus:

Gruss

Edit: Das Variablenprofil müsste wahrscheinlich ~Watt.3680 heissen.

Ja da hat ein . gefehlt. Schau mal ob der Fehler nach dem Update weg ist.

Jetzt passt alles!

Jetzt spiel ich Mal damit rum…

Danke!

Hey, das habe ich erst jetzt gesehen. Da bist du mir zuvor gekommen…

Wollte selbst mal ein Modul machen, weis jetzt noch nicht wie es geht. Wäre ein guter anstoss gewesen. Habe paar solche Schalter.

Danke fürs die Umsetztung :smiley:

Suche eine andere Idee… :confused:

Da gib es bestimmt genügend spezifische Geräte, die vor allem in der Schweiz eingesetzt werden.

Habe heute die erste myStrom Bulb erhalten, damit ich dein Modul auch einmal damit testen kann. Die Einrichtung und der Betrieb in IPS läuft soweit völlig problemlos!

Einen Verbesserungsvorschlag hätte ich aber noch: Wenn man die Farbe, Helligkeit oder Sättigung via App ändert, sollte dies nach Ablauf des eingestellten Intervalls auch in IPS abgebildet werden. Gibt das die API überhaupt her?

Gruss

Ja die Methoden sind auch im Modul enthalten, wurden nur nicht automatisch mit dem Intervall aufgerufen, dies habe ich jetzt geändert, kannst ja mal Rückmeldung geben ob das so passt.