). Analyse des Codes hab ich schon abgeschlossen. Eigentlich problemloses Erfassen des Online-Status, der kompletten History, momentan und Gesamtverbrauch). Deine Scripts für SunnyWeb habe ich mir schon parallel gezogen und hangle mich dann bzgl. Bus und RRDs daran entlang.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Frage zur Codeoptimierung WG-Plugin
Einklappen
Dieses Thema ist geschlossen.
X
X
-
Über den eingebauten WebServer des StecaGrid Connect-Interfaces. Solarlog-Box geht leider für die 2000er Serie nicht (zu spät an die Einbindung gedacht
). Analyse des Codes hab ich schon abgeschlossen. Eigentlich problemloses Erfassen des Online-Status, der kompletten History, momentan und Gesamtverbrauch). Deine Scripts für SunnyWeb habe ich mir schon parallel gezogen und hangle mich dann bzgl. Bus und RRDs daran entlang.
-
Hallo
Wie fragst Du den Steca-WR ab.
Über einen eingebauten WebServer oder SolarLog oder was?
Gruß NetFritz
Einen Kommentar schreiben:
-
Siehste, das wollte ich wissen
Vermutlich kommen die Daten (geparsed durch eines der JS) in wesentlich sauberer Form als JSON/XML; (das war die Frage die ich noch nicht gestellt hatte: HTML-parsen ist was für Sisiphus und hält genau bis zum nächsten Upgrade der SW im WR/Gateway..)
Gibts zu dem Teil irgendwo ne Online-Demo? dann wäre das mit Firebug&schnell gefunden..
Makki
Einen Kommentar schreiben:
-
Einen Versuch noch bitte:
Code:chomp $content; #Ertrag my $ertrag = $content =~ />.*?.(\d+\.\d+).(W)/ ; $ertrag = $1; #Leistung my $leistung = $content =~ />.*?.(\d+\.\d+).(MWh)/ ; $leistung = $1;
Einen Kommentar schreiben:
-
@ Waldemar: Danke für den Tipp. So hatte ich das auch verstanden und probiert, allerdings bleibt dann das Ergebnis leer, obwohl der nächste x.y im Code ist. Dennoch bringt mich das zur Erkenntnis, das ich dann doch nicht so falsch mit meinen Kenntnissen gelegen habe und stattdessen im HTML-Code irgendwas den Match unmöglich macht...
Das bringt mich dann zähneknirschend zu Makki's Einwurf den Inhalt von Content (via CURL exportiert) mal anzuhängen... Im Beispiel hier taucht zuerst als Anhaltspunkt "lang_sysperf3" aus gefolgt von "18.0 W" für den Ertrag (und später 4.0 MW für den Gesamtertrag). Kann es sein, dass das ganze aufgrund von Zeilenumbrüchen innerhalb des Dumps ins Trudeln kommt?
@JuMi: Oh oh, jetzt hab ich aber doch ein schlechtes Gewissen, klappt aber leider auch nicht, der Inhalt von $ertrag ist wieder leer....
So ne Ka... (net in der Windel und auch net auf der Strasse)
Ich würde sagen an der Stelle dann erst mal Abbruch.... Ich danke Euch dennoch für die wertvollen Einwürfe und Tipps, da ich zumindest bzgl. der RegEx-Syntax nun denke auf dem richtigen gedanklichen Weg zu sein (=~m// bringt hier nix) und aus den Beispielen die logische Vorgehensweise verstanden habe. Ich schraube nun mal weiter und werde natürlich am Ende das komplette Plugin für die Steca-WR posten...Angehängte Dateien
Einen Kommentar schreiben:
-
Das sollte es eigentlich machen:
Sucht die Zahl die zwischen ">" und der jeweiligen Einheit "W/MWh" steht
EDIT: Hatte da noch nen Fehler drin wo ich aber jetzt auch nicht weiterkomme. Man müsste vorher noch nen chomp $content machen weil der Zeilenumbruch sonst irgendwie stört.
Code:chomp $content; #Ertrag my $ertrag = $content =~ />.*?.(\d+\.\d+).(W)/ ; #Leistung my $ertrag = $content =~ />.*?.(\d+\.\d+).(MWh)/ ;
Gruß
P.S.: Hat aber auch lange gedauert
Dafür wieder ein Teil Regex verstanden.
Einen Kommentar schreiben:
-
Naja, ohne zu wissen was in $content denn nun genau steht (CODE verwenden!), wirds wohl keine fertige AW geben, sonst kann ich nur sagen das mir da manches mal die Windel, nicht nur die Strasse nass wurde
Finally müsste man auch sehen, was sich davon ändern kann und berücksichtigen (Einheiten -/k/M z.B.)
Makki
Einen Kommentar schreiben:
-
Hi,
äquivalent zu Deinem Coding müsste folgendes sein:
wobei ich hier annehme, dass wirklich x.y im string stehen. In kurz: 89 beliebige Zeichen, dann eine Zahl, gefolgt von einem Punkt, dann wieder ne Zahl. Wobei die Zahlen und der Punkt das gewünschte Ergebnis sind.Code:my $ertrag = $content =~ /.{89}(\d+\.\d+)/;
Ich hab es aber nicht ausprobiert.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hallo zusammen,
danke für das Feedback.
@Mirko:
Das mit RegEx und dem reinfuchsen ist mir klar, hatte vor Urzeiten als SysAdmin auch einiges gemacht, aber wie Du schon geschrieben hast, wenn man es nicht täglich macht wird es schwierig und man sieht den Wald vor lauter Bäumen nicht. Daher auch meine Frage ob in der Community irgendwo ein Crack sitzt, der die Logik sozusagen aus dem Ärmel schüttet ohne recherchieren zu müssen. Mir gehen auch Posts auf den Keks wo man feststellt, dass mit einer einfachen Googlesuche das Problem geklärt werden kann, daher habe ich auch schon viel Zeit in die Recherche und in die Vorselektion des Problems gesteckt, aber irgendwann sollte auch jeder Wissen, wann er die Fahne hebt...
Ich schaue mir den Link an, vielleicht kommt mir dann wieder die zündende Idee, ansonsten bleibt es dann erst mal bei den Codezeilen und gut.
@NetFritz:
Danke für den Tipp mit dem regEx-Tester (REGex TESTER v1.5.3 - test/validate regular expressions, online tester), kannte ich noch nicht! Ich glaube das spart mir Test-Zeit...
Einen Kommentar schreiben:
-
Hallo
Es gibt auch online REDex Tester.
Einfach mal bei Goggle suchen.
Gruß NetFritz
Einen Kommentar schreiben:
-
Hallo Oliver, ich komme frühestens heute Abend dazu mir das genauer anzusehen. Noch dazu bin ich auch nur Perl-Anfänger. Aber ich würde versuchen eine RegEx zu kreieren die nach diesen Strings sucht:
Leistung:
> x.x W
Ertrag
> x.x MWh
Der erste Trenner ist > und der zweite jeweils MWh/W. Da gibt es ein ganz gutes Beispiel von amaridian im Forum bzgl. der Zählerauslesung. Er hat das auch sehr schön im Anschluss erklärt. Hier:https://knx-user-forum.de/wiregate/1...plugin-18.html
Danke noch mal dafür! Und passender gehts ja kaum ... nur das wir Ertrag und Bezug austauschen
Was greentux meint ist wohl eher dass Perl mit der RegEx-Geschichte recht mächtig ist und sich nahezu alles damit finden/erschlagen lässt. Ergo macht es durchaus Sinn sich damit intensiver zu beschäftigen. Aber ganz ehrlich ohne google und diverse RegEx-tutorials tut man sich da sehr schwer das im Kopf zu behalten. Hat man es aber einmal in den Grundzügen verstanden wird das ganze nachvollziehbar.
Gruß
Einen Kommentar schreiben:
-
??? und Dein Post hilft mir wie die Erkenntnis, dass bei Regen die Strasse nass wird...
Einen Kommentar schreiben:
-
Naja, RE kann man verstehen, muss man aber nicht
Meine persönliche Einstellung dazu ist: lieber fünf Zeilen, die ich in 12Monaten noch auf Anhieb verstehe, als eine RE, die man sich nie wieder traut anzufassen..
Geschmackssache, wirklich Performance-relevant ist das IMHO nicht bei solchen Anwendungen..
Makki
Einen Kommentar schreiben:
-
THX! Ich hab Dir mal ein paar Sachen via Email zukommen lassen. P.S.: Bin auch noch an dem ebus-Thema dran. Allerdings bin ich erst noch am Decodieren der Hautec bzw. TEM-Commandos...
Einen Kommentar schreiben:


Einen Kommentar schreiben: