SMAUtils mit funktionierendem event-on-change-reading

Begonnen von Hefferwolf, 30 Dezember 2018, 22:12:44

Vorheriges Thema - Nächstes Thema

DS_Starter

Ah, ok.
Also vielleicht nehme ich nochmal dieses Moduls an und mache ein offizielles daraus. Scheint ja doch noch von grossem Interresse zu sein.
Mal schauen ... Zeit ist immer ein Problem.

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Hefferwolf

Hallo Heiko,

ich versuche mir das am Wochenende mal anzuschauen. Mein bisheriges Streben war ja, das für ein offizielles Modul tauglich zu machen.

Grüße,

  Ingo

DS_Starter

Top  :)
Ich weiß wie zeitraubend alles ist .... gemach  ;)

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

cornelius fillmore

Noch mal eine andere Frage: Wie bekomme ich denn folgende Fehlermeldung weg?
ZitatSetPlantTime returned an error: -1
3 x Fhem 5.9 mit RPI

Hefferwolf

Hallo Heiko,

nach etwas Verzögerung habe ich das Modul jetzt nochmal überarbeitet:


  • Der "mode" ist raus geflogen, automatic ist es jetzt, wenn interval gesetzt und > 0, sonst ist es manual
  • Wenn "disable" = 1, dann wird auch kein Timer aktiviert, nur wenn disable = 0 oder undefiniert.

Das Modul ist so bei mir auch aktiv. Das Attr "mode" muss dann aus der fhem.cfg gelöscht werden.

@Cornelius: diese Fehlermeldung kommt vom SBFspot und besagt wohl, dass er die Uhrzeit im Converter nicht setzen konnte, das ist bei mir auch so und man sieht in den Readings auch, dass die gemeldete Uhrzeit falsch ist. Das hat aber nichts mit dem Modul zu tun und ist entweder eine Macke im SBFspot oder aber im Converter selbst. Spielt bei der Einbindung und Datenerfassung über FHEM auch keine Rolle.

Grüße,

Ingo

alschie

Hallo,

ich habe das Modul von Hefferwolf https://github.com/irockel/fhem-utils/blob/master/98_SMAUtils.pm verwendet. Ich bekomme zwei Readings angezeigt.
state   active  2019-04-03 22:46:51
summary enabled 2019-04-03 22:46:51

SMAUtils STATE ist active und scheint auch soweit ok zu sein. SBFSport V3.5.1 liest den Wechslerichter (SB 5000TL-20) via Bluetooth aus und schreibt in, die entsprechend angegebenen Verzeichnisse, die Werte.

Z.B.

  • /var/log/sbfspot.3/PV-Anlage_201904.log+PV-Anlage_20190403.log
  • ~/smadata/SBFspot.db
  • ~/smadata/2019/PV-Anlage-20190403.csv+PV-Anlage-201904.csv+PV-Anlage-Spot-20190403.csv

Was ist die präferierte Variante um mit SMAUtilis auf alle bisher ausgelesenen Daten zuzugreifen, damit man Readings und einen entsprechend Plot erzeugen kann?

Grüße
Alex
RasPi 3 Mod. B Rev 1.2 | 1-Wire Sensoren | Relais Board | Shellys/Tasmota | SBFspot | Velux Steuerung

Hefferwolf

Hallo Alex,

ich bin mir nicht sicher, ob ich die Frage richtig verstehe, du willst historische Daten, die du bisher ausserhalb von fhem ausgelesen hast in den Plot integrieren? SMAUtils ist lediglich für die Anbindung von SBFspot gedacht. d.h. es stellt die aktuellen Werte als Readings bereit.

Wenn du historische Daten in deinen Plots haben möchtest, musst du dir vermutlich selbst etwas schreiben, dass deine Daten in eine Format konvertiert, dass den aktuellen Daten im Log entspricht, dann kannst du die Plot-Funktion darauf los lassen.

Grüße,

   Ingo

alschie

Hallo Ingo,

eigentlich reicht es mir die geschriebenen SBFSpot Daten in einem Plot darzustellen. Mir ist nicht klar wie SMAUtils auf die Daten zugreift damit Readings im Device auftauchen mit denen ich dann einen Plot erstellen kann.

Grüße
Alex
RasPi 3 Mod. B Rev 1.2 | 1-Wire Sensoren | Relais Board | Shellys/Tasmota | SBFspot | Velux Steuerung

Winnie_LD

Hallo zusammen,
ich verfolge seit einiger Zeit die Diskussion hier und habe mich jetzt selbst an die Arbeit gemacht, die Daten meiner beiden Wechselrichter mittels SMAUtils über bluetooth auszulesen und darstellen zu lassen.
Bluetooth Verbindung steht, sbfspot ist installiert und liefert Daten (auf der Konsole sieht die Ausgabe so aus):


/usr/local/bin/sbfspot.3/SBFspot -nocsv -v
SBFspot V3.5.2
Yet another tool to read power production of SMA solar inverters
(c) 2012-2018, SBF (https://github.com/SBFspot/SBFspot)
Compiled for Linux (LE) 32 bit with SQLite support
Commandline Args: -nocsv -v
Reading config '/usr/local/bin/sbfspot.3/SBFspot.cfg'
Wed Jul 10 14:45:44 2019: INFO: Starting...
sunrise: 05:34
sunset : 21:31
Connecting to 00:80:25:18:22:2B (1/10)
Initializing...
SUSyID: 125 - SessionID: 904495038 (0x35E97FBE)
SMA netID=01
SUSyID: 78 - SN: 2100345133
BT Signal=70.6%
Logon OK
Local Host Time: 10/07/2019 14:45:45
Plant Time     : 10/07/2019 14:45:45 (0 sec)
TZ offset      : 3600 sec - DST: On
Last Time Set  : 10/07/2019 10:05:45
SUSyID: 78 - SN: 2100345133
Device Name:      SN: 2100345133
Device Class:     Solar-Wechselrichter
Device Type:      SB 4000TL-20
Software Version: 03.01.05.R
Serial number:    2100345133
SUSyID: 78 - SN: 2100345133
Device Status:      Ok
SUSyID: 78 - SN: 2100345133
Device Temperature: 61.9°C
SUSyID: 78 - SN: 2100345133
GridRelay Status:      Geschlossen
SUSyID: 78 - SN: 2100345133
Pac max phase 1: 4000W
Pac max phase 2: 4000W
Pac max phase 3: 4000W
SUSyID: 78 - SN: 2100345133
Energy Production:
        EToday: 17.529kWh
        ETotal: 40165.724kWh
        Operation Time: 36496.36h
        Feed-In Time  : 35447.56h
SUSyID: 78 - SN: 2100345133
DC Spot Data:
        String 1 Pdc:   0.969kW - Udc: 246.07V - Idc:  3.941A
        String 2 Pdc:   1.970kW - Udc: 247.79V - Idc:  7.954A
SUSyID: 78 - SN: 2100345133
AC Spot Data:
        Phase 1 Pac :   2.851kW - Uac: 232.96V - Iac: 12.241A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   2.851kW
SUSyID: 78 - SN: 2100345133
Grid Freq. : 49.99Hz
SUSyID: 78 - SN: 2100345133
Current Inverter Time: 10/07/2019 14:45:40
Inverter Wake-Up Time: 10/07/2019 05:39:00
Inverter Sleep Time  : 10/07/2019 14:45:44
********************
* ArchiveDayData() *
********************
startTime = 5D250E60 -> 10/07/2019 00:00:00
**********************
* ArchiveMonthData() *
**********************
startTime = 5D19E7B0 -> 01/07/2019 13:00:00
Reading events: 2019-Jul-01
Wed Jul 10 14:45:47 2019: INFO: Done.


Die sbfspot.db wird auch fleißig befüllt - erster Tag am Laufen und schon 90 MB groß...
Daneben erstellt mir sbfspot hübsche csv-Dateien, die prächtig Daten enthalten.

Die fhem.cfg habe ich folgendermaßen befüllt:

define WinniesPV SMAUtils 00:80:25:18:22:2B /usr/local/bin/sbfspot.3
setuuid WinniesPV 5d233bc9-f33f-3bb9-ea03-942dc16034c13e08
attr WinniesPV icon measure_photovoltaic_inst
attr WinniesPV room Energie
attr WinniesPV timeout 50

define FileLog_Solar FileLog ./log/Solar-%Y-%m.log Solar:.*etod.*|Solar:.*string.*_pdc|Solar:.*total_pac|Solar:.*usage.*
setuuid FileLog_Solar 5d2345e0-f33f-3bb9-3681-2b58101294df72f7
attr FileLog_Solar icon icoLog
attr FileLog_Solar nrarchive 12
attr FileLog_Solar room logs

define SVG_FileLog_Solar_1 SVG FileLog_Solar:SVG_FileLog_Solar_1:CURRENT
setuuid SVG_FileLog_Solar_1 5d234658-f33f-3bb9-9983-22a84c4947e75449
attr SVG_FileLog_Solar_1 room Energie
attr SVG_FileLog_Solar_1 title "Solarleistung Min $data{min1}, Max $data{max1}, Last $data{currval1}"


Die plot-Datei sieht folgendermaßen aus:

# Created by FHEM/98_SVG.pm, 2019-07-08 15:42:28
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
set ylabel "kW"
set y2label "kW"

#FileLog 4:Solar.string_1_pdc\x3a:0:
#FileLog 4:Solar.string_2_pdc\x3a:0:

plot "<IN>" using 1:2 axes x1y1 title 'String 1' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'String 2' ls l0 lw 1 with lines


Nun zu meinen Fragen:

1. Obwohl sbfspot fleißig Daten liefert, bleibt die Solar-2019-07.txt leer. Dort kommen anscheinend keine Daten an. Ist meine Vermutung richtig, dass diese Datei mit den Daten aus der sbfspot.db durch SMAUtils gefüllt wird und dann daraus der plot erstellt wird? Wenn ja, wo kann der Fehler liegen und was kann ich tun?

2. Wenn die sbfspot.db weiterhin so befüllt wird, muss ich alle 10 Tage die Datenbank händisch löschen. Wie kann ich dafür sorgen, dass die Datenbank automatisch in regelmäßigen Abständen gelöscht wird? Oder ausgelagert? Oder wie macht Ihr das?

Da ich beim durchstöbern der einschlägigen Artikel auf dieser Seite nicht wirklich schlau geworden bin, hoffe ich sehr, Ihr könnt mir weiterhelfen.
Vielen Dank schonmal im Voraus,
Winnie_LD

Hefferwolf

Hallo Winnie,

die Datenbank von sbfspot brauchst du gar nicht und solltest du in der sbfspot-config abschalten. Weiterhin solltest du dir das Event-Log vom fhem anschauen, ob da Events vom sbfspot reinkommen, da solltest du dann Werte sehen und kannst damit auch kontrollieren, ob dein reguläre Ausdruck für die Logdatein stimmt. Die Werte fürs Plotting kommen ausschliesslich aus der Logdatei. Die sbfspot.db spielt da keine Rolle.

Gruss,

   Ingo

Winnie_LD

Hallo Ingo,
vielen Dank, mittlerweile konnte ich das Problem lösen. Ich habe sbfspot neu installiert, die SQlite Datenbank abgeschaltet und die plot-Datei angepasst (da war immer noch "SOLAR" anstelle meiner individuell vergebenen PV-Bezeichnung drin). Es läuft und er plottet die Leistung.

Leider stellt SVG-plot immer nur die Daten von EINEM Wechselrichter dar. Da ich zwei WR habe, hätte ich gern beiden Datenreihen (zur Not auch summiert) dargestellt. In der Log-Datei stehen die Werte für beide Wechselrichter jeweils in aufeinanderfolgenden Zeilen. Daher nimmt SVG-plot offensichtlich immer nur die zweite Zeile, da die Bezeichnung der Variable ja identisch ist für beide WR.

Ich habe hier im Forum gelesen, die Lösung mit zwei config erscheint mir reichlich kompliziert und ich wüsste auch gar nicht, wo anfangen.
Gibt es weitere Lösungsansätze, wie die Daten von beiden WR aus der Log-Datei in den Plot kommen können?

Vielen Dank, Winnie

Byllyy

Hallo zusammen,
ich versuche das Modul auf einem PI4 mit Buster nach Wiki zu installieren. Dabei Verwende ich die aktuelle 98_SMAUtils.pm und SBFspot-3.5.1.

Leider erhalte ich schon bei dem Punkt make release eine Fehlermeldung : "make: *** Keine Regel, um ,,release" zu erstellen.  Schluss."

Nach mehreren Versuchen und lesen vieler Threads bitte ich hier mal um Hilfe.

Vielen Dank,
Byllyy

DS_Starter

Hallo Byllyy,

an der Stelle ist es noch ein reines Linux-(Buster) Problem.
Vermutlich wärst du mit dieser Frage in einem passenden Unterforum bei den Linux-Cracks besser aufgehoben.
Ich selbst dir da auch nicht helfen und müsste googeln oder mir Rat holen.

LG,
Heiko 
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

moonsorrox

#28
Nach eineigen Versuchen, habe das jetzt  nochmal versucht zu installieren.. ich komme bis zum Punkt
wget –c https://github.com/SBFspot/SBFspot/releases/tag/V3.6.0/SBFspot-3.6.0.tar.gz

das finde ich auch im Verzeichnis, obwohl ich ja gar keinen Pi habe sondern ein Intel NUC

Habe mich hiernach gerichtet
cd /home/pi
mkdir sbfspot
cd sbfspot


trotzdem sollte er doch aber mit diesem Befehl weiter machen
Zitattar -xvzf SBFspot-3.6.0.tar.gz

was mache ich falsch..?
das hat sich erledigt, aber ich komme trotzdem nicht weiter..?

bei diesem Befehl kommt ein Fehler
[codemake release[/code]

root@fhem-server:/home/pi/sbfspot# make release
make: *** Keine Regel, um ,,release" zu erstellen.  Schluss.

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Axxl

#29
Zitat von: moonsorrox am 23 Mai 2020, 13:26:04
bei diesem Befehl kommt ein Fehler
[codemake release[/code]

root@fhem-server:/home/pi/sbfspot# make release
make: *** Keine Regel, um ,,release" zu erstellen.  Schluss.

Das Problem hatte ich auch .. Ich glaub die Doku ist hier etwas veraltet. Du musst angeben, welche Version du complieren willst. Also z.B.

make sqlite
oder
make mariadb

Für das Modul ist die verwendete DB ja eigentlich irrelevant. Also kann man irgendwas nehmen .. Denke mal sqlite ist am einfachsten.