Revogi SOW323

Begonnen von digiart, 22 Februar 2016, 20:05:11

Vorheriges Thema - Nächstes Thema

digiart

Hallo!

Ich hab mich schon am Modul "54_SOP112.pm" von Per versucht, dass ich die 6fach Steckdosenleiste (eigentlich 6xSOP112)  SOW323 https://www.conrad.de/de/wifi-steckdosenleiste-6fach-anthrazit-schutzkontakt-revogi-sow323-1388630.html ansprechen kann. Leider ist mein Perl-Wissen nicht weit genug fortgeschritten, dass dies gelungen wäre.
Die Befehle, die die Steckdosenleiste akzeptiert, sind eigentlich die gleichen, wie bei der SOP112 Steckdose mit kleinen Abweichungen:

/?cmd=200&json={"port":0,"state":1}
schaltet alle 6 Ausgänge ein("state":1)/aus("state":0)

/?cmd=200&json={"port":1,"state":1}
schaltet Port 1 ein("state":1)/aus("state":0). "Port" akzeptiert Werte von 1-6.

Als Response kommt bei erfolgreicher Ausführung
{"response":200,"code":200}
zurück

Die Rückgabewerte der Abfrage-Befehle:
/?cmd=512
{"response":512,"code":200,"data":{"master":[2,2,2,2,2,2],"limit":0}}

/?cmd=513
{"response":513,"code":200,"data":{"switch":[1,1,1,1,1,0]}} (Ausgang 6 aus)

/?cmd=514
{"response":514,"code":200,"data":{"rule":[]}}

/?cmd=511
{"response":511,"code":200,"data":{"watt":["0.00","0.00","0.00","0.00","0.00","0.00"],"amp":["0.0","0.0","0.0","0.0","0.0","0.0"],"switch":[1,1,1,1,1,0]}}  (Ausgang 6 aus)

Ich könnte maximal ein paar Sub's in 99_myUtils.pm schreiben, um die Ausgänge zu schalten und die Verbrauchsdaten abzufragen, aber das wäre nicht sehr elegant und sicher nicht im Gedanken von FHEM.
Vielleicht kann jemand von euch Profis das Modul anpassen.
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

FHEM_RIIR

Ich habe mal ein Modul für Revogi SOW323 geschrieben.

Dazu drei Hinweise:

  • Das ist mein allererster Perl-Quellcode. Bisher habe ich diese Programmiersprache vermieden, aber jetzt gab es mal Bedarf bei mir. Daher meinen "unschönen" Code zu entschuldigen.
  • Die Abfrage des Zustandes einer Revogi SOW323 erfolgt leider noch blockierend (1 sec je definiertes Device). Ich möchte das mal auf nichtblockierend umstellen, aber erst im nächsten Schritt
  • Für eine Revogi SOW323 kann sowohl ein SummenDevice angelegt werden (also ohne Angabe eines Ports), als auch ein Device je schaltbarer Steckdose. Beides gleichzeitig geht natürlich auch.

Das Modul ist soweit einsetzbar - es wird Zustand und Energie abgefragt.

digiart

Super!

Werde es am Wochenende reinspielen und konfigurieren.
Ich hab in der Zwischenzeit zwei Routinen für Status/Schalten und Leistungswerte in meine 99_myUtils.pm integriert und rufe die Leistungsmessung mit at zyklisch auf.
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

FHEM_RIIR

Ich denke, ich werde das Modul noch etwas umbauen. Besonders die Namensgebung der Attribute gefällt mir (noch) nicht. Weiters werde ich noch weitere Energiekennwerte einbauen (derzeit ist nur der aktuelle Verbrauch als Attribut verfügbar; eine akkumulierte Form wird folgen).

FHEM_RIIR

Ich habe nun das Modul um die Ausgabe der Energiedaten erweitert, sowie um eine Dokumentation bezüglich der Readings/Attribute.

Was ist noch offen:

  • Wenn für eine Revogi mehrere Devices definiert werden (was ein übliches Vorgehen ist) und die Revogi nicht via IP erreichbar ist - so überprüft jedes Device die Verbindung und blockiert folglich unnötig oft die Abarbeitung von FHEM.
[li]Die Abfrage der Energiedaten ist derzeit an die Abfrage der Statii gebunden. Da die Energiedaten aber nur stündlich von der Revogi aktualisiert werden, ist die Abfrage der Energiedaten unnötig und bläht die Logdatei unnötig auf.
[/li][/list]

Anbei die aktuelle Version des Moduls.

FHEM_RIIR

Ok - hier eine weitere Version des Moduls mit 2 Änderungen:

1.) Wenn ein Revogi nicht mittels IP erreichbar ist, so wird nur noch einmal pro Revogi getestet (trotz mehrerer Device-Definitionen). Somit werden die Blockierungen reduziert auf 1s einmalig je Device und Abfrageinterval (jene des Devices gleicher IP und dem geringsten Interval).
2.) Die Abfrage der Energiedaten erfolgt nur noch maximal stündlich (somit wird die Größe des Logfiles stark reduziert).

FHEM_RIIR

Nachdem es bei mir Probleme mit dem Letztstand von FHEM und dem Modul gab - sowie einiges JSON-Probleme auftraten, habe ich eine neue Version von dem Modul erstellt.

Hier ist es ...  ;D

ginschterle

Hi,
ich habe mir die Revodi SOW323 Steckdosenleiste gerade gekauft. Eine Frage zu Deinem Modul:

Wie aktiviere ich es in FHEM?

Eine kleine Bedienungs- / Installationshilfe wäre nett.


FHEM_RIIR

#8
Ok, also hier eine kleine Anleitung:

ich nehme an, dass fhem installiert ist (in weiterem unter dem Verzeichnis /opt/fhem). Dann kopierst du die Datei 54_SOW3232.pm in das Verzeichnis /opt/fhem/FHEM. Anschließend fhem neu starten und folgend vorgehen:
* IP-Adresse der Steckdosenleiste feststellen (in meinem Beispiel 10.0.0.40)
* Konfiguration festlegen

Meine Configuration lautet:
define SWITCH_WORK SOW323 10.0.0.40
define FileLog_Switch_Work FileLog ./log/Switch-Work-%Y-%m.log SWITCH_WORK

bzw. falls jede Steckdose separat konfiguriert werden soll:
define SWITCH_WORK_1 SOW323 10.0.0.40 1
define SWITCH_WORK_2 SOW323 10.0.0.40 2
define SWITCH_WORK_3 SOW323 10.0.0.40 3
define SWITCH_WORK_4 SOW323 10.0.0.40 4
define SWITCH_WORK_5 SOW323 10.0.0.40 5
define SWITCH_WORK_6 SOW323 10.0.0.40 6
define FileLog_Switch_Work1 FileLog ./log/Switch-Work-1-%Y-%m.log SWITCH_WORK_1
define FileLog_Switch_Work2 FileLog ./log/Switch-Work-2-%Y-%m.log SWITCH_WORK_2
define FileLog_Switch_Work3 FileLog ./log/Switch-Work-3-%Y-%m.log SWITCH_WORK_3
define FileLog_Switch_Work4 FileLog ./log/Switch-Work-4-%Y-%m.log SWITCH_WORK_4
define FileLog_Switch_Work5 FileLog ./log/Switch-Work-5-%Y-%m.log SWITCH_WORK_5
define FileLog_Switch_Work6 FileLog ./log/Switch-Work-6-%Y-%m.log SWITCH_WORK_6

Es geht übrigens auch beide Konfigurationen gleichzeitig zu verwenden (ist bei mir so)
Danach die Konfiguration sichern und los gehts ...

Zwecks Optik verwende ich übrigens folgende Konfiguration:
attr SWITCH_WORK IconPrefix black_Steckdose.
attr SWITCH_WORK devStateIcon off:black_Steckdose.off:on on:black_Steckdose.on:off
attr SWITCH_WORK_1 devStateIcon off:black_Steckdose.off:on on:black_Steckdose.on:off
attr SWITCH_WORK_2 devStateIcon off:black_Steckdose.off:on on:black_Steckdose.on:off
attr SWITCH_WORK_3 devStateIcon off:black_Steckdose.off:on on:black_Steckdose.on:off
attr SWITCH_WORK_4 devStateIcon off:black_Steckdose.off:on on:black_Steckdose.on:off
attr SWITCH_WORK_5 devStateIcon off:black_Steckdose.off:on on:black_Steckdose.on:off
attr SWITCH_WORK_6 devStateIcon off:black_Steckdose.off:on on:black_Steckdose.on:off

ginschterle

Hi,

vielen Dank für die schnelle Hilfe. Es funktioniert soweit. Allerdings werden im Minutentakt  Einträge in die LOG-Datei geschrieben (siehe angehängte Datei)

... mein devstateIcon sieht so aus:
attr SWITCH_WORK devStateIcon on:message_socket@green off:message_socket@red
(Steckdosensymbol; rot = ausgeschaltet, grün = eingeschaltet)

:)

FHEM_RIIR

Der Status wird per default alle 60 Sekunden abgefragt (und in das Logfile eingetragen). Das Intervall ist ein Attribut und lässt sich nach den Bedürfnissen abändern (siehe Device Specific Help).

Beispielsweise:
attr SWITCH_WORK Interval 3600

Der Zustand wird bei jedem Bootup bzw. bei jedem Ändern des Zustandes über die Weboberfläche aktualisiert. Im Weiteren sollte das Intervall nicht länger als 1h sein, da ansonsten die Abfrage der stündlichen Energieaufzeichnung nicht korrekt funktioniert (analoges gilt für das Interval > 1d, Interval > 1w, Interval > 1m, Interval > 1y).

satprofi

Hallo.
habe die Leiste auch bei Conrad entdeckt. Kann man über fhem die verbrauchswerte auch auslesen?

gruss
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

FHEM_RIIR

Ja, mit dem Modul ist auch das Auslesen der Verbrauchswerte möglich (sowohl pro Steckdose, als auch für das gesamte Modul - im Weiteren Auswertung stündlich/täglich/wöchentlich/monatlich/jährlich).

Welche Readings verfügbar sind, können mit der Device-spezifischen Hilfe eingesehen werden.

satprofi

Jetzt in Aktion bei Conrad um 69,99
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

FHEM_RIIR

Aktualisierung des Plugin um die Fehlermeldung "experimental keys on scalar is now forbidden" (Sprachfeature wurde in Perl 5.24 zurückgezogen) zu lösen.
Weiterhin ein paar Code-Formatierungen durchgeführt.

Bin leider immer noch nicht dazugekommen, das Plugin offiziell an FHEM zu übergeben ... aber ich arbeite daran :)