98_myStrom.pm - myStrom WLAN Energy Control Switch

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

Vorheriges Thema - Nächstes Thema

chaot4ever

Perfekt, die Lösung mit dem attr find ich super, denn die Abfrage erfolgt maximal stündlich

arallon

So ich habe mal etwas gebastelt und hoffe das ganze läuft dann auch :)

Bitte den folgenden Post noch beachten:
https://forum.fhem.de/index.php/topic,39933.msg787126.html#msg787126

Sind jetzt einige Änderungen enthalten. Neben denen im Post:

- Delete Routine hinzugefügt wenn das Device entfernt wird (Timer entfernen)
- Temperatur auslesen hinzugefügt: Hierfür muss das Attribut tempTimer gesetzt werden. Wert in Sekunden. In diesem Interval wird dann die temperatur abgefragt. Der Timer startet direkt mit dem setzen des Attributs. Beim Löschen werden die Timer wieder entfernt und die Werte auf "-" gesetzt
- Notify Funktion hinzugefügt, damit nach dem Start von fhem der Timer gestartet wird, wenn das Attribut gesetzt ist
- Umstellung aller Calls auf httpversion 1.1, damit sollte auch schalten für V2 möglich sein. V1 funktioniert weiterhin ok.

Wenn es positives Feedback gibt hänge ich die Version in den ersten Post.


Edit: aktuell übernehme ich die Werte noch ungerundet. Evtl wäre auf 2 Kommastellen runden noch brauchbar?

chaot4ever

#77
Danke für die perfekte Arbeit! Das Schalten läuft nun auch und die Temperaturanzeige funktioniert.

Folgende Fehler/Verbesserungen habe ich gefunden:
1. Beim FHEM-Start treten noch folgende Meldungen auf im Log:
Zitat2018.03.28 07:32:38 1: PERL WARNING: Scalar value @resp[$i] better written as $resp[$i] at /opt/fhem/FHEM/98_myStrom.pm line 432, <$fh> line 911.
2018.03.28 07:32:38 1: PERL WARNING: Scalar value @line[0] better written as $line[0] at /opt/fhem/FHEM/98_myStrom.pm line 435, <$fh> line 911.
2018.03.28 07:32:38 1: PERL WARNING: Scalar value @line[1] better written as $line[1] at /opt/fhem/FHEM/98_myStrom.pm line 435, <$fh> line 911.

2. Bei der Temperaturanzeige reicht der Eintrag "compensated" als "temperature" definiert und gerundet auf eine Kommastelle, da die beiden anderen Werte belanglos und individuell verschieden sind und nur verwirrend wirken.

Die Einträge totalConsumption, totalConsumptionDay und totalConsumptionNight zeigen noch 0 an, nehme an, dass die sich zu einer bestimmten Zeit füllen werden (20:00h?).

Gruss Richi

arallon

Ja die Warnings sind noch etwas doof, spielen aber keine grosse Rolle, wenn ich das änder wie dort geschrieben läuft es nicht mehr. Muss ich mal bei Zeiten noch genauer anschauen, am besten wenn ich auch mal ein Gerät habe.

Das für die Temperatur kann ich anpassen. Habe einfach mal alle Werte übernommen wie die geliefert werden.

TotalConsumption wird eigentlich nach jedem abgelaufenen Interval errechnet, wenn auch die Messung erneut durchgeführt wird. Ein Szenario kann ich mir vorstellen wo das evtl 0 bleibt. Wenn der Verbrauch sehr sehr klein ist der gemessen wird und das Interval sehr kurz. Es wird aktuell auf 6 Stellen gerundet und in kwH angegeben.

Angenommen wir haben 2 Watt Verbrauch und ein 5 Sekunden Interval müsste im Bereich 0.0000003 liegen und wäre dann weiterhin 0. Day/Night wird nur errechnet bei Tag Nachttarif. Kosten nur wenn min. tarifDay gesetzt ist. Wenn es ein solches Szenario ist kann man es natürlich mal auf 8 Nachkommastellen setzen.
Wenn das Interval hoch ist, aber man z.b ständig ein update auslöst wird das Interval gekürzt um die Timer Laufzeit damit man auch nur den relevanten Verbrauch hat. So könnte die 0 zustande kommen. Bei mir funktionieren die Werte eigentlich recht gut.

Zeile 95: $usedPowerInInterval = round($actPowerCalc/3600*($hash->{INTERVAL}-$corr)/1000,6);
Da könntest das sonst testweise anpassen.


Auf jeden Fall bin ich froh dass wir soweit gekommen sind, dass ihr auslesen und schalten könnt :)

Ich passe das heute Abend noch an mit dem temp reading

chaot4ever

Hab mir erlaubt, das temp Reading anzupassen.  ;)

eppi

Zitat von: chaot4ever am 30 März 2018, 22:49:32
Hab mir erlaubt, das temp Reading anzupassen.  ;)
Cool, Danke vielmals für die Weiterentwicklung des Moduls!
Gruss Eppi

Grisu

#81
Hallo zusammen.
Erstmals vielen Dank für Euer Engagement.

ich habe die Version von  chaot4ever (30.3.2018) installiert

Positiv: V2 Schaltet  :)
Fehler im Log: Error while getting data from myStrom adapter: The answer does not contain valid JSON from address 192.168.1.108

Meine Konfiguration:
myStrom Switch V2 Firmware 3.82

http://192.168.1.108/info >> liefert Fehler 404
http://192.168.1.108/report >> {"power":0,"relay":true,"temperature":41.640354156494141}
http://192.168.1.108/temp >> {"measured":46.25,"compensation":5.7397313117980957,"compensated":40.510269165039062}

Kann da wer weiterhelfen?
Besten Dank
Dandan


Update 16.1.2019. mein Problem könnte mit einem Reset des MyStorm gelöst werden. Nun funktioniert die Info auch wieder.


2x RPI B+ 1x FritzBox7390 1x USV
1x HM-Lan 1x cul433 1x cul868
9x HM Türkontakt 1x Heizzyklen Überw. 1x Ultraschall Öl Pegel 1x Regens. 15x IT Z.stecker 2x HM Dimmer 6x FS20 Dimmer 1x Stromzähler 1x FS20 to Infrarot 3x HM Rauchmelder 3x Temp 10x Sender
Alarmanlage Aquariumst. Terrariumst.

arallon

Hey

So wie es aussieht gibt es die "info" in der Firmware Version nicht (mehr).

Muss es mir mal anschauen, wie man das umgehen könnte, damit es fehlerfrei funktioniert.

Haben andere auch die Firmware Version laufen und das gleiche "problem"?

grüsse

eppi

Hallo zusammen
Bei mir sieht es mit der neusten Firmware (3.82.4) wie folgt aus:

http://192.168.2.128/report
{"power":0,"relay":false,"temperature":18.749046325683594}

http://192.168.2.128/temp
measured 44.25
compensation 23.357219696044922
compensated 20.892780303955078


http://192.168.2.128/info
{"version":"3.82.4","mac":"XXXXXXXXX","ssid":"myWifi","ip":"192.168.2.128","mask":"255.255.255.0","gateway":"192.168.2.1","dns":"192.168.2.1","static":true,"connected":true,"type":"WS2","name":"WiFi Switch v2 CH","connectionStatus":{"ntp":true,"dns":true,"connection":true,"handshake":true,"login":true}}

Wenn ich den Wifi Switch definiere mit:
define Testswitch_v2 192.168.2.128 20
kann ich ihn ganz normal schalten, alles tiptop. Aber sobald ich das attr TempTimer setze, stürzt FHEM komplett ab.

Im Log (verbose 3) finde ich dann folgenden Eintrag:
2018.10.31 18:43:37 1: PERL WARNING: Scalar value @line[1] better written as $line[1] at ./FHEM/98_myStrom.pm line 430, <$fh> line 1757.
2018.10.31 18:43:37 1: PERL WARNING: Scalar value @line[0] better written as $line[0] at ./FHEM/98_myStrom.pm line 430, <$fh> line 1757.
2018.10.31 18:43:37 1: PERL WARNING: Scalar value @resp[...] better written as $resp[...] at ./FHEM/98_myStrom.pm line 427, <$fh> line 1757.


Beste Dank für die Analyse und viele Grüsse Dani



arallon

Werde es morgen mal testen, mit meiner Version habe ich keinen Absturz, allerdings habe ich auch nur eine V1 und es gibt nie eine "brauchbare" Antwort zurück. Muss meine Version raus suchen bei der ich die Interfaces via Mock zur Verfügung gestellt habe und teste es nochmal damit

eppi

Zitat von: arallon am 31 Oktober 2018, 22:06:40
Werde es morgen mal testen, mit meiner Version habe ich keinen Absturz, allerdings habe ich auch nur eine V1 und es gibt nie eine "brauchbare" Antwort zurück. Muss meine Version raus suchen bei der ich die Interfaces via Mock zur Verfügung gestellt habe und teste es nochmal damit
Hallo arallon
Konntest du das Problem schon nachstellen und hast ev eine Lösung gefunden?
Danke und Gruess Eppi

iHome

Hallo Arallon
Hab mir auch solche myStrom WIFI Schalter zugelegt und mit Deinem Modul eingebunden.
Schalten funktionierte auf anhieb super.

Habe aber das gleiche Problem wie eppi: Sobald ich einen Wert (z.B. 300) im Attribut TempTimer eingeben möchte, stürzt das FEHM komplett ab.
Habs mehrfach versucht. (meine myStrom-Adapter haben auch die neuste Firmware 3.82.4)

Danke und Gruss

arallon

bestelle mir jetzt auch einen. kann es aktuell nicht nachstellen.

gramels

Hallo,

konnte schon jemand rausfinden, wie man die Temperatur ausliest?

Grüsse
Lothar

Fatboy

Hallo zusammen

Ich bin neu und absolut begeistert von fhem. Gibt es irgendwo eine Anleitung, wie man den myStrom-Switch mit dem WLAN verbindet ohne App von myStrom? Bis jetzt habe ich noch nichts gefunden.

Gruss Daniel