NEWS
[gelöst] Edimax WLAN Steckdose schalten
-
Hi, bin absoluter Anfänger in Sachen Java, gibt es eventuell ein fertigen Script um die Aktuelle Leistung abzufragen?
Mit freundlichen Grüßen
-
Hallo,
mit neuster Edimax Firmware funktioniert das oben Genannte leider nicht mehr!
Ansonsten kann man aber auf gleicher Art auch die aktuelle Leistung abfragen.
Infos dazu findest Du z.B. hier:
https://sun-watch.net/index.php/eigenve … -protokoll
Dazu habe ich leider kein fertiges Script.
Tschau
Uwe
-
Bekomm da leider keine Daten.
-
Habe jetzt etwas für Node red gefunden was auch bei der aktuellen Version laufen soll. Nur bekomme ich das leider nicht zum laufen.
https://github.com/johnwalicki/Node-RED … w.json#L21
Kennst du dich da Eventuell aus?
-
Hat mittlerweile jemand eine Lösung wie man die EdiMax Steckdose schalten kann?
Am besten wäre es mit einem On/Off Widget zu schalten.
-
Das Thema ist zwar etwas älter, aber vielleicht ist das ja für den ein oder anderen doch von Interesse, Verbrauchsdaten aus den Edimax 2101W Steckdosen auszulesen.
Der folgende Code-Schnipsel läuft hier sowohl unter 2101W V1, Firmware 2.08, als auch unter 2101W V2 3.0.0. Unter V1 nehmt ihr das Passwort aus der EdiLife App. Für die V2 müsst ihr die Anleitung hier befolgen, um das Passwort zu ermitteln: https://github.com/mwittig/edimax-smartplug/issues/17
Alle 3 Min. die Verbrauchswerte in einen Datenpunkt schreiben:
schedule("*/3 * * * *", function () { exec('curl --digest -u admin:1234 -s POST "http://admin:1234@192.168.1.115:10000/smartplug.cgi" -d \'<SMARTPLUG id="edimax"><CMD id="get"><NOW_POWER><Device.System.Power.NowCurrent></Device.System.Power.NowCurrent><Device.System.Power.NowPower></Device.System.Power.NowPower></NOW_POWER></CMD></SMARTPLUG>\'', function (error, stdout, stderr) { const regex = /.NowPower>(\d.{0,1}\d+).*/gm; const str = stdout; let m; while ((m = regex.exec(str)) !== null) { // This is necessary to avoid infinite loops with zero-width matches if (m.index === regex.lastIndex) { regex.lastIndex++; } // The result can be accessed through the `m`-variable. m.forEach((match, groupIndex) => { //console.log(`Found match, group ${groupIndex}: ${match}`); setState('javascript.0.Strom.edimax_2_strom_xml', match, true); }); } //log(stdout + " - " + stderr); //setState('javascript.0.Strom.edimax_1_strom_xml', "0", true); }); });
-
Vielen Dank für das Skript. Läuft soweit gut bei mir. Habe bei meinen Edimax mit Firmware 3.0 das Passwort "heraus gelesen" und im Skript eingetragen. Daten kommen und werden in den Datenpunkt geschrieben. Probleme habe ich nur beim weiter verwenden des Datenpunktes mit folgendem Skript:
on({id: "javascript.0.Strom.edimax_2_strom_xml", change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") <= 32 && (obj.oldState ? obj.oldState.val : "") > 32) { console.log('Neuer Wert ist kleiner'); console.log('ALT: ' + obj.oldState.val); console.log('NEU: ' + obj.state.val); } else { console.log('Neuer Wert ist größer'); console.log('ALT: ' + obj.oldState.val); console.log('NEU: ' + obj.state.val); } });
Ich denke es liegt daran das in der Schleife von Deinem Skript jeweils zwei "Ergebnisse" direkt hintereinander in den Datenpunkt geschrieben werden. Group 0 und Group 1. Der erste ist die komplette Rückmeldung aus dem Curl und die zweite nur das was von der RegEx ausgefiltert wurde (übrigens ohne Nachkommastellen). Da ich mich hierzu leider noch zu wenig auskenne wäre meine Frage ob Du das Skript vielleicht so umbauen könntest das nur das Ergebnis der RegEx also Group 1 (ob mit oder ohne Nachkommastellen ist mir persönlich egal) in den Datenpunkt geschrieben wird?
Dann würde mein Skript und damit eine Alarmierung wenn die Waschmaschine fertig ist funktionierenVielen Dank vorab!!!
-
Hallo zusammen,
wie könnte ich dann eine Steckdose Edimax mit Firmware 3.0 per Befehl ein und aus schalten ?
-
Zu dem (alten) Thread habe ich auch noch eine Frage.
Muss man den Datenpunkt erst anlegen?javascript.0.Strom.edimax_2_strom_xml
Wenn ja wie? Also boolean zumindest wird nichts geschrieben.
-
Hallo nochmal,
leider läuft das Ganze noch immer nicht.
Grundlegend erst einmal, wie kann man überhaupt die FW Version sehen?
Die App meldet immer nur, dass man die Version überprüfen kann und dass sie aktuell ist. -
@hg6806 Ich bin der Anleitung https://github.com/mwittig/edimax-smartplug/issues/17 gefolgt und der Befehl im telnet "nvc all" hat dann auch so infos
Run.FW.Version=3.00c
oder
Device.Configuration.HW.ModelName=SP2101W_V2
... diese Werte sind von mir natürlich...Das Passwort so herausfinden ist sehr mühsam - aber muss man ja nur einmal machen....
Das ganze per "curl" abholen ist da schon schlimmer. Ich verwende gerade den Adapter "linux-control" um den curl Befehl auf einem SSH server auszuführen - ich hoffe es gibt bald eine bessere Möglichkeit.
Ich habe aber weder einen EdiMax Adapter, noch einen einfachen HTTP adapter gefunden der dieses XML schicken und parsen könnte.