Autor Thema: SMA über Bluetooth -> MQTT-> FHEM  (Gelesen 254 mal)

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10112
SMA über Bluetooth -> MQTT-> FHEM
« am: 25 Dezember 2022, 19:33:02 »
Ich besitze einen 4000 TL mit einer Bluetooth-Schnittstelle.
Es gibt zwar diverse Module zu SMA-Wechselrichtern, allerdings unterstützen sie nicht die Bluetooth-Schnittstelle.
Man kann allerdings recht einfach ohne zusätzliche FHEM-Module die Daten des Wechselrichters über Bluetooth auslesen.
Dazu habe ich einen class 1- USB-Bluetooth-Adapter am raspi angeschlossen und die aktuelle sbfspot-Version auf MQTT konfiguriert.
Die Daten werden über drei Geschosse sauber übertragen und lassen sich entsprechend darstellen.
Ich lese zwar schon seit Jahren die erzeugte PV-Energie über einen externen Zähler mit SO-Schnittstelle, auf die Daten der einzelnen Strings konnte ich aber bisher nicht "automatisiert" zurückgreifen.

Interessant fand ich nun die Auswertung des Stroms (nicht der Leistung) der beiden Strings. Damit kann man gut die Verschattung bzw. Effizienz der beiden Strings vergleichen, obwohl sie unterschiedliche Anzahl der PV-Module abdecken.

Bei Interesse zur Konfiguration einfach hier posten.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF
Informativ Informativ x 1 Liste anzeigen

Offline HarryT

  • Full Member
  • ***
  • Beiträge: 173
Antw:SMA über Bluetooth -> MQTT-> FHEM
« Antwort #1 am: 27 Dezember 2022, 13:44:14 »
Hi Damian  (in english as my writing in german is bad, but I can read german perfect)

Your project sounds interesting.  Could you give more information how you did it?

You still need SBFspot?  At the moment I use SBFspot and read the sqlite database from fhem.

Thanks
{HT}
 




FHEM 6.1 auf Raspberry Pi3  (1,2 Ghz)
RFXTRX433XL, ZWave und KFL200
Raspberry Pi1 (0,7 Ghz) and Raspberry Pi4 for testing

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10112
Antw:SMA über Bluetooth -> MQTT-> FHEM
« Antwort #2 am: 27 Dezember 2022, 15:18:21 »
Hi Damian  (in english as my writing in german is bad, but I can read german perfect)

Your project sounds interesting.  Could you give more information how you did it?

You still need SBFspot?  At the moment I use SBFspot and read the sqlite database from fhem.

Thanks
{HT}


this is my configuration:

mqtt definition in sbfspot.cfg:


MQTT_Publisher=/usr/bin/mosquitto_pub
MQTT_Host=raspberrypi-4
MQTT_Topic=sbfspot
MQTT_ItemFormat="{key}": {value}
MQTT_ItemDelimiter=comma
MQTT_PublisherArgs= -h {host} -t {topic} -i "sbfspot" -m "{{message}}"

in daydata-file:

#!/bin/bash
#
log=/var/log/sbfspot.3/SMA_$(date '+%Y%m%d').log
/usr/local/bin/sbfspot.3/SBFspot -ad0 -am0 -ae0 -mqtt -nosql -nocsv -finq -q &>>$log

in crontab:

*/5 5-22 * * * /usr/local/bin/sbfspot.3/daydata
in FHEM

MQTT-Device (created automatically):

Internals:
   CID        sbfspot
   DEF        sbfspot
   FUUID      639dd927-f33f-30f6-8693-f5a55c89343768ef
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.178.163_52984
   MQTT2_FHEM_Server_MSGCNT 2
   MQTT2_FHEM_Server_TIME 2022-12-27 15:05:13
   MSGCNT     2
   NAME       MQTT2_sbfspot
   NR         702
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 2
   READINGS:
     2022-12-27 15:05:13   EToday          8.359
     2022-12-27 15:05:13   ETotal          43457.901
     2022-12-27 15:05:13   IDC1            0.362
     2022-12-27 15:05:13   IDC2            0.385
     2022-12-27 14:56:26   IODev           MQTT2_FHEM_Server
     2022-12-27 15:05:13   InvGridRelay    Closed
     2022-12-27 15:05:13   InvName         SN: --------
     2022-12-27 15:05:13   InvSerial       2130302482
     2022-12-27 15:05:13   InvStatus       Ok
     2022-12-27 15:05:13   InvTemperature  32.170
     2022-12-27 15:05:13   InvTime         27.12.2022 15:05:13
     2022-12-27 15:05:13   PACTot          206.000
     2022-12-27 15:05:13   PDC1            145.000
     2022-12-27 15:05:13   PDC2            67.000
     2022-12-27 15:05:13   SunRise         27.12.2022 08:18:00
     2022-12-27 15:05:13   SunSet          27.12.2022 15:56:00
     2022-12-27 15:05:13   Timestamp       27.12.2022 15:05:12
     2022-12-27 15:05:13   UDC1            403.040
     2022-12-27 15:05:13   UDC2            177.080
Attributes:
   readingList sbfspot:sbfspot:.* { json2nameValue($EVENT) }
   room       DEVICES->MQTT2_DEVICE

visualization in FHEM:

defmod Aktuell DOIF {}
attr Aktuell uiTable {package ui_Table;;\
\
 ## $TABLE='vertical-align:top';;\
  $TC{0..1} = "style='vertical-align:top'"\
  $TABLE='text-align:center;;';;\
  $SHOWNOSTATE=1;;\
}\
card([[MQTT2_sbfspot:PDC1:144col1d],[MQTT2_sbfspot:PDC2:144col1d]],"","fa_bolt\@silver",0,2000,0,90,["PDC1","PDC2"],undef,"0,,fill:silver","130,,1,0,1","1,,1,0,1",undef)|\
card([[MQTT2_sbfspot:IDC1:144col1d],[MQTT2_sbfspot:IDC2:144col1d]],"","fa_bolt\@silver",0,2,0,90,["IDC1,red","IDC2,blue"],undef,"3","130,autoscaling,steps,footer,noycolor,halfring","1,,1,0,1",undef)


I don't use sql or csv data.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF