98_myStrom.pm - myStrom WLAN Energy Control Switch

Begonnen von arallon, 11 August 2015, 23:46:25

Vorheriges Thema - Nächstes Thema

eppi

Hmm, da fehlen im JSON die Temperaturdaten... Ev kann es die installierte Firmware noch nicht....
Ansonsten sollte das eigentlich kein Problem sein, in das Modul zu integrieren.


eppi

Hallo chaot4ever
Konntest du den Rev2 Switch einrichten in FHEM, dass nur schalten möglich ist? Bei mir stürzt sofort beim "define" FHEM ab....

Übrigens die Temperaturdaten bekommst du mit http://192.168.x.x/temp

chaot4ever

Konnte es nicht einrichten, nicht mit define ... und auch nicht mit der Editierung der fhem.cfg. Hatte wie Du sofort einen Totalabsturz!

eppi

Zitat von: chaot4ever am 18 März 2018, 17:27:57
Konnte es nicht einrichten, nicht mit define ... und auch nicht mit der Editierung der fhem.cfg. Hatte wie Du sofort einen Totalabsturz!
alles klar, Danke. Werde mal schauen und mich wieder melden.

ric91

Hallo mike

Ich hatte mehrfach mit Problemen zu kämpfen, wenn die IP-Adresse eines MyStrom-Adapters kein JSON zurückliefert. Bei mir war das Problem, dass auf der IP-Adresse ein anderes Gerät geantwortet hat. Der Fehler lag klar in der Netzwerk-Konfiguration (IP-Adresse doppelt vergeben).

Folge war aber jedesmal ein komplett abgestürztes FHEM.

Der Fehler tritt in der Zeile 57 auf, bei

my $decode = decode_json($response)

Steht in response etwas anderes als JSON, reisst das das ganze FHEM in den Abgrund.

Ich habe die Zeile ersetzt mit

my $decode = eval {
  decode_json($response);
  } or do {
  Log3 $name, 3, "Error while getting data from myStrom adater: The answer does not contain valid JSON from address " . $hash->{ip};
  return;
};


Das wirft einen Logeintrag und springt aus der Sub-Routine, damit läuft FHEM im Fehlerfall weiter.

Evtl könntest Du die 98_mystrom.pm dahingehend anpassen.

Grüsse
Ric
FHEM auf Raspberry Pi 2 B - Homematic - Philips Hue - Z-Wave - EnOcean - MyStrom - deCONZ

arallon

#50
Oh man Mega fettes Sorry von meiner Seite. Irgendwie muss die Benachrichtigung dass es hier Aktivität gab total unter gegangen sein :(
Dachte das Ding verwendet kein Mensch. Ich habe zufälligerweise heute mal wieder etwas an dem Modul gearbeitet und es etwas erweitert.

Was habe ich gemacht:

- Code etwas strukturierter und bereinigt
- Reading für Total Wattstunden eingebaut
- Reading für Total Kilowattstunden eingebaut
- Reading für Total since (datum)
- Hardware Infos weniger oft auslesen
- Standard Timeout reduziert
- Reset Funktion eingebaut für die Total Timer
- Anpassung von ric91 aufgenommen

Totalwerte bestimmen funktioniert wie folgt. Sofern der vorherig gemessene Wert nicht 0 ist (interval ist durchgelaufen) dann wird der aktuelle Wert auf Wattstunden umgerechnet in Abhängigkeit zum konfigurierten Interval.

Nutzt man Update oder schält man die Steckdose ab via FHEM, dann wird der aktuell laufende Timer ermittelt und die Berechnung korrigiert, da das Interval in diesem Fall ja kürzer ist.

Da noch Rundungen eingebaut sind, kann es bei sehr kurzem Interval und sehr niedrigem Verbrauch dazu führen, dass der berechnete Wert 0 ergibt. Da werde ich noch ein wenig experimentieren.
Grundsätzlich wäre ein Verbauch z.b lastWeek, lastMonth sicherlich denkbar. Mit den jetzt hinzugefügten Werten und ein paar At oder DoIf etc. kann man sich die aber vorerst auch anderweitig generieren.

Bezüglich Temperaturdaten, ich habe zum einen Rev1 und habe eine uralte Firmware, da ich noch nie etwas via App gemacht habe. Ich müsste die mal von mystrom updaten lassen, da ich noch nicht mal das manuelle Uploaden aktiv habe bei meiner Version.
Kann mir hier einer den Aufruf und die Rohdaten zur Verfügung stellen, dann kann ich das gerne aufnehmen.

Nochmals sorry dass ich mich hier nie gemeldet habe. Aktuelle Version angehängt. Sollte hoffentlich soweit funktionieren.

Aktuelle Version auf Seite1!!!

grüsse

mike


arallon

Zitat von: eppi am 18 März 2018, 17:30:03
alles klar, Danke. Werde mal schauen und mich wieder melden.

@eppi: Kannst du mir mal die Json Antwort von
http://deineip/info
zukommen lassen?



eppi

#52
Hallo arallon
welcome back  ;)
Danke für die neue Version, welche ich eingesprielt habe. FHEM schaltet damit die alten V1 Adapter, die neuen V2 jedoch nicht. Im Log finde ich folgendes beim schalten des neuen V2 Adapters:
2018.03.22 05:59:23 3: Error while getting data from myStrom adater: The answer does not contain valid JSON from address 192.168.2.128

Die JSON Antwort des neuen V2 Adapters für http://192.168.2.128/info sieht wie folgt aus:
version "3.60"
mac "xxxxxxxxxxxx"
ssid "technet"
ip "192.168.2.128"
mask "255.255.255.0"
gateway "192.168.2.1"
dns "192.168.2.1"
static true
connected true


Die JSON Antwort des neuen V2 Adapters für http://192.168.2.128/temp gibt folgendes zurück:
measured 42.25
compensation 21
compensated 21.25

Die JSON Antwort des neuen V2 Adapters für http://192.168.2.128/report gibt folgendes zurück:
power 0
relay false


Danke dir!
Viele Grüsse Eppi




arallon

#53
Die v2 hat also keine validen Json Antworten. Laufen damit in das gleiche Problem das ric91 aufgezeigt hatte wenn die Steckdose nicht erreichbar ist.
Schade das myStrom hier scheinbar unterschiedliche APIs einsetzt und dann auch noch entgegen der zugänglichen Dokumentation.

Hast du zufällig auf einer V1 eine aktuelle Firmware und funktioniert damit das Modul? Müsste mal versuchen heute Abend eine zu updaten.

Müsste mal versuchen die Antwort aus V2 zu mocken, damit ich das irgendwie einbauen könnte.

Ansonsten wäre mal noch dailyConsumption und weekly / monthly geplant und eine Kostenberechnung.


Edit: Ich habe mal den myStrom Support kontaktiert.

Noch eine andere Frage, nutzt ihr eigentlich das myStrom Portal/App. Das ganze hat auch eine offene API wo man auf alles zugreifen könnte. Theoretisch könnte man ähnlich einem HUE Modul oder so auch alles via Portal einbinden. Ich selbst nutze es allerdings nicht.

chaot4ever

#54
Hallo arallon
Habe mit deinem neuen Modul das Folgende getestet:
Bei der V1 mit aktueller Software 2.31 läuft alles bestens.
Bei der V2 lassen sich die Schalter nun anlegen, aber ein Schalten geht nicht, ebenso kommen keine Daten rein, im Log die gleichen Angaben wie von eppi beschrieben.
Grüsse Richi

arallon

Werde heute Abend mal ein Workaround einbauen, dass man die nicht valide Antwort verarbeiten kann. Und dann mal warten was der Support antwortet.
Wäre super wenn es dann einer prüfen könnte ob es läuft.

eppi

Zitat von: chaot4ever am 22 März 2018, 12:02:42
Habe mit deinem neuen Modul das Folgende getestet:
Bei der V1 mit aktueller Software 2.31 läuft alles bestens.
Bei der V2 lassen sich die Schalter nun anlegen, aber ein Schalten geht nicht, ebenso kommen keine Daten rein, im Log die gleichen Angaben wie von eppi beschrieben.
Kann ich bestätigen: Bei V1 mit FW 2.31 alles i.o, bei V2 kommen keine Readings und das schalten funktioniert nicht.
Zitat von: arallon am 22 März 2018, 12:45:51
Werde heute Abend mal ein Workaround einbauen, dass man die nicht valide Antwort verarbeiten kann.
Danke!

arallon

#57
So wer könnte das mal testen ?

Ich habe es versucht so gut es geht zu mocken und dagegen zu testen.

Der Versuch sieht wie folgt aus. Ich zerlege die Antworten die eppi gepostet hatte und baue daraus eine valide json antwort. Sofern die Antwort wirklich so ankommt, könnte es funktionieren. Aktuell gehe ich davon aus das es keine {} in euren Antworten von der Rev2 gibt.

Ich hänge die Version mal nur hier an nicht in den ersten Beitrag, damit eine funktionierende dort noch vorhanden ist. Feedback wäre mega.

Bin auch noch eine Weile on, sollte es nicht gehen kann man es ggf. zusammen noch flicken.

eppi

Danke
Beim Start von FHEM erhalte ich im Log (Verbose 3) folgende Meldung:
2018.03.23 06:02:00 1: PERL WARNING: Scalar value @line[1] better written as $line[1] at ./FHEM/98_myStrom.pm line 267, <$fh> line 1793.
2018.03.23 06:02:00 1: PERL WARNING: Scalar value @line[0] better written as $line[0] at ./FHEM/98_myStrom.pm line 267, <$fh> line 1793.
2018.03.23 06:02:00 1: PERL WARNING: Scalar value @resp[$i] better written as $resp[$i] at ./FHEM/98_myStrom.pm line 264, <$fh> line 1793.


V1 Adapter funktionieren wie geohnt, der V2 jedoch nicht (kein schalten möglich und keine Reading). Folgendes habe ich nach dem Anlegen eines V2 im Log:
2018.03.23 06:05:07 3: Error while getting data from myStrom adapter: The answer does not contain valid JSON from address 192.168.2.128

Danke und Gruss Eppi

arallon

Ja die Warnings sind kein Problem.

Ich vermute in der Antwort des Switchs sind vielleicht doch geschweifte Klammern vorhanden? Baue sonst mal ein paar Log Einträge ein, damit man ggf. etwas mehr sehen kann.