ELV Powerline Schaltsteckdose SOP112: Unterschied zwischen den Versionen

Aus FHEMWiki
KKeine Bearbeitungszusammenfassung
(Einfügen eines Links zum Modul SOP112)
Zeile 1: Zeile 1:
=ELV Powerline Schaltsteckdose SOP112=
=ELV Powerline Schaltsteckdose SOP112=
{{Infobox Modul
|Name=SOP112
|ModPurpose=Schalten der ELV Steckdose SOP112
|ModType=x
<!-- |ModCategory=?? -->
<!-- |ModCmdRef=SOP112 -- nicht erforderlich, da Modultyp x -->
|ModForumArea=IP
|ModTechName=54_SOP112.pm
|ModOwner=Per,JoergOstertag
}}


Die [[http://www.elv.de/elv-spar-set-mit-2x-schaltsteckdose-sop112-und-1x-powerline-adapter.html ELV Powerline Schaltsteckdose SOP112]]
Die [[http://www.elv.de/elv-spar-set-mit-2x-schaltsteckdose-sop112-und-1x-powerline-adapter.html ELV Powerline Schaltsteckdose SOP112]]
Zeile 59: Zeile 70:
  dann geht es mit Steuerzeichen weiter.
  dann geht es mit Steuerzeichen weiter.


==Steuerung aus fhem heraus==
* {{Link2Forum|Topic=30501|Message=375406|LinkText=Beschreibung verwenden der Steckdose aus fhem}}
==Perl Schnipsel==
Schalten der Dosen:
<pre>
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();
}
</pre>
Auslesen der Daten: (Pre)
<pre>
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")};
}
}
}
</pre>
Das Auslesen von "Start" ergibt eine (mir kryptische) Zeichenkombi, die ich einfach mal nicht abspeichere. Wenn es einen Sinn ergibt, einfach ent-auskommentieren




== Links ==
== Links ==
* {{Link2Forum|Topic=30501.0|LinkText=Forenthread}}
* {{Link2Forum|Topic=30501.0|LinkText=Forenthread}}
 
* {{Link2Forum|Topic=30501|Message=383894|LinkText=Download Modul}}


[[Kategorie:IP Components]]
[[Kategorie:IP Components]]

Version vom 3. Januar 2016, 15:10 Uhr

ELV Powerline Schaltsteckdose SOP112

ELV Powerline Schaltsteckdose SOP112
Zweck / Funktion
Schalten der ELV Steckdose SOP112
Allgemein
Typ Inoffiziell
Details
Dokumentation siehe Forum
Support (Forum) IP
Modulname 54_SOP112.pm
Ersteller Per,JoergOstertag
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Die [ELV Powerline Schaltsteckdose SOP112] gibt es bei [hier bei ELV].

Die Steckdosen werden über einen (im Set enthaltenen) Powerline Adapter an das Lokale Netzwerk angebunden. Jede Steckdose bekommt (über DHCP) eine eigene IP Adresse und kann dann darüber angesprochen werden.

Die Steckdosen können sowohl direkt aus dem LAN gesteuert und abgefragt werden. Zu den Steckdosen gibt es auch eine APP mit der man aus dem Internet die Steckdosen abfragen und steuern kann. Die Steckdosen messen auch die Leistungsaufnahme des angeschlossenen Verbrauchers.


Stromverbrauch

Noch was zur Hardware: Die Dosen selbst (den Powerlan-AP habe ich noch nicht gemessen) benötigen 2 Watt für den Eigenbedarf.


Ansteuerung

Exemplarisch mit curl:

 curl --globoff -v 'http://192.168.0.222/?cmd=200&json={"sn":"SWP1040003001149","state":1}


Über den PL501 Adapter wird in meinem Netz per dhcp eine IP-Adresse für jede Steckdose zugewiesen. Der Power Plug, also der schaltbare Adapter, hat eine Serien Nummer aufgedruckt, z.B. so etwas wie SW10400100123 Sendet man per Browser

 http://192.168.3.82/?cmd=200&json={"sn":"SWP1040001000123","port":0,"state":1}

wird die Steckdose eingeschaltet

Einschalten:

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

Abfragen Alles:

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

Abfragen Limit:

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

Abfrage Status:

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

Abfrage Regeln:

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

Abfrage:

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



Links