[Modul] Gembird EG-PMS2-LAN Steckdose [Testversion]

Hallo,

anbei ein kleines Modul zum Schalten der Steckdosenleiste von Gembird EnerGenie EG-PMS2-LAN.

Installation:

Es wird IP Symcon 4 benötigt. Hier unter Kerninstanzen Module das Modul hinzufügen mit der URL


https://github.com/Wolbolar/SymconEGPMSLAN

Einrichtung:

Eine neue Instanz hinzugügen. Als Hersteller Gembird auswählen und als Gerät EG-PMS2-LAN. Im Konfigurationsformular ist die IP Adresse der Steckdose einzutragen sowie das Passwort das zum direkten anmelden an der Weboberfläche der Steckdose benutzt wird. Das Updateintervall kann eingestellt werden.

Weitere Infos
SymconEGPMSLAN/README.md at master · Wolbolar/SymconEGPMSLAN · GitHub

Hallo Fonzo,

vielen Dank für das Modul. Ich habe eine entsprechende Steckerleiste im Einsatz und möchte nun einzelne Steckdosen per Wochenplan schalten lassen.

Mir ist hierbei im Protokoll aufgefallen das während der Schaltung durch den Wochenplan die Steckdose erst aus- und dann wieder angeschaltet wird. An der Steckerleiste selbst ist nur ein Schaltvorgang hörbar, also es klickt nur einmal. Kannst Du Dir erklären was da evtl. schief läuft?

Ausgangssituation ist eine ausgeschaltete Steckdose die durch den Wochenplan zu einer vorgegebenen Zeit in diesem Beispiel genau um 13:18 Uhr) angeschaltet werden soll.

Auszug aus dem Protokoll:


05.12.2017 13:18:00 | VariableManager | [Erdgeschoss\Wohnzimmer\Steckerleiste\EG-PMS2-LAN\Status Dose 1] = true
05.12.2017 13:18:01 | VariableManager | [Erdgeschoss\Wohnzimmer\Steckerleiste\EG-PMS2-LAN\Status Dose 1] = false
05.12.2017 13:18:01 | Automatik.Zeitschaltuhr | Steckdose 1 wurde durch Wochenplan aktiviert
05.12.2017 13:18:15 | VariableManager | [Erdgeschoss\Wohnzimmer\Steckerleiste\EG-PMS2-LAN\Status Dose 1] = true

Script:


# Variablen
$instanceID = 46340 /*[Erdgeschoss\Wohnzimmer\Steckerleiste\EG-PMS2-LAN]*/;
$portID = 1;

# Aufruf per Timer
if($_IPS['SENDER'] == "TimerEvent") {
	switch ($_IPS['ACTION']) {
  	case 1:
			EGPMSLAN_PowerOn($instanceID, $portID);
			m2p("Steckdose $portID wurde durch Wochenplan aktiviert"); 
			break;
		case 2:
			EGPMSLAN_PowerOff($instanceID, $portID);
			m2p("Steckdose $portID wurde durch Wochenplan deaktiviert");
			break;
	}
}

Gruß

Gute Frage. Was passiert denn im Log bzw. an der Steckdose wenn Du nur


$instanceID = 46340 /*[Erdgeschoss\Wohnzimmer\Steckerleiste\EG-PMS2-LAN]*/; 
$portID = 1; 
EGPMSLAN_PowerOn($instanceID, $portID); 

ausführst?

Da wird der Vorgang tatsächlich nur 1x ausgeführt:


05.12.2017 14:10:47*| VariableManager*| [Erdgeschoss\Wohnzimmer\Steckerleiste\EG-PMS2-LAN\Status Dose 1] = true

Auch bei den darauf folgenden Aktualisierungsdurchläufen (Interval: 15 Sekunden) der Instanz bleibt das Protokoll ruhig und meldet keinerlei weiteren Schaltvorgänge.

Scheinbar kommen die wechselnden Schaltvorgänge durch den Wochenplan :confused:

Ich glaube das ich die Ursache gefunden habe, Fonzo.

Das Intervall-Ereignis, das alle 15 Sekunden EGPMSLAN_getStatus ausführt, und damit auch immer zur vollen Minute, beißt sich mit dem Wochenplan, der die Aktion auch immer zu vollen Minute startet.

Ich habe die Startzeit des Intervall-Ereignisses von xx:xx:00 auf xx:xx:05 gesetzt. Damit taucht die unnötige false-Meldung, direkt nach dem Schaltvorgang durch den Wochenplan, nicht mehr auf :slight_smile:

Hallo!

Leider scheint das tolle Modul nicht out-of-the-box mit IP-Symcon 5 kompatibel zu sein.
Kannst du bei PowerOn und PowerOff jeweils den Typen Integer aus der Signatur entfernen?

Schau mal ob es nach einem Update des Moduls funktioniert.

1a! Vielen vielen Dank :slight_smile:

Hi Fonzo,

ich verwende dein Modul nach wie vor liebend gerne :slight_smile:

Leider habe ich seit dem letzten Update folgende Fehler:

13/02/2019, 19:11:33 | TimerPool | EG-PMS2-LAN (Update): <br />
<b>Warning</b>:  Cannot auto-convert value for parameter InstanceID in <b>/var/lib/symcon/scripts/__generated.inc.php</b> on line <b>6473</b><br />
<br />
<b>Fatal error</b>:  Uncaught Exception: Instance does not implement this function in /var/lib/symcon/scripts/__generated.inc.php:6478
Stack trace:
#0 /-(1): EGPMSLAN_getStatus(' . 21963 . ')
#1 {main}
  thrown in <b>/var/lib/symcon/scripts/__generated.inc.php</b> on line <b>6478</b><br />

Hast Du eine Idee?

Welche IP-Symcon Version nutzt Du?
Hast Du mal IP-Symcon neu gestartet nach dem Update?

P.S. Ich glaube habe den Fehler gefunden bessere das gerade aus.

Ja, restart habe ich gemacht.
Es handelt sich um die aktuelle 5.0. Ich bin auch im GIT Master unterwegs was Dein Modul angeht.

Das sieht nach einem Fehler im Modul aus.
Da wird die InstanzID beim Timer als String übergeben, muss aber ein Integer sein.
Michael

Wie muss es denn richtig lauten, dann bessere ich das aus?

Habe das nur anhand der Fehlermeldung gesehen.
Was machen da die ’ ?
EGPMSLAN_getStatus(’ . 21963 . ')
Michael

Ich war schon mit dem Finger auf der F5 Taste in der Modulübersicht :smiley:

Jetzt mit dem neusten Update ist der Fehler weg!

Vielen vielen Dank für den ultra schnellen Fix!

Machst Du noch mal ein Update und gibst dann Rückmeldung ob es funktioniert?

:slight_smile: Läuft super. War in dem Augenblick scheinbar sehr schnell mit dem Testen :slight_smile: (s. Post über Deinem)
Danke nochmals!

Kurze Anmerkung von mir: Bei der Migration auf Symcon 5.1 sollte das Modul auf Master gestellt werden und der im Gerätebaum im Device angelegte Job sollte angepasst werden.
In Action: Muss die Methode getStatus in getState geändert werden.