EDIMAx EDIPlug 2101 - WiFi Schaltsteckdose mit Verbrauchszähler

Begonnen von ternst, 24 November 2014, 13:23:53

Vorheriges Thema - Nächstes Thema

Wzut

Zitat von: Lehmi54 am 29 Dezember 2014, 22:21:49
habe heute vergeblich versucht, den W921V zu überzeugen, mit Namensauflösung zu arbeiten.
Lies mal bitte :
https://telekomhilft.telekom.de/t5/Speedport-700er-Serie/Nutzung-von-Hostnamen-im-internen-LAN-Speedport-W-724v/td-p/1043432
d.h. NICHT nur den Namen ala Netbios alleine eintragen sondern als echten FQDN -> ediplug-name.domain-des-speedports
Was sagt denn dein FHEM Server wenn du zuerst den EDIPLUG per IP anpingst und danach arp -a aufrufst ?

Zitat von: Lehmi54 am 29 Dezember 2014, 22:21:49
Ist denn meine Idee mit der MAC-Adresse programmtechnisch überhaupt realisierbar?
Nun Radio Eriwan würde vermutlich antworten : Im Prinzip Ja :)  Wenn ich ein Gerät in die Finger bekomme von dem ich zwar die MAC Adresse kenne aber nicht die aktuelle IP dann helfe ich mir immer damit einen manuellen ARP Eintrag zu erstellen. Das klappte bisher bei Kabelgebundenen Geräten immer. Ich habe das eben mal für meinen EDIPLUG probiert und es geht nicht - vermute jetzt einfach mal der WLAN AP spielt da nicht mit. Welche Möglichkeiten gibt es noch mittels bekannter MAC die aktuelle IP zu erfahren ?
a. Wäre des Speedport ein Cisco Switch würde ich sagen : einfach per SNMP abfragen
b. mittels arp abfragen , Bsp : arp -a | grep 82:1f:02:fa:1a:fe | cut -d "(" -f 2 | cut -d ")" -f 1 bzw .mit  arp -n | grep 82:1f:02:fa:1a:fe | cut -d " " -f 1
( die MAC Adresse natürlich vorher durch die des eigenen EDIPLUGS ersetzen )
 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Lehmi54

Hallo Wzut,
ganz herzlichen Dank für deine Mühe. Bin dem Link gefolgt, habe versucht zu verstehen, habe das mit der FQDN auszuprobieren. Früher habe ich geschrieben n.l.
für nicht lösbar.
Der Ping auf ip funktioniert, bei arp -a erhalte ich
mx@minix:~$ arp -a
? (192.168.2.102) auf 80:1f:02:fa:7a:a3 [ether] auf eth1
2x Raspberry 4 und 3 - FHEM 6.2
z-wave Netzwerk, SIGNALduino

Lehmi54

Ups, war noch gar nicht fertig.
Bei der programmtechnischen Lösung dachte ich eher an Dein Perl-Script, wie in meinem ersten Beitrag vorgeschlagen.
Scannen eines IP-Bereichs nacheinander mit Ping, wenn IP vorhanden, senden des SYSTEM_INFO Befehles, stimmt die MAC_Adresse überein, habe "ich" die dazugehörige IP ermittelt.
Nein, Spaß beiseite ich kann das noch lange nicht....
Einen guten Rutsch und Danke
Uwe
2x Raspberry 4 und 3 - FHEM 6.2
z-wave Netzwerk, SIGNALduino

Wzut

sicher könnte man das mit Perl machen, aber IMHO itrifft das Thema nur wenige User.
Ich würde daher an deiner Stelle einen anderen Ansatz wählen und einfach dafür sorgen das der ediplug einen Eintrag in der etc/hosts hat.
Erstelle dir doch mal folgendes Shell Script :
#!/bin/bash

MAC=18:fe:34:9f:28:d1
EDI=ediplug1
NET=192.168.2.

for ((i=100; i<=120; i++)); do

ping -c 1 -q $NET$i > /tmp/ping_ediplug
TOT=`grep "100% packet loss" /tmp/ping_ediplug`

if [ "$TOT" == "" ]; then
   EDIPLUG=`arp -n | grep "$MAC" | cut -d " " -f 1`
   if [ "$EDIPLUG" != "" ]; then
   grep -v  $EDI  /etc/hosts > /tmp/hosts
   echo "$EDIPLUG $EDI" >> /tmp/hosts
   mv /tmp/hosts /etc/hosts
   #echo $EDIPLUG
   exit
   fi;
fi;
done
 
MAC & NET natürlich auf deine Werte ändern (bei NET den Punkt am Ende beachten)  , ebenso vllt. den Bereich von 100 bis 120 auf deine DHCP Range anpassen. Abspeichern unter zb. dem Namen find_edi.sh , dann mit  chmod +x find_edi.sh  ausführbar machen und zu guter letzt mit ./find_edi.sh starten.
Läuft es ohne Fehler und hat deine etc/hosts nun am Ende eine IP zum Namen ediplug1 ?
Wenn ja kannst du das als cron Job z.B. einmal pro Stunde laufen lassen
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Lehmi54

Hallo Wzut,
hat Alles so funktioniert, habe die 2 Plugs mit je einer Datei in den cron Job eingebunden. Wieder reichlich Neues lernen dürfen. ;)
In fhem umgestellt auf die Namen. Funktioniert!
Wenn die Silvestergäste morgen wieder in Richtung Heimat losmachen, werde ich das mal mit neuen IP's für die Plugs versuchen.
Einen herzlichen Dank und einen guten Start in 2015 für den "Zauberer" (zumindest in meinen Augen!)
Uwe
2x Raspberry 4 und 3 - FHEM 6.2
z-wave Netzwerk, SIGNALduino

Wzut

danke für die Blumen , freut mich das das Problem speedport gelöst ist :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

raspi-martin

Hallo,
gibt es irgendwo eine Anleitung wenn ich die Steckdose selbst nutzen möchte was ich tun muss?
Bin leider nur ein "normaler" FHEM Anwender und kein Programmierer :-)

Vielen Dank für die Hilfe!
mfg
Martin

Wzut

#37
Ähh sorry , aber ich verstehe die Frage nicht so ganz ....
Doku : z.Z meine Postings auf Seite 2 dieses Threads bzw. direkt im command.ref Teil des Moduls
was bedeutet "Steckdose selbst" ? einfach nur an und ausschalten ? 
programmieren : du musst nichst programmieren, ausser  Modul ins FHEM Verzeichnis kopieren, FHEM neu starten und Steckdose anlegen mit z.B. define <name> ediplug <IP>
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

raspi-martin

Danke für den Hinweis!
Ich hatte den Download nicht gefunden.
Jetzt bekomme ich allerdings:
"Cannot load module EDIPLUG Please define mein-schalter first"
Ich habe die Datei ins FHEM Verzeichnis reinkopiert und dafür gesort dass die fhem "gehört".
An was kann es noch liegen?

Lehmi54

Hallo raspi-martin,
ich geh davon aus, dass Du die 98_EDIPLUG.pm richtig in das Verzeichnis /opt/fhem/FHEM kopiert hast.
in die fhem.cfg solltest Du über Edit Files  mindestens eintragen

# Edimax Boden Heizung
define bo_heizung EDIPLUG EdimHeizg 3600

bo_heizung durch deinen Gerätenamen ersetzen, EdimHeizg am Anfang durch IP-Adresse z.B. 192.168.2.102; EdimHeizung ist z. B. der Netzwerkname des Edimax; Die 3600 ist die Reportzeit hier eine Stunde (5 min wären z.B 900)
Speichern nicht vergessen
Jetzt solltest Du unter Everything ein Feld EDIPLUG mit Deinem Sensor haben
Bei mir funktioniert das nach Anfangsschwierigkeiten (siehe weiter oben Bestens)

2x Raspberry 4 und 3 - FHEM 6.2
z-wave Netzwerk, SIGNALduino

raspi-martin

Hier die Fehlermeldung aus dem Log. Vielleicht hilft das ja weiter:

2015.01.24 15:29:48 1: reload: Error:Modul 98_EDIPLUG deactivated:
Can't locate XML/Simple.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/98_EDIPLUG.pm line 39, <$fh> line 429.
BEGIN failed--compilation aborted at ./FHEM/98_EDIPLUG.pm line 39, <$fh> line 429.

Wzut

Zitat von: raspi-martin am 24 Januar 2015, 16:32:54
Vielleicht hilft das ja weiter

In der Tat -> Can't locate XML/Simple.pm , ergo wird das Perl Modul nicht installiert sein , wenn es ein Raspberry ist :
sudo apt-get install libxml-simple-perl


Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

raspi-martin

Super!
Genau das wars!
Vielen Dank! Läuft jetzt super. Ich glaub ich mag diese Steckdosen.

viele Grüße

Martin

sMike

Seit heute bin ich im Besitz zweier 2101er Schaltsteckdosen und konnte diese problemlos mit eurem Plugin einbinden. Es werden die Verbrauchswerte angezeigt und ich kann die Dosen schalten. Läuft wirklich super und sieht nach einer runden Sache aus.  :)

Somit möchte ich mich an dieser Stelle bei euch für dieses Modul und die klasse Vorarbeit, die ihr geleistet habt bedanken!

Einen kleinen Hinweis hätte ich noch. Könnte man den Download-Link zum Plugin nicht irgendwie prominenter platzieren? Da rauscht man beim Lesen ruck zuck drüber.

Danke und Gruß aus München

Wzut

sehr schön , ja ich sollte das Ding wirklich bald mal einchecken und auch unter Ankündigungen richtig vorstellen .....
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher