Modul für Anel Pwr Control (Netzwerksteckdosen)

Begonnen von IchEben, 29 Oktober 2017, 17:32:29

Vorheriges Thema - Nächstes Thema

IchEben

Hi,

hab ein Modul für die Netzwerksteckdosen von Anel geschrieben. Ist mein erstes Perl Scipt. Also eventuell noch nicht ganz Käfer frei.  ;)
Theoretisch müsste es mit jeder Hardware von Anel zurecht kommen. Aber nur wenn die neueste Firmware (4.5) installiert ist!
Getestet habe ich es mit der kleinsten HOME Variante. Bitte mal mit anderer Hardware probieren und eine Rückmeldung geben.

Installation:
-Script 47_anelPwrCtrl.pm downloaden
-Datei 47_anelPwrCtrl.pm unter /opt/fem/FHEM/47_anelPwrCtrl.pm kopieren
-Owner der Datei auf fhem setzen mit sudo chown fhem:dialout /opt/fhem/FHEM/47_anelPwrCtrl.pm
-Fhem neustarten
-Ein neues Device anlegen mit: define <name> AnelPwrCtrl <ip-adresse-der-steckdose>
-Eventuell username und password attribute ändern

Beispiel:
define anel anelPwrCtrl 192.168.178.70

Changelog:
2017.11.04 Zusätzliche Überprüfung zur Abfrage der Argumente eingebaut um Warnmeldung zu verhindern.
2018.02.12 Fehler beim auslesen der Sensordaten behoben. Danke an Aigl!

enno

Moin,

Ich werde dieses Wochenende das Teil auf aktuelle Firmware updaten und dann dein Modul testen. Bin gespannt. Ich habe allerdings auch nur die Home Version....

Melde mich mit Ergebnissen wieder.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

enno

#2
Beim intensiven Schalten der Dose 1 kam folgende Warnung im Log hoch:
2017.11.04 20:03:58 1: PERL WARNING: Use of uninitialized value $arg in string eq at ./FHEM/47_anelPwrCtrl.pm line 233.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

IchEben

Hi Enno,

danke für die Rückmeldung. Hab das Modul überarbeitet. Sollte jetzt nicht mehr vorkommen.
Ist dir sonst noch was aufgefallen?

Grüße
Tim

enno

Moin Tim,

danke fuer das Update. Ich habe es eingebaut.

Zur Zeit läuft es auf meinem Testsystem. Bisher ist mir nur aufgefallen, dass es reibungslos und ohne Probleme funktioniert. Ich kann schalten und bekomme alle Statusänderungen sofort geliefert. Falls mir etwas weiteres auffällt, melde ich mich wieder.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

enno

Moin Tim,

habe dein Modul auf mein Produktivsystem umgezogen. Alles bestens! Keine Fehlermeldungen, keine Probleme. Ich schalte drei POE Injektoren für meine Webcams damit. Mehrfach am Tag an und aus. Alles stabil und "geräuschlos".

Danke noch mal für die Arbeit.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

SnakeZZ

Hallo!

Ich habe eben meine NET-PwrCtrl Power IO angebunden, und sie scheint ganz gut zu funktionieren mit FHEM.
Besten Dank für das Modul!

Wie sind denn Deine Pläne für die Weiterentwicklung? Z.B. Auslesen der Temperatur, Wechsel von 0 und 1 in FHEM auf on/off etc.?

Beste Grüsse,

SnakeZZ

Aigl

#7
Hallo!

Ich möchte das Modul mit einem NET-PwrCtrl HUT  nutzen und daran einen NET-PwrCtrl HUT EX(tender)  sowie einen Sensor1 anschliessen.

Die Relais vom HUT  funktioniert erstmal.

UPDATE: Sensor angeschlossen und nun werden die Variablen sensor_temperature, sensor_humidity und sensor_temperature zwar angezeigt aber in allen steht nur die Temperatur. Siehe Bild im Anhang!

Bei mir hat es leider nicht funktioniert das Passwort zu ändern, scheinbar nimmt er immer den Standard aus dem Modul.

Oder mache ich was falsch?

Ansonsten, tolle Arbeit!!

Gruß
Aigl

Aigl

Falls es jemanden interessiert:

Es läuft nun korrekt, d.h. Temperatur, Luftfeuchte und Helligkeit werden korrekt zugeordnet (siehe Bild im Anhang).

Folgendes muss im Modul angepasst werden (jeweils die Zuordnung hinter $sensors):


if (scalar(@sensors) >= 4) {
readingsBulkUpdateIfChanged($hash,'sensor_temperature',$sensors[1],1);
readingsBulkUpdateIfChanged($hash,'sensor_humidity',$sensors[2],1);
readingsBulkUpdateIfChanged($hash,'sensor_brightness',$sensors[3],1);
}


IchEben

#9
Hallo Aigl,

da war ich 10 Minuten zu langsam, du hast den Fehler schon selbst gefunden!  :)
Danke fürs testen, ich hab's geändert und im Hauptpost neu hochgeladen.
Username und Password habe ich eben bei mir nochmal getestet und es scheint soweit zu funktionieren. Wurde denn der von dir eingegebene Username / das Passwort in die Internal Variabelen übernommen? Also wird es oben richtig angezeigt?

@SnakeZZ:
Die Temperatur wird schon ausgelesen. Die Readings erscheinen allerdings erst, wenn es auch etwas auszulesen gibt.  ;)
1/0 durch on/off ersetzen wollte ich erst machen, habe es mir dann aber anders überlegt, da all meine notifys nun auf 0/1 reagieren und ich im Moment keine Lust habe das zu ändern. *Schäm*
Die generelle Weiterentwicklung werde ich vorantreiben, allerdings nur das nötigste, da ich momentan viel für die Arbeit unterwegs bin. Daher auch die späte Rückmeldung.

Grüße
Tim

Aigl

Hallo Tim,

ich gucke mir das mit dem Passwort die Tage mal an.

Selbst geholfen habe ich mir, in dem ich im Modul entsprechend das Passwort angepasst habe  :)

Für die ersten Testzwecke reicht es hin und ich bin echt zufrieden, vielen Dank für die Mühe!  ;)

Gruß
Andi

Aigl

Scheint alles soweit zuverlässig zu laufen.

Wäre es nicht sinnvoll das Modul direkt in FHEM zu integrieren?


janh64

Hallo,

super Mdul. Über die FHEM-Weboberfläche kann ich die einzelnen Relais schalten, aber wie definiere ich denn einzelne Ein- und Ausschalter? Ich bin leider nicht so tief drin.

Danke und Grüße
Jan

IchEben

Hey Jan,

ich habe mir dafür ein Dummy-Device + zwei Notifys für jede Steckdose angelegt. In etwa so:

Dummy:
defmod anel2 dummy
attr anel2 cmdIcon seton:black_Steckdose.on setoff:black_Steckdose.off
attr anel2 devStateIcon on:message_socket_on2:setoff off:message_socket_off2:seton setoff:message_socket_unknown:seton seton:message_socket_unknown:setoff
attr anel2 icon ge_wht_steckdose
attr anel2 room Keller
attr anel2 setList on off
attr anel2 webCmd seton:setoff

setstate anel2 off

Notify1:
anel2.* {
if ($EVTPART0 eq 'seton') {
fhem("set anel outlet2_state on");
} elsif ($EVTPART0 eq 'setoff') {
fhem("set anel outlet2_state off");
}
}

Notify2:
anel:outlet2_state.* {
if ($EVTPART1 eq '1') {
fhem("set anel2 on");
} else {
fhem("set anel2 off");
}
}


Das geht bestimmt noch viel eleganter. Aber ich nutze das FHEM-front-end ehr selten. Daher benötige ich keine einzelnen Ein- bzw. Ausschalter.  ;)

Probier mal, ob dir das weiterhilft. Grüße,
Tim

Aigl

Hallo zusammen!

Nachdem das Modul zwar sehr zuverlässig läuft und fleissig das macht was es soll habe ich folgendes Problem festgestellt:

Das Modul erzeugt einen nicht unerheblichen Datenverkehr im Netzwerk. Durch meine neue Netzwerkinstallation konnte ich feststellen, daß zwischem FHEM und dem Anel Pwr Control innerhalb von 24 Stunden ca. 15 GB Daten ausgetauscht werden. Ich vermute mal es handelt sich um die Statusabfrage der Relais sowie der Temperatur durch das Modul.

Gibt es Möglichkeiten den Traffic deutlich zu reduzieren?

Gruß
Aigl