SMA Modbus SUNNY TRIPOWER 8.0

Begonnen von mediastudio, 30 August 2019, 21:12:22

Vorheriges Thema - Nächstes Thema

mediastudio

Ich brauche Hilfe, ich habe einen ,,SUNNY TRIPOWER 8.0"  / STP8.0-3AV-40 569 im Betrieb.
Ich brauche den Momentanwert  des Wchselrichters. Ich habe Modbus aktiviert.
Der Wert ist unter  ,, 30775"  AC Wirkleistung über alle Phasen (W) [TotInvPwrAt] über den Modbus auszulesen.
Im ,,ioBroker"  wird mir der Wert übergeben, aber ich wollte den ohne " ioBroker"  in Fhem einlesen um damit eine Steckdose zu steuern.

Leider bekomme ich nur eine Meldung das  ,,PWP – openet" aber sonst nichtst.
Ich habe dieses aus den Foren mal in der CFG eingetragen.

define PWP ModbusAttr  3  30   192.168.10.33:502  TCP
attr PWP userattr obj-h30775-reading obj-h30377-unpack obj-h30775-poll
attr PWP obj-h30775-len 2 WRtyp
attr PWP obj-h30775-unpack N
attr PWP obj-h30775-poll 1
attr PWP verbose 5
attr PWP room SMA 

Kann mir da jemand ein Beispiel geben das für mich in Frage kommt.
Ich brauche nur den einen Wert über den Modbus.



Wzut

#1
sieht "fast"gut aus :)
aber wenn du 30775 ausliest muss das Kind auch einen Namen bekommen. Was soll der Zusatz WRtyp bei len ?

define PWP ModbusAttr 3 30 192.168.10.33:502 TCP
attr PWP userattr obj-h30775-reading obj-h30775-unpack obj-h30775-poll obj-h30775-len
attr PWP obj-h30775-len 2
attr PWP obj-h30775-unpack N
attr PWP obj-h30775-poll 1
attr PWP obj-h30775-reading Wirkleistung
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

mediastudio

Hallo, der Zusatz "WRtyp" bei len, das hatte ich nur so gesehen, konnt ich auch nicht deuten.
Ich werde das gleich mal teste.

attr PWP obj-h30775-reading Wirkleistung

Danke für die schnelle Antwort.

mediastudio

Besten Dank, es funktioniert, die Daten werden angezeigt.

define PWP ModbusAttr  3  30  192.168.10.33:502 TCP
attr PWP userattr obj-h30775-reading obj-h30775-unpack obj-h30775-poll obj-h30775-len
attr PWP obj-h30775-len 2
attr PWP obj-h30775-unpack N
attr PWP obj-h30775-poll 1
attr PWP obj-h30775-reading Wirkleistung
attr PWP room SMA

Das reading fehlte.

mediastudio

Für alle die auch über einen   ,,SUNNY TRIPOWER 8.0" mit FHEM Steckdosen schalten möchten
ist hier mal mein Eintrag in der CFG.
Die Daten hole ich über den ModBus, der muss nur aktiviert werden im SMA ist er schon vorhanden.

define PWP ModbusAttr  3  30   IP-vom SMA:502  TCP

Über einen Slider kann der Schwellwert eingestellt werden.
Der SMA hat die Eigenschaft  über ,,obj-h30775"  bei nicht vorhandener Leistung, also wenn dunkel, einen hohen konstanten Wert auszugeben. Damit auch ,,0" Watt Aktuelle Leistung angezeigt wird ist
folgende Abfrage:

if ( $IstPV > 7000 ) {$IstPV=0};;fhem("setreading PWP leistung $IstPV");;\

Meine PV ist auf 7000 KWh  max. Einspeisung begrenzt, hier und auch beim Slider muss der Wert je nach eigener Anwendung angepasst werden.  Das  icon SMA.png und icon funk_steckdose.png sollte jeder für sich erstellen. Ich möchte kein Problem mit Urheberrechte.
Ansonsten kann das alles ohne Probleme auf andere Verbraucher angewandt werden.
   
### SUNNY TRIPOWER 8.0 ###
define PWP ModbusAttr 3  30  IP-vom SMA:502 TCP
attr PWP userattr obj-h30775-reading obj-h30775-unpack obj-h30775-poll obj-h30775-len
attr PWP alias SUNNY TRIPOWER 8.0
attr PWP obj-h30775-len 2
attr PWP obj-h30775-unpack N
attr PWP obj-h30775-poll 1
attr PWP obj-h30775-reading Wirkleistung
attr PWP room SMA
attr PWP group SUNNY TRIPOWER
attr PWP icon SMA.png
attr PWP stateFormat leistung: Watt  Aktuelle Leistung
setreading PWP leistung 0

### PV_Steckdose
define PV_Steckdose dummy
attr PV_Steckdose alias PV Steckdose
attr PV_Steckdose group Relaxliegen
attr PV_Steckdose icon funk_steckdose.png
attr PV_Steckdose devStateIcon on:power.on off:power.off
attr PV_Steckdose setList off on
attr PV_Steckdose userReadings http {esp_http("192.168.10.156", "12", ReadingsVal("PV_Steckdose","state","") =~/^on/?1:0)};;{esp_http("192.168.10.156", "13", ReadingsVal("PV_Steckdose","state","") =~/^on/?0:1)}
attr PV_Steckdose room SMA
attr PV_Steckdose group SMA

### PV_Steckdose Einschaltwet Vorgabe
define PWP_soll dummy
attr PWP_soll alias Einschaltschwelle bei KWh
attr PWP_soll readingList PWP_sollwert
attr PWP_soll room SMA
attr PWP_soll setList PWP_sollwert:slider,100,50.0,7000
#attr PWP_soll stateFormat slider_sollwert
attr PWP_soll webCmd PWP_sollwert
attr PWP_soll group SMA

define Regelung_PV_Steckdose notify PWP:.* {\
   my $IstPV = ReadingsVal("PWP","Wirkleistung","0");;\
   my $SollPV = ReadingsVal("PWP_soll","PWP_sollwert","0");;\
   if ( $IstPV > 7000 ) {$IstPV=0};;fhem("setreading PWP leistung $IstPV");;\
   if (($IstPV > $SollPV) or ($IstPV == $SollPV))\
   {fhem ("set PV_Steckdose on")}\
   else\
   {fhem ("set PV_Steckdose off")}\
}




Wzut

Zitat von: mediastudio am 02 September 2019, 12:15:21
Der SMA hat die Eigenschaft  über ,,obj-h30775"  bei nicht vorhandener Leistung, also wenn dunkel, einen hohen konstanten Wert auszugeben.
Das machen andere SMA Modelle auch und ebenso in anderen Registern :)
Meine Lösung
attr <name> dev-h-defExpr $val & 0x1FFFFFFF
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

mediastudio

Hallo Wzut, ich bin Dir dankbar für Deine Hinweise.
Es funktioniert so einwandfrei, die Werte zeigen nun  bei nicht vorhandener Leistung  ,,0" .
Hier nun für weitere User meine CFG.

### SUNNY TRIPOWER 8.0 ###
define PWP ModbusAttr  3  30  IP-vom SMA:502  TCP
attr PWP userattr obj-h30775-reading obj-h30775-unpack obj-h30775-poll obj-h30775-len
attr PWP alias SUNNY TRIPOWER 8.0
attr PWP dev-h-defExpr $val & 0x1FFFFFFF
attr PWP obj-h30775-len 2
attr PWP obj-h30775-unpack N
attr PWP obj-h30775-poll 1
attr PWP obj-h30775-reading Wirkleistung
attr PWP room SMA
attr PWP group SUNNY TRIPOWER
attr PWP icon SMA.png
attr PWP stateFormat Wirkleistung: Watt  Aktuelle Leistung


### Steckdose Powerline 1 ####
define PV_Steckdose_1 dummy
attr PV_Steckdose_1 alias PV Steckdose 1
attr PV_Steckdose_1 group Relaxliegen
attr PV_Steckdose_1 icon funk_steckdose.png
attr PV_Steckdose_1 devStateIcon on:power.on off:power.off
attr PV_Steckdose_1 setList off on
attr PV_Steckdose_1 userReadings http {esp_http("192.168.10.156", "12", ReadingsVal("PV_Steckdose_1","state","") =~/^on/?1:0)};;{esp_http("192.168.10.156", "13", ReadingsVal("PV_Steckdose_1","state","") =~/^on/?0:1)}
attr PV_Steckdose_1 room SMA
attr PV_Steckdose_1 group Powerline 1

### PV_Steckdose_1 Einschaltwet Vorgabe
define PWP_soll_1 dummy
attr PWP_soll_1 alias Einschaltschwelle
attr PWP_soll_1 readingList PWP_sollwert_1
attr PWP_soll_1 room SMA
attr PWP_soll_1 setList PWP_sollwert_1:slider,100,50.0,7000
attr PWP_soll_1 stateFormat bei Watt
attr PWP_soll_1 webCmd PWP_sollwert_1
attr PWP_soll_1 group Powerline 1
 
define Regelung_PV_Steckdose_1 notify PWP:.* {\
   my $IstPV1 = ReadingsVal("PWP","Wirkleistung","0");;\
   my $SollPV1 = ReadingsVal("PWP_soll_1","PWP_sollwert_1","0");;\
   if (($IstPV1 > $SollPV1) or ($IstPV1 == $SollPV1))\
   {fhem ("set PV_Steckdose_1 on")}\
   else\
   {fhem ("set PV_Steckdose_1 off")}\
}


Wzut

#7
Zitat von: mediastudio am 03 September 2019, 21:35:42
Hallo Wzut, ich bin Dir dankbar für Deine Hinweise.
fein , aber sei doch nicht so geizig, der WR hat noch einige interessante bzw wichtige Register.
Hier mal wie das bei meinen beiden minimal ausschaut :
attr 8000TL dev-h-defExpr $val & 0x1FFFFFFF
attr 8000TL dev-h-defLen 2
attr 8000TL dev-h-defPoll 1
attr 8000TL dev-h-defUnpack N
attr 8000TL enableControlSet 1
attr 8000TL devStateIcon ok:on fault:message_attention warnings:message_attention
attr 8000TL obj-h30201-map 35:fault,303:off,307:ok,455:warnings
attr 8000TL obj-h30201-reading state
attr 8000TL obj-h30211-map 336:Contact manufacturer, 337:Contact installer, 338:invalid, 887:none
attr 8000TL obj-h30211-reading Aktion
attr 8000TL obj-h30529-reading Gesamtertrag
attr 8000TL obj-h30535-reading Tagesertrag
attr 8000TL obj-h30775-reading Wirkleistung
attr 8000TL obj-h30953-expr ($val  & 0xFFF) / 10
attr 8000TL obj-h30953-reading Temperatur

und wenn du vllt noch ein WR Icon suchst :
Zitat<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="250px" height="250px" viewBox="0 0 250 250" version="1.1" fill="#000000">
  <g id="surface740315">
    <path style=" stroke:none;fill-rule:nonzero;fill:#000000;fill-opacity:1;" d="M 45 20 C 31.273438 20 20 31.273438 20 45 L 20 205 C 20 218.726562 31.273438 230 45 230 L 205 230 C 218.726562 230 230 218.726562 230 205 L 230 45 C 230 31.273438 218.726562 20 205 20 Z M 45 30 L 205 30 C 207.308594 30 209.46875 30.566406 211.425781 31.503906 L 31.503906 211.425781 C 30.566406 209.46875 30 207.308594 30 205 L 30 45 C 30 36.726562 36.726562 30 45 30 Z M 218.496094 38.574219 C 219.433594 40.53125 220 42.691406 220 45 L 220 205 C 220 213.273438 213.273438 220 205 220 L 45 220 C 42.691406 220 40.53125 219.433594 38.574219 218.496094 Z M 69.960938 55.15625 C 68.933594 55.128906 67.921875 55.160156 66.945312 55.242188 C 64.332031 55.46875 61.898438 56.058594 59.738281 56.902344 C 51.082031 60.289062 46.054688 66.933594 46.054688 66.933594 L 53.945312 73.066406 C 53.945312 73.066406 57.667969 68.460938 63.386719 66.222656 C 69.109375 63.980469 76.261719 63.332031 86.464844 73.535156 C 98.761719 85.832031 111.609375 86.480469 120.261719 83.097656 C 128.917969 79.710938 133.945312 73.066406 133.945312 73.066406 L 126.054688 66.933594 C 126.054688 66.933594 122.332031 71.539062 116.613281 73.777344 C 110.890625 76.019531 103.738281 76.667969 93.535156 66.464844 C 85.464844 58.394531 77.164062 55.34375 69.960938 55.15625 Z M 125 160 L 125 170 L 195 170 L 195 160 Z M 125 180 L 125 190 L 155 190 L 155 180 Z M 165 180 L 165 190 L 195 190 L 195 180 Z M 165 180 "/>
  </g>
</svg>
in eine Textdatei kopieren bsp acdc.svg und unter /opt/fhem/www/images/fhemSVG speichern
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

mediastudio

Hallo Wzut, ich habe nun mal die readings eingefügt.
Bei Gesamtertrag habe ich einen 7-stelligen Wert den ich so gesetzt habe:
attr PWP obj-h30529-expr ($val  & 0x1FFFFFFF ) / 1000
attr PWP obj-h30529-reading Gesamtertrag
Dann bekomme ich die richtige Ausgabe Gesamtertrag:  2126.275  KWh.
Würde den gerne zwei Stellen hinter dem Punkt aufgerundet anzeigen.
Der Wert für den Tagesertrag bleibt unverändert, zu hoch.
Der Wert von der Temperatur wird nur angezeigt wenn auch die Wirkleistung >0 ist.
Dieses  ,,attr PWP enableControlSet 1" bringt eine Fehlermeldung.
Wie ich aber sehe kennst Du dich mit WS von SMA aus, ich bin da ein Neuling.
Gibt es eine Möglichkeit den Modbus vom SMA gleichzeitig von zwei Geräten abzufragen?

Wzut

du kannst Werte problemlos noch formatieren, bei deinem Gesamtertrag wäre das z.B.
attr PWP obj-h30529-format %.2f

K.A. was da bei deinem Tagesertrag schief läuft, stimmt denn die Registernummer für deinen Typ laut SMA Modbus Doku ?

Das SMA nur eine gültige Temperatur überträgt wenn der WR auch arbeitet finde ich auch etwas unglücklich, aber mir ist die 0 persönlich lieber als ein Pseudowert mit seinen gesetzten High Bits. Aber man kann sich ja mit FHEM Bordmitteln (Stichwort userReadings)  noch ganz gut weiterhelfen.

Lass enableControlSet einfach weg, sitzt bei mir vermutlich auch nur noch als Altlast

Zugriff von mehr als einem Gerät sollte kein Problem sein solange du es mit dem Abfrageintervall nicht übertreibst. Ggf. immer mal wieder das Log checken ob FHEM mault das er nicht oder nur teilweise geantwortet hat.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

mediastudio

Hallo Wzut,
deine Angaben sind schon richtig, hier ist ein Link vom SMA
http://files.sma.de/dl/2585/WEBBOX-MODBUS-TB-de-19.pdf
da sehe ich ab Seite 25 unter ID3 die Parameter. Die Formatierung klappt habe nun wie im GUI vom SMA die gleiche Anzeige.

Wzut

wie Webbox ? Du hast doch einen TP 8.0 ?
https://www.sma.de/service/downloads.html -> Monitoring & Control -> MODBUS PROTOCOLL SCHNITSTELLE -> alle anzeigen
dann runter bis
Technical Information - SMA Modbus® Interface - SUNNY TRIPOWER 8.0 / 10.0 (STP8.0-3AV-40 / STP10.0-3AV-40)
Art: Technische InformationenSprache: International Dokumentennummer: MODBUS-HTML_STP8-10-3AV-40_V11Versionsnummer: 1.1
MODBUS-HTML_STP8-10-3AV-40_V11.zip

ergibt dann https://files.sma.de/dl/24399/MODBUS-HTML_STP8-10-3AV-40_V11.zip
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

mediastudio

Ich habe mir die Dateien runtergeladen und werde da mal sehen wie die Parameter sind.
Du warst mir eine große Hilfe, seit Juli habe ich eine PV mit 9,92 KW pik. Mein Vorhaben läuft soweit. Ich habe verschiedene Hardware im Einsatz. Grundausstattung ein Bungalow mit EnOcean seit 2011. Jetzt setze ich zum Teil auch EspEasy und Sonoff ein. Mit Sonoff über Fhem habe ich noch kleine Probleme.
Besten Gruß aus Windeck Rosbach

Wzut

Bei 9,92kWp hast du schon richtig Geld in die Hand genommen. Überlege dir mal ob du da als SMA Nutzer und Smart Home Fan nicht noch 500 Öre draufpackst und dir einen Sunny Home Manager 2.0 gönnst. (gab sogar letzte Woche im Inverter Thread ein Angebot eines Users )
zumal du ja mit deinen Schaltsteckdosen eh schon in die Richtung Eigenverbrauchoptimierung steuerst.
IMHO nur mit dem HM2.0 siehst du was von deiner aktuellen PV Leistung wirklich übrig bleibt. Die Daten sind dann auch im Sunny Portal verfügbar und du bist sogar ein Stück unabhängig von FHEM was History und Charts betrifft. Im Gegenzug gibt es aber dann auch die SMA Module von DS_Starter
(Heiko) die dir das alles wieder schön zu FHEM bringen. Ich habe meinen HM2.0 letztes Jahr von meinem Solar Guru verpasst bekommen ohne Ahnung davon zu haben und bin jetzt heilfroh das er ihn damals als unbedingt erforderlich aufs Angebot gesetzt hat.

 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

mediastudio

Hallo, über einen "Sunny Home Manager 2.0" habe ich schon nachgedacht. Bei mir ist die 70% Regelung im SMA eingestellt. Da ich 2020 ein Pool mit Wärmepumpe bauen will, hätte ich gerne die 100%-tige Ausnutzung meiner PV. Das ist der nächste Ansatz. Nachdem Du mir ja so schnell geholfen hast, kann ich schon mal eine elektrische Zusatzheizung für die Fußbodenheizung steuern.
Meine Wärmepumpe hat einen 200 L Pufferspeicher den ich mit einer 1KW Heizpatrone aufgerüstet habe, diese schaltet sich bei PV-Leistung >1500 Watt zu und der Kreislauf der Fußbodenheizung wird vorgewärmt. Ich habe nun ,,gosona" WiFi Steckdosen auf Sonoff gefläsht.  Diese Steckdosen messen die Leistung  der Verbraucher, dadurch kann ich die zurzeit Gesamtentnahme ermitteln und so Verbraucher Zu- oder Abschalten. Fazit, es darf bei zu geringer PV-Leistung kein teurer, eingekaufter Strom verbraucht werden. Das wende ich auf Zusatzgeräte an, auch einen Heizlüfter im Wohnbereich.