Sunny Portal Livedaten auslesen

Begonnen von Waldmensch, 26 Juni 2014, 07:19:30

Vorheriges Thema - Nächstes Thema

Waldmensch

#15
Das json durchzusetzen sollte kein Problem sein. Ich versuche es mal einzubauen.

Edit: Ist drin und committed, auch als JAR. Der Aufruf .../raw  liefert den letzten Datensatz wie .../actual aber als JSON

Regengott

#16
So, kompilieren klappt jetzt auch  8)

Auch wenn ich wahrscheinlich Eulen nach Athen trage: Um die Daten grafisch anzeigen zu lassen habe ich folgendes erstellt:
fhem.cfg:

# Log
define sunnylog FileLog ./log/sunnylog-%Y-%m-%d.log Sunny


SVG_sunnylog_1.gplot

# Created by FHEM/98_SVG.pm, 2014-07-04 13:28:36
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid ytics y2tics
set ylabel "Power (W)"
set y2label "prov. Power"
set yrange [0:5000]
set y2range [0:5000]

#FileLog 4:Sunny.PV\x3a::
#FileLog 4:Sunny.SC\x3a::
#FileLog 4:Sunny.FI\x3a::

plot "<IN>" using 1:2 axes x1y1 title 'PV' ls l2fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'SelfConcumption' ls l1fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'FeedIn' ls l3 lw 1 with lines


Mir gefällt nicht, dass das Logfile derartig groß wird - da gibt es bestimmt einen eleganteren Weg...

Waldmensch

#17
COOL! Ich wollte sowas auch schon bauen, hatte aber nicht die Zeit.

wg. Loggröße - eventuell könntest du den Abfrageintervall im HTTPMod auf 60 hochsetzen um blos alle Minute Daten zu bekommen. Dann hast Du zwar nicht jede Schäfchenwolke im Chart aber naja.  :D

Andrerseits sind mir historische Daten auch nicht sooo wichtig. Die kann man ja super aufbereitet aus dem Portal kriegen. Mir geht es primär um Echtzeit Daten um gezielt Verbraucher zu schalten. Eigenverbrauchsmaximierung ist die Devise. Momentan liege ich mit meiner 10kWp Anlage bei 21% (aktueller Monat) - da geht noch was  ;)

Am WE versuche ich mal eine Waschmaschinensteckdose. Wenn PV > 3000 && SCR < 20 dann on-for-timer 3h

Edit: Noch besser wäre es natürlich über FeedIn zu gehen. Wenn FI > 6000 .... Weil DANN zieht der Homemanager den Wechselrichter hoch auf 70% + Eigenverbrauch (70% Regelung)

Regengott

Hab meine Anlage (4,3 kWp) erst ganz frisch und will mir einen Überblick schaffen - daher sind mir die historischen Daten recht wichtig. Ich will mir so eine Art "Kosten-Nutzen-Anzeige" bauen mit einem Vergleich Einspeiseentgeld vs Stromkosten.

Mir ist ein weiteres Feature von FHEM aufgefallen: DBlog - wir werden sehen, was damit geht :)

Nachdem das ja gut funktioniert werde ich es mal im Wiki als weitere Lösung neben dem Auslesen des WR promoten...

Waldmensch

Wäre super. Worauf wir aber unbedigt bei Supoxy achten müssen sind die Ausgaben an der Konsole. Ich schleuse dort die Errors mit aus. Falls ein Error mit "Sitzung abgelaufen" o.ä. kommt, muß Thread kurz gestoppt werden und die login Funktion angesprungen werden. Sonst liefert das Portal statt dem JSON die Login Seite, was natürlich dann permanent intern Fehler reißt.

Wenn Du natürlich sowieso das Log wegschreibst kannst Du auch bitte mal dort die Augen offenhalten und den Wortlaut posten. Die Fehler müßten hinter ERROR: stehen

Regengott

Wies der Teufel will habe ich seit ein paar Minuten folgenden Fehler im fhem.log

2014.07.04 14:57:50 3: HTTPMOD: Response didn't match Reading(s) ERROR
2014.07.04 14:58:00 3: HTTPMOD: Response didn't match Reading(s) ERROR
2014.07.04 14:58:10 3: HTTPMOD got error in callback: localhost: Connection refused
2014.07.04 14:58:20 3: HTTPMOD got error in callback: localhost: Connection refused

Waldmensch

Die ersten 2 sind Regex Fehler in FHEM. Da stimmt das Pattern für das Feld ERROR: nicht. Ich hatte das auch und habe dieses Reading erstmal auskommentiert. Die anderen Beiden waren Verbindungsfehler zum Supoxy. Läuft beides auf dem RasPi? Kann das sein das der Kleine etwas überfordert ist?

Regengott

War keine Überlastung der Schwarzbeere, sondern ein geschlossener Terminal, in dem SuProxy lief  :o
Ich lass den jetzt mit nohup im Hintergrund laufen - oder kann man mit Java den Prozess direkt im Background forken?

Waldmensch

Na am einfachsten wie hier: http://stackoverflow.com/questions/12554526/running-a-java-application-in-the-background-of-a-linux-server
Das dev/null kannst du auch durch ein /var/log/supoxy.log ersetzen mit >> davor für append. Das ganze noch in die /etc/init.d/local packen, damit es beim raspi Start mitgestartet wird

Falls du irgendwann mal ein "cannot bind. ...." beim Start bekommst wurde supoxy nicht richtig beendet und der http Port ist noch belegt. In diesem Fall hilft ein "killall -9 java"

Regengott

Ein aktueller Erfahrungsbericht von mir:


  • Der suproxy läuft recht stabil bei mir, manchmal scheint die DSL-Zwangstrennung den suproxy aus dem Tritt zu bringen, aber der Fehler ist noch nicht reproduzierbar.
  • Das Filelog habe ich durch DBLog (derzeit nur in eine sqlite3-db) ersetzt und ich arbeite mit dem neuen Charting Frontend, welches sehr schöne Grafiken erzeugt. (vgl Bild, Anleitung siehe wiki-link)
  • Das Abfrageintervall habe ich zwecks Datenminimierung beim suproxy und bei HTTPMOD auf 30sek hochgedreht

Mir scheint, es fehlt ein Reading vom Portal: "Purchased electricity", bzw auf Deutsch "Netzbezug" oder wird das aus den anderen Werten berechnet?

Waldmensch

Das sollte GC sein. Grid Consumption. Was du im JSON siehst ist alles was wir haben

Waldmensch

Ich habe mal die Logausgaben mit Timestamps versehen. Aktuelle Version ist im github

Regengott

So, mit ein bisschen Inspiration vom Minecraft-Server meines Filius gibt es jetzt auf GITHUB auch ein erstes init-script für den supoxy.

Waldmensch

Ich habe keine Ahnung was das Script macht - aber es sieht gut aus   :D

Klaus Rubik

Hallo,
ich habe seit 2 Tagen immer das Problem, dass der Proxy scheinbar hängen bleibt. Zumindest liefert er keine neuen Daten mehr. Wenn ich ihn stoppe und wieder starte läuft die Datenlieferung wieder.
Hat schon mal jemand dieses Phänomen gehabt?

Viele Grüße

klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS