FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: nog76 am 16 Dezember 2014, 11:44:50

Titel: Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: nog76 am 16 Dezember 2014, 11:44:50
Hi,

hat es jemand schon geschafft, diese ELV Schaltsteckdosen unter FHEM zu nutzen:

http://www.elv.de/elv-spar-set-mit-2x-schaltsteckdose-sop112-und-1x-powerline-adapter.html

Laut Beschreibung funktioniert das System nur per App und der "Cloud"-Lösung von ELV.
Es müsste doch aber auch irgendwie möglich sein, auch direkt an die Daten zu kommen und die Dosen zu schalten?

Vom UseCase wären die Steckdosen ideal, um eine Überwachung z.B. einer Waschmaschine im Keller zu realisieren. Oft reichen hier die normalen Funk-Lösungen (WLAN, DECT, Homematic) nicht mehr aus, während die Anbindung via Powerline funktioniert.
Da das Waschhaus in einem offen Raum im Mehrfamilienhaus liegt, würde ich auch ungern mit normalen Powerline-Adaptern mein LAN in die "Öffentlichkeit" legen.
Kennt jemand Alternativen?

VG,
Chris
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Doggiebert am 16 Dezember 2014, 12:09:58
Ich befürchte, Du kriegst da schon ohne FHEM keine Verbindung her; lt. Bedienunganleitung und lt. Forenbeitrag auf der Seite wird das Ding wohl nicht bis in den Waschraum kommunizieren können.

Das scheint ein Revogi Zukauf zu sein --> http://www.revogi.com/ (http://www.revogi.com/), und wenn ich da schon sowas lese:
ZitatThanks to Revogi's Proprietary Revogi technology, you just download the Apps to your Smartphone and get wireless control of your home devices!
, vermute ich mal, dass die ihr Protokoll nicht offenlegen wollen. Kannst ja mal bei denen nachfragen, ob sie Dir die Specs zuschicken, und dann versuchen, das nachzubilden.

Also eher schlechte Karten...
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Wzut am 16 Dezember 2014, 17:53:28
Zitat von: nog76 am 16 Dezember 2014, 11:44:50
Oft reichen hier die normalen Funk-Lösungen (WLAN, DECT, Homematic) nicht mehr aus
ob oft oder selten ist doch wurscht, entscheident ist doch ob du an deinerWM WLAN oder DECT Empfang hast oder nicht.
Lässt sich ja leicht mit dem Smartphone  bzw. DECT Telefon feststellen :) und wenn es denn WLAN sein soll/darf :
http://forum.fhem.de/index.php/topic,29541.0.html
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: nog76 am 16 Dezember 2014, 18:39:39
Zitat von: Wzut am 16 Dezember 2014, 17:53:28
ob oft oder selten ist doch wurscht, entscheident ist doch ob du an deinerWM WLAN oder DECT Empfang hast oder nicht.
Lässt sich ja leicht mit dem Smartphone  bzw. DECT Telefon feststellen :) und wenn es denn WLAN sein soll/darf :
http://forum.fhem.de/index.php/topic,29541.0.html

Ne, bei mir ist es genauso, dass ich weder WLAN noch DECT oder Homematic Empfang habe - schon durchprobiert ;-)
Habe auch mal bei ELV nachgefragt - sie haben nur geantwortet, dass die Steuerung per Smartphone möglich und es keine HTTP-Schnittstelle gibt.

Somit die Frage in den Raum - wer kennt eine Schaltsteckdose mit Energiemessung, die man per Powerline anbinden kann?
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: juppzupp am 16 Dezember 2014, 19:21:47
Avm 546e?
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: nog76 am 16 Dezember 2014, 19:35:16
Zitat von: juppzupp am 16 Dezember 2014, 19:21:47
Avm 546e?

Hatte ich mir auch angeschaut. Aber ich brauche das WLAN dann nicht im Waschraum - irgendwie zuviel des Guten ...
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: juppzupp am 16 Dezember 2014, 19:40:05
Abschaltbar.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Markus M. am 17 Dezember 2014, 13:48:49
Kein großes Problem:
Kaufen, App runterladen, Telefon über Proxy ohne SSL verbinden und dann den Datenverkehr mitschneiden.
Das Ergebnis dann in ein FHEM Modul verpacken. Fertig!
Das Problem an der Sache ist, dass es irgendwer machen muss ;)


Sent from my iPhone using Tapatalk
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: hjjk am 09 Januar 2015, 18:38:25
Also ich hab seit heute so ein Teil und hab bisher folgendes herausgefunden.

Dem PL501 Adapter wird in meinem Netz per dhcp die IP-Adresse 192.168.3.82 zugewiesen
Der Power Plug, also der schaltbare Adapter, hat eine Serien Nummer aufgedruckt,
z.B. so etwas wie SW10400100123
Sende ich per Browser
http://192.168.3.82/?cmd=200&json={"sn":"SWP1040001000123","port":0,"state":1}
wird die Steckdose eingeschaltet
mit
http://192.168.3.82/?cmd=200&json={"sn":"SWP1040001000123","port":0,"state":0}
entsprechend ausgeschaltet.

Mit
http://192.168.3.82/?cmd=511&json={"sn":"SWP1040001000123"7D}
kann man scheinbar den Status abfragen.
Ich erhalte als Antwort
{"response":511,"code":200,"data":{"watt":["0.00"],"amp":["0.0"],"switch":[0]}}

Ich hoffe das hilft weiter.




Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 09 Dezember 2015, 23:52:27
Schade, dass das hier eingeschlafen ist, bei ELV sind die Preise für das System gerade im Keller (30€ für SOP 112 + PL501, 15 € für jede weitere SOP 112).
Nebenbei habe ich schon raubekommen, dass die sn nicht mitgeschickt werden muss, die Syntax beschränkt sich auf:

http://192.168.xxx.yyy/?cmd=200&json={"state":0}
für aus und state=1 für an.

http://192.168.xxx.yyy/?cmd=511
{"response":511,"code":200,"data":{"watt":["0.00"],"amp":["0.0"],"switch":[0]}}

http://192.168.xxx.yyy/?cmd=512
{"response":512,"code":200,"data":{"master":[0],"limit":0}}

http://192.168.xxx.yyy/?cmd=513
{"response":513,"code":200,"data":{"switch":[0]}}

http://192.168.xxx.yyy/?cmd=514
{"response":514,"code":200,"data":{"rule":[]}}

http://192.168.xxx.yyy/?cmd=515
{"response":515,"code":200,"data":{"start":"
dann geht es mit Steuerzeichen weiter.

Aufruf geht mit (natürlich mit den passenden Parametern)
{GetFileFromURL "http://192.168.xxx.yyy/?cmd=200&json={%22port%22:0,%22state%22:1}"}
recht leicht, denke aber, für die Auswertung (Verbrauch und so) wäre ein Modul besser. Leider bin ich da nicht wirklich der Richtige dafür.
Ich werde mir erstmal paar Notifys dafür schreiben, um wenigstens schalten zu können.

Zitat von: hjjk am 09 Januar 2015, 18:38:25Dem PL501 Adapter wird in meinem Netz per dhcp die IP-Adresse 192.168.3.82 zugewiesen
Natürlich bekommt nicht das (oder der oder die?) PL 501 die IP, sondern das SOP 112.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 16 Dezember 2015, 16:30:51
So, habe jetzt zwei Perl-Funktionen geschrieben, welche das Setzen und Abfragen übernehmen, letzteres durch einen Timer aufgerufen.
Ich weiss, es geht besser (Modul), aber nicht von mir. Ich hatte schon mit Perl selbst ausreichend Probleme.

Noch was Grundsätzliches dazu:
Ich unterscheide zwischen dem Gerät (SOPDummy) "Name.SOP" und der zugehörigen Steckdose (SOP) "Name.SOP112"
Die Steckdose bekommt folgende Userattribute:
attr .*.SOP112 userattr Type IP Ready
IP - letzte Stelle der IP, der Rest ist in den Perl-Funktionen "hardcodiert".
Ready - zu unterschreitender Strom, wenn Gerät fertig (0 für Dauerbetrieb)
Type - SOP112 -> für die foreach-Schleife)

Das Gerät bekommt
attr xxx webCmd start:stop -> zur Unterscheidung von on und off
attr xxx devStateIcon off:off:start start:start:stop on:on:stop ready:ready:stop ooo:.ooo:start
Durch Start wird die Steckdose eingeschaltet, durch den Stromverbrauch > Standby geht das Gerät in on. ooo ist out of order - meist offline, ready ist Standby nach Betrieb, also Waschmaschine fertig oder so.

Dazu global der Timer für die Abfrage
define SOP.timer at +*00:01 {SOP_reading}
und die Notify für den Status
define SOP112 notify (.*.SOP112:(off|on)) {SOP_set ($NAME,$EVENT)}
define SOP112.start notify (.*.SOP:(start|stop)) {SOP_set ($NAME."SOP112",$EVENT)}

Schalten der Dosen
sub
SOP_set($$)
{
my ($SOP,$Event) = @_;
my $state=0;
if ($Event eq "on" || $Event eq "start") {$state=1; $Event = "on"} else {$Event = "off"};
if (Value($SOP) ne $Event) {fhem("set ".$SOP." ".$Event)};
my $waste = GetFileFromURL ("http://192.168.xxx.".AttrVal($SOP,"IP",1)."/?cmd=200&json={%22port%22:0,%22state%22:".$state."}");
(my $SOPDummy = $SOP) =~ s/\.SOP112/.SOP/;
SOP_reading();
}


Auslesen der Daten:
sub
SOP_reading()
{
use Math::Round qw/round/;
#my ($NAME,$state) = @_;
my $SOP;
my $Muster = '[\[\]"}]+';
foreach $SOP (devspec2array("Type=SOP112"))
{
(my $SOPDummy = $SOP) =~ s/\.SOP112/.SOP/;
my $ret1 = GetFileFromURL ("http://192.168.4.".AttrVal($SOP,"IP",1)."/?cmd=511");
my @Wert = split /[:,]/, "$ret1",6;
my @Data = split /[:,]/, $Wert[5];
if ($Wert[1] == 511)
{
(my $watt = $Data[1]) =~ s/$Muster//g;
(my $amp = $Data[3]) =~ s/$Muster//g;
(my $switch = $Data[5]) =~ s/$Muster//g;
if (ReadingsVal($SOP,"amp",0) != $amp ) {fhem("setreading ".$SOP." amp ".$amp)};
$watt = round($watt);
if (ReadingsVal($SOP,"watt",0) != $watt ) {fhem("setreading ".$SOP." watt ".$watt)};
if ($watt < AttrVal($SOP,"Ready",1) && Value($SOPDummy) eq "on") {
fhem ("set ".$SOPDummy." ready");SOP_set ($SOP,"off");
}
else
{
if (ReadingsVal($SOP,"switch",0) != $switch ) {fhem("setreading ".$SOP." switch ".$switch)};
$switch = "on"; if (ReadingsVal($SOP,"switch",0) == 0) {$switch = "off"};
if (ReadingsVal($SOP,"state","") ne $switch ) {SOP_set($SOP,$switch)};
}
if ($watt > AttrVal($SOP,"Ready",1) && (Value($SOPDummy) eq "start"||Value($SOPDummy) eq "ooo")) {
if (Value($SOPDummy) ne "on" ) {fhem ("set ".$SOPDummy." on")};
};

if (Value($SOPDummy) eq "stop")
{
fhem ("set ".$SOPDummy." off");
};

my $ret2 = GetFileFromURL ("http://192.168.4.".AttrVal($SOP,"IP",1)."/?cmd=512");
@Wert = split /[:,]/, "$ret2",6;
@Data = split /[:,]/, $Wert[5];
(my $master = $Data[1]) =~ s/$Muster//g;
(my $limit = $Data[3]) =~ s/$Muster//g;
if (ReadingsVal($SOP,"master",0) != $master ) {fhem("setreading ".$SOP." master ".$master)};
if (ReadingsVal($SOP,"limit",0) != $limit ) {fhem("setreading ".$SOP." limit ".$limit)};

my $ret3 = GetFileFromURL ("http://192.168.xxx.".AttrVal($SOP,"IP",1)."/?cmd=512");
@Wert = split /[:,]/, "$ret3",6;
@Data = split /[:,]/, $Wert[5];
(my $start = $Data[1]) =~ s/$Muster//g;
(my $delay = $Data[3]) =~ s/$Muster//g;
# if (ReadingsVal($SOP,"start",0) != $start ) {fhem("setreading ".$SOP." start ".$start)};
if (ReadingsVal($SOP,"delay",0) != $delay ) {fhem("setreading ".$SOP." delay ".$delay)};
}
else
{
if (Value($SOPDummy) ne "ooo" ) {fhem ("set ".$SOPDummy." ooo")};
}
}
}

Das Auslesen von "Start" ergibt eine (mir kryptische) Zeichenkombi, die ich einfach mal nicht abspeichere. Wenn es einen Sinn ergibt, einfach ent-auskommentieren.

Da Perl nicht meine "Muttersprache" ist, sind da durchaus Optimierungen (Regular Expression!) möglich und erwünscht. Vllt. fühlt sich ja jemand berufen, diesen Anfang für ein eigenes Projekt zu nutzen.

Noch was zur Hardware: die Dosen selbst (den Powerlan-AP habe ich noch nicht gemessen) benötigen 2 Watt für den Eigenbedarf. Das finde ich nicht wenig, eine Universallösung sind diese Dosen trotz des gerade günstigen Preises damit nicht.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 24 Dezember 2015, 00:40:07
Habe mir ein Modul geschrieben. Nicht schön, aber es tut, was es soll.
Vorallem sind alle Daten an einem Ort, ich muss nicht mehr vor und nach der Definition der Dummys eingreifen (Userattr u.a.) und die Eventlist wird nicht mehr vollgemüllt (http://forum.fhem.de/index.php/topic,45790.msg379091.html#msg379091).
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: JoergOstertag am 30 Dezember 2015, 21:02:05
@Per: gibt es das Modul irgendwo zum herunterladen?

Ich hab mal eine Wiki Seite zu den Steckdosen angefangen:
http://www.fhemwiki.de/wiki/ELV_Powerline_Schaltsteckdose_SOP112
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 31 Dezember 2015, 22:08:12
Zitat von: JoergOstertag am 30 Dezember 2015, 21:02:05
@Per: gibt es das Modul irgendwo zum herunterladen?
Nein, ich könnte es aber einstellen oder irgendwohin laden. Oder den Text schicken (PN?).
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: JoergOstertag am 03 Januar 2016, 14:02:22
Dank Per gibt es nun ein Fhem Modul zur Steuerung der Steckdose.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 03 Januar 2016, 20:44:09
Kleiner Nachtrag:
Zitat von: Per am 16 Dezember 2015, 16:30:51Noch was zur Hardware: die Dosen selbst (den Powerlan-AP habe ich noch nicht gemessen) benötigen 2 Watt für den Eigenbedarf. Das finde ich nicht wenig, eine Universallösung sind diese Dosen trotz des gerade günstigen Preises damit nicht.
So, inzwischen gemessen: Die SOP112 benötigt etwas über 2 Watt, die PL501 etwas unter 2 Watt. Bei 0,30 €/kWh sind das ~22 € pro Jahr und Gerät. Die Homematic Zwischenstecker HM-LC-Sw1-Pl liegen bei ~1 Watt, die GHoma-Dosen lassen mein "Messgerät" (eine SOP112) nicht ausschlagen. Die beiden letzteren haben auch keinen extra Server-Adapter, ermöglichen aber auch keine Leistungsmessung. Ein realistischer Vergleichspartner wäre eher der Funkschalter mit Leistungsmessung HM-ES-PMSw1-Pl (http://www.elv.de/homematic-funk-schaltaktor-1fach-mit-leistungsmessung-zwischenstecker.html) (130248), die habe ich aber nicht.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: hori am 09 Januar 2016, 16:14:47
Vielen Dank für das Modul!
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: jnewton957 am 10 Januar 2016, 18:30:43
Zitat von: Per am 03 Januar 2016, 20:44:09
Die SOP112 benötigt etwas über 2 Watt, die PL501 etwas unter 2 Watt. Bei 0,30 €/kWh sind das ~22 € pro Jahr und Gerät.

Habe ich da einen Rechen-/Gedankenfehler ?
2 Watt * 24 h * 365 Tage =  17520 Watt ==> 17,5 kwh *0,3 € / kWh = 5,25 € / Jahr


Ja- das ist grundsätzlich doppelt so viel wie bei DECT200 oder anderen Steckdosen. Dafür aber eben kein Wifi oder 433 MHz und somit oderdentliche Reichweite.

Da di ja gerade recht günstig angeboten werden (29 € Starterset und 15 € pro weitere Dose), ist das schon eine eine gute Sache - zumal ja auch mit Energiemessung.

Das FHEM - Modul gibt es ja schon. Danke dafür.

Wie lauten denn der ausfürhrliche fhem.cfg defines und entsprechede defines/redings für das Auslesen/Anzeigen und steuern der Dosen ??

Grüße
Jörg
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 10 Januar 2016, 21:58:59
Zitat von: jnewton957 am 10 Januar 2016, 18:30:43
Habe ich da einen Rechen-/Gedankenfehler ?
Oder eher ich ? :( Dafür habe ich es im Kopf gerechnet  :P

Zitat von: jnewton957 am 10 Januar 2016, 18:30:43Wie lauten denn der ausfürhrliche fhem.cfg defines und entsprechede defines/redings für das Auslesen/Anzeigen und steuern der Dosen ??

z.Zt.:
define [Device] SOP112 [MAC] [IP]

set [Device] (on|off)
Wobei "on" intern auf "start" setzt und erst bei Überschreiten der u.a. StandBy-Leistung "on" gesetzt wird.

für die Bilder, welche angezeigt werden sollen (xyz.on.png, xyz.off.png, xyz.start.png, xyz.ready.png, xyz.ooo.png)
attr [Device] IconPrefix xyz
wird aber intern "nur" automatisiert in "devStateIcon" geschrieben, kann also jederzeit übersteuert werden.

attr [Device] Ready 5.5
Leistung in Watt, unterhalb derer StandBy erkannt wird (Start -> on und on -> ready), z.Zt. (noch) ohne zeitlichen Faktor.
attr [Device] Ready_CMD set irgendwen irgendwas
Fhem-Code, welcher bei Erreichen des Ready-Status ausgeführt wird (nebenbei wird auch noch die Dose ausgeschaltet).

Readings:
switch: Zustand (1 -> ein; 0 -> aus)
amp: Stromstärke in Ampere
watt: Leistung in Watt
master,limit,rule: keine Ahnung
start,delay: ebenso, sind aber z.Zt. auskommentiert. Wenn jemand Format und Sinn (ebenso für master, limit,rule) erkennt, kann man das ja schnell wieder reinnehmen.


Nochwas: das Modul war ja speziell für meine Bedürfnisse geschrieben, ein Update der readings findet daher schon im Modul nur bei Änderungen statt.

Was vergessen? Bestimmt :D Einfach nochmal nachfragen!
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: hjjk am 11 Januar 2016, 15:48:45
Hab mal mal Modul 54_SOP112.pm ausprobiert.
Ich konnte es erst nutzen nachdem ich noch  libjson-perl installiert habe.
Daach funktionierte alles soweit recht gut bei mir.
Ich bin allerdings der Meinung das die Angabe der MAC Adresse überflüssig/redundant ist.
Wird auch nach der Initialisierung nicht mehr verwendet.
Hab den entsprechenden Code bei mir auskommentiert und scheinbar funktioniert alles weiterhin.

Die modifizierte Version hab ich mal "angehängt".
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 11 Januar 2016, 21:05:16
Zitat von: hjjk am 11 Januar 2016, 15:48:45nachdem ich noch  libjson-perl installiert habe.
Hm, ich habe noch die alte (meine) Version im Einsatz, die geht ohne.
Der Wiki-Eintrag ist diesbezüglich aktualisiert wurden.

Zitat von: hjjk am 11 Januar 2016, 15:48:45
Ich bin allerdings der Meinung das die Angabe der MAC Adresse überflüssig/redundant ist.
Wird auch nach der Initialisierung nicht mehr verwendet.
Hab den entsprechenden Code bei mir auskommentiert und scheinbar funktioniert alles weiterhin.
Ja, die MAC wird (leider noch) nicht genutzt. In der ersten Version war die IP auch noch ein Attribut (Attr).
Leider ist es mir nicht möglich, aus der MAC die IP zu ermitteln. Aber in vorausschauender Weitsicht :D bzgl. der Kompatibilität habe den Parameter mit übernommen.
Die Seriennummer könnte man zwar auch nehmen, aber die hat gar keinen Einfluss, zumindest ist mir keiner aufgefallen.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 14 Januar 2016, 14:05:28
Im Wiki-Eintrag stehen schon ein paar Parameter, welche noch nicht in der downloadbaren Version nutzbar sind.

Zitat von: Per am 11 Januar 2016, 21:05:16Leider ist es mir nicht möglich, aus der MAC die IP zu ermitteln.
Habe mal ARPING installiert, aber das arbeitet irgendwie nicht zuverlässig. Ob fping mit seiner Netzlast besser ist, teste ich mal diese Woche noch.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: hjjk am 14 Januar 2016, 14:20:44
Jetzt hab ich mich einige Tage mit Per's und Joerg Ostertag's SOP112 Modul beschäftigt (Wer ist nun eigentlich der Author ?).
Als fhem Modul Neuling hab ich einige Dinge nicht so recht nachvollziehen können :-(
Z.B. wie das mit den Attributen Ready, Ready_CMD und Ready_Time funktioniert, wobei Ready_Time gar nicht wirklich implementiert ist :-(
Ich habe dann für mich mal eine Überarbeitung gestartet, habe dabei mit den grundlegenden Dingen gestartet (kis - keep it simple).
Ich benutze nur die die Kommandos "200" zum schalten und "511" zur Status abfrage. Alles andere habe ich weg gelassen da ich keinen weiteren Nutzen bei den restlichen Kommandos sehe.
Ebenso unterstütze ich auch nicht die Ready und Ready_CMD Attribute. Vielleicht später einmal, aber ich denke die Funktionalität kann man auch mit fhem Mitteln, z.B. notify erreichen.
Des weiteren habe ich die Werte für watt in "power" und die Werte für amp in "current" umgesetzt bevor sie in die readings geschrieben werden. Das hat den Vorteil das die vorhanden SVG Plot Filter genutzt werden können und man so leichter eine Grafik erstellen kann.
Zusätzlich kann man in der fhem Konfig einen Optionalen "Polling Intervall" Wert eingeben um so das Abfrage Intervall anpassen zu können.
In meinen Code sind noch einige Log 3 Statements als Debugging Ausgabe enthalten :-(
Des weiteren habe ich die JSON Abhängigkeiten entfernt im dem ich eine eigene String-Konvertierungs-Routine nutze. Kann man bestimmt besser machen, aber für einen ersten Schuss gehts erstmal.
Zum Schluss habe ich auch mit einer html-Dokumentation innerhalb des Moduls bekommen. Ist aber noch ganz rudimentär ;-)
Bevor ich in verlängerte WE gehe trau mich und hänge meinen Code an, für alle die sich das gern ansehen wollen.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen? - Nachtrag
Beitrag von: hjjk am 14 Januar 2016, 14:28:01
Noch ein Nachtrag zu meinem Kommentar.
Hier sind als Beispiel meine Einträge aus der fhem.cfg

define Spuelmaschine SOP112 192.168.3.99 60
attr Spuelmaschine icon scene_dishwasher
attr Spuelmaschine room Kueche
#
define FileLog_Spuelmaschine FileLog ./log/Spuelmaschine-%Y.log Spuelmaschine
attr FileLog_Spuelmaschine logtype text
#
define Graph_Spuelmaschine SVG FileLog_Spuelmaschine:power4:CURRENT
attr Graph_Spuelmaschine group SOP112
attr Graph_Spuelmaschine label "Spuelmaschine Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr Graph_Spuelmaschine room Plots
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 14 Januar 2016, 15:02:53
Zitat von: hjjk am 14 Januar 2016, 14:20:44kis - keep it simple
Ja, viele Wege führen nach Rom.
Mein Anliegen war, nicht mit tausenden ;) notify, at und dummy arbeiten zu müssen.
Und das habe ich, mit den mir zur Verfügung stehenden Mitteln und Wissen, erledigt.

OK, jetzt kann DOIF auch mit RegEx arbeiten, als ich mit proggen angefangen hatte aber noch nicht. Sonst hätte ich das vllt. auch anders gemacht. Aber jetzt ist es mal drin, wem es nicht gefällt, dem stehen inzwichen schon zwei weitere Varianten zur Verfügung, steht ja im Quelltext da.
Und viele Köche verderben hier den Brei nicht, sondern liefern neue Ideen.
Zitat von: hjjk am 14 Januar 2016, 14:20:44eigene String-Konvertierungs-Routine
z.B. werde ich mir mal anschauen ;).
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 17 Januar 2016, 23:29:54
Neues, aber noch nichts von der MAC2IP-Seite (wg. der Plattformabhängigkeit überlege ich da noch), sondern von der "Anti-kis-Front" :D.

Neben dem Abschalten nach Erreichen des Standby-Zustandes auch mit zeitlicher Verzögerung ("Ready_Time") und nur-Fertig-Melden ohne Abschalten ("Ready_on") habe ich auch die schon länger geplante Änderung des Abfrage-Intervalls ("Intervall") realisiert. Neu jetzt auch eine prozentuale Abhängigkeit der Meldungen von der Änderung ("Event_Update_Prozent"), bsp: erst bei 10% Änderung (= Voreinstellung) der Leistung wird "watt" eventrelevant geändert, alles andere wird nur mit readingsSingleUpdate(x,y,z, 0 ) eingetragen. Damit wird der Eventlog nicht vollgeschrieben, wenn es nur kleine Schwankungen gibt, die "Ready"-Auswertung erfolgt aber dennoch.

Leider konnte ich mich noch nicht mit "json" befassen, deshalb kann ich "rule" (cmd=514, siehe auch unten) noch nicht auswerten. Für "start" indes habe ich es hinbekommen, allerdings wieder deaktiviert, weil ich mit den Werten nichs anfangen kann.

Der Rückgabewert von "rule" ist
{"response":514,"code":200,"data":{"rule":[{"rname":"Rule","en":0,"port":[1],"day":[1,1,1,1,1,1,1],"time":["04:01","04:00"]}]}}
Ohne "json" habe ich keine Lust, die Klammerebenen aufzulösen.
Obriges Beispiel steht übrigens für ein kurzzeitiges Ausschalten (genaugenommen ein laaaanges Einschalten) jeden Tag. Diese Regeln braucht man eigentlich bei FHEM nicht, weil es FHEM eh viel besser/bequemer kann. Ich lass es aber als backup drin, werte es aber nicht aus und ändere es nicht. Zur Not mache ich das über die Android-App.
Für die Auswertung des Stromverbrauches wäre eine funtionierende Abfrage schon wichtiger, aber ob sich das hinter "start" verbirgt, weiss ich nicht.

Von hjjk habe ich mal den html-Doku-Anfang übernommen.

Weitere Planung: den Teil MAC2IP, wobei beim Attr. IP neben der IP selbst der Wert "auto" stehen darf, nur dann versucht das Modul selbst die IP zu ermitteln. Damit kann ich auch IPs in anderen Teilnetzen angeben, ohne dass die Automatik das wieder "zerstört". Außerdem bin ich so noch besser abwärtskompatibel.
"json" ist erstmal auf der Prio-Liste ganz weit runter gerutscht, da ich "rule" nicht brauche und die anderen bisher bekannten Rückgaben auch so decodiert werden können.

PS: habe den Code noch etwas optimiert, ändert aber nix am Funtionsumfang.
PPS: nen Komma vergessen  :-X
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 20 Januar 2016, 12:56:17
Zitat von: andiw am 01 August 2015, 11:03:26ich lasse mich regelmäßig erinnern dass die Wäsche fertig gewaschen ist, solange bis ich die Maschine ausgeschaltet habe:
Nette Idee, hab ich wieder was zu tun :D
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 02 Februar 2016, 18:45:10
So, aktueller Zwischenstand:
Die im define angegebene MAC dient z.Zt. nur der genauen Zuordung und wird intern nicht ausgewertet.
Einziger Pflichtparameter (attr) ist die IP.
KIS (http://forum.fhem.de/index.php/topic,30501.msg391367.html#msg391367): Solange kein anderes Attribut eingegeben wird, verhält sich das Objekt wie eine normale Steckdose mit "on" und "off" (und "ooo" für Out of Order, sprich irgendwas stimmt nicht, was kann das Modul nicht feststellen, meist ist es Offline, weil nicht eingesteckt :D).
Die anderen Attribute können, müssen aber nicht angegeben werden:

IconPrefix: Prefix vor den Iconnamen, um verschiedene Geräte zu unterscheiden (Standard = "" => die bekannte Glühlampe für on und off, Rest als Text, wenn nix anderes da ist)
Intervall: Abfrageintervall in Sekunden (Standard = 60s)
ready: Leistung (Watt)  welche unterschritten werden muss, um als ready erkannt zu werden. Gilt aber auch als Startsignal (Standard = 0 Watt)
readyCmd: Fhem-Befehl, welcher bei Erreichen des ready-Status ausgeführt werden soll. Da sich dahinter ein normales fhem() befindet, gilt auch dessen Syntax.
readyCmdIntervall: in welchen Abständen (Sekunden) soll readyCmd wiederholt werden, bis die Bestätigung (off) erfolgt (Standard = 0 = nie)
readyTime: wie lange (Sekunden) soll die StandBy-Leistung unterschritten bleiben, bevor Status ready eingenommen wird (Standard = 0s)
readyOn:1,0: soll die Dose nach Unterschreiten der StandBy-Leistung nicht automatisch abschalten (Standard ist nein=>0)
SN: Seriennummer, ist nur ein Kommentarfeld
EventUpdateProzent: ab wieviel Prozent Änderung im Stromfluss oder in der Leistungsaufnahme wird ein Event erzeugt. Über Menü 0, 1, 5, 10, 20 oder 50% auswählbar, mittels attr-Befehl beliebig (Standard = 10%)
Leider musste ich die Groß-Kleinschreibung der attr nochmal ändern, um einheitlich zu sein.

Die Aufrufe "512", "514" und "515" sind im Programm auskommentiert, wer diese Readings (master, limit, rule, start und delay) braucht (und was draus machen kann), kann sie sich durch Löschen der # (Zeilen 152ff) freischalten. Dafür extra Code und Attribute schalten fand ich übertrieben.
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: hjgode am 21 Mai 2016, 07:41:00
Hallo per

erst einmal vielen, vielen Dank für das Modul.

Leider 1: es gibt wohl keine SOP112 Steckdosen mehr von ELV. Habe nur ein Set ergattern können.

Leider 2: der Code hat einen Fehler bzgl. SetExtensions. Beim Aufruf von "set SOP112xy on-till <time>" kommt immer "unknown argument" oder so. Da mir 'on-till' für die sunset Aussenbeleuchtung  Steuerung wichtig ist, habe ich den Code angepasst.

Hier mein Patch:
diff 54_SOP112.pm 54_SOP112_20160202.pm
110,113c110,111
< my $myList = join(" ", %SOP112_sets);
< ###     return SetExtensions($hash, $myList, $name, $cmd, @a) if(!defined($cmd));
<      return SetExtensions($hash, $myList, @a) if(!defined($cmd));
< ### return SetExtensions($hash, join(" ", sort keys %SOP112_sets), $a[1]) if(!defined($cmd));
---
> return SetExtensions($hash, join(" ", sort keys %SOP112_sets), $a[1])
> if(!defined($cmd));


Der Vollständigkeit halber hab ich das geänderte Modul mal angehängt.

Vielen Dank noch mal

Josef
Titel: Antw:Schaltsteckdose SOP112 und FHEM bzw. Alternativen?
Beitrag von: Per am 21 Mai 2016, 09:25:34
Zitat von: hjgode am 21 Mai 2016, 07:41:00Leider 2: der Code hat einen Fehler bzgl. SetExtensions.
Nee, ist kein Fehler. Wie du am Diff siehst, war SetExtensions anfangs drin. Aber weil ich es nicht brauche, es das Set-PullDown füllt und weil ich die Arbeitsweise nicht kenne, also auch nicht weiß, ob es Quereffekte gibt, habe ich es auskommentiert.
Kannst ja mal berichten, ob es mit SetExtensions sauber läuft.