SMA Sunny Home Manager abfragen.

Begonnen von Brun, 07 Oktober 2014, 10:40:34

Vorheriges Thema - Nächstes Thema

Wzut

also die HTML sub läßt sich noch gut lesen , fast zu gut, denn meine Rechtschreibfehler in den Kommentaren hättest du gern verbessern dürfen :)
Ich bin mal auf dein extra Device gespannt, dann hat hoffentlich dieses nicht Fisch und nicht Fleisch sein des weblink bei der Seitendarstellung endlich ein Ende.
Mich würde ja wirklich intressieren wie sich das auf einer Tablet UI Seite macht.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Xguide

Hallo zusammen,

habe es gerade auch mal eben eingespielt.
Auf den ersten Blick fehlen mir wieder die Consumer - liegt aber daran, dass ich den "pvco" type bevorzuge und die dort nicht implementiert sind. Habe es für mich angepasst, muss aber noch in eine Funktion ausgelagert werden. Habe ich gerade nicht hinbekommen, werde es aber die Tage mal anpassen und vorschlagen.

Sonnige Grüße,

Marcel
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

Dersch

Zitat von: DS_Starter am 30 Mai 2019, 09:58:33
Hallo miteinander,

das Coding habe ich nun säuberlich in das Modul integriert.
Bei der Übernahme habe ich ein paar geringfügige Anpassungen eingebracht, aber sonst die Lösung 1:1 übernommen.
Der Code sieht etwas anders aus, damit es für mich lesbar ist (jeder hat da so seine Vorlieben)  ;)

Anpassungen:
* Im Setter createPortalGraphic gibt es eine Dropdown mit sprechenden Namen für die zu erstellen Layouts, also Generation, Consumption, ...
* Die Namen der erstellten Grafikdevices beginnen nun mit SPGx. Hintergrund ist, dass perspektivisch ein eigenes Grafikdevice statt weblink eingesetzt werden soll
* bei der initialen Erstellung bekommen die Grafiken einen sprechenden Alias mit gesetzt, z.B. "SMA Sunny Portal Graphics - Differential". Kann man hinterher ja ändern wenn es nicht gefällt.
* bei der initialen Erstellung bekommen die Grafiken "Generation & Consumption", "Differential" als zweite Farbe erstmal rot zugewiesen. Damit sieht man sofort die Zahlenwerte, sonst nur schwarz auf schwarz. Kann man hinterher ändern wenn es nicht gefällt/passt.
* im Header erscheint nur einmal der Link zum Parent-Device, unabhängig davon ob der Header ein- oder zweizeilig ist
* alle Attribute für die Grafikdevices sind im Abschnitt "Attribute der Grafikdevices" der SMAPortal Commandref (help smaportal de) enthalten.
* es gibt keine Readings "...WeatherId" mehr. Die Infos sind im Helper vorhanden und werden mit "List" ausgegeben.
* das Attribut "show_dif" heißt nun "show_diff" , ein "f" hatte mir gefehlt  ;)
* das Intervall kann nur >= 120 Sekunden eingestellt werden wegen der "SMA-Abfragetoreranz", siehe Beitrag von Kenneth -> https://forum.fhem.de/index.php/topic,27667.msg937420.html#msg937420

Die neue Vesion steht als 1.8.0 in meinem contrib zum Download bereit:

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter  (Downloadbutton benutzen)

Dort befindet sich auch ein Unterordner mit den zusätzlichen Icons, die man nach fhemSVG kopieren muss.
Die Icons sind aber bereits eingecheckt, d.h. mit einem fhem-Update hat man die per default vorhanden.

Implementierung:
Wer bereits die Entwicklungsersion-Version von Wzut im Einsatz hat, kann das Modul einfach runterladen und restarten.
Es läuft erstmal normal weiter. Es empfiehlt sich trotzdem eine vorhandene Grafik zu löschen und neu anzulegen wegen den oben erläuterten
Änderungen.
Wer meine contrib-Version vor 1.8.0 im Einsatz hat, löscht bitte vor Download und Restart eine eventuell vorhandene Grafik.
Sonst gibt es nach dem Restart Fehler.


Ausblick:
Ich habe noch folgendes vor umzusetzen:

* Die Namen der Grafikattribute im Stil anpassen, also statt hour_style dann hourStyle. Dafür gibt es glaube ich eine Routine damit der User nicht manuell umstellen muss.
* Die Ausgabe von Status in der Grafik ("Awaiting data ... etc.") in einem Style ausgeben um es ansprechend zu gestalten
* die Verwendung eines eigenen Grafikdevices. Das habe ich bei SSCam so entworfen. Damit kann die Grafik per longpoll immer aktualisiert werden. Ist schön für den Tabletteinsatz und man kann außerdem die Attribute dort normal unterbringen.
...

Viel Spass beim Testen.

LG und einen schönen Feiertag,
Heiko

Hi Heiko,

ich bekomme mit dieser Version folgende Fehler:

syntax error at ./FHEM/76_SMAPortal.pm line 8, near "<"
Unknown regexp modifier "/D" at ./FHEM/76_SMAPortal.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/76_SMAPortal.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/76_SMAPortal.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/76_SMAPortal.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/76_SMAPortal.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/76_SMAPortal.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/76_SMAPortal.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/76_SMAPortal.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/76_SMAPortal.pm line 9, at end of line
./FHEM/76_SMAPortal.pm has too many errors.


Vorher hatte ich die Testing 1.8.1 von Wzut erfolgreich im Einsatz.

Grüße
Dirk

DS_Starter

Hi Dirk,
Du hast den Download nicht richtig gemacht. Musst den Download Button auf der Seite benutzen.
Wenn du die Fehler senkrecht liest ergibt sich der Nikname DS_Starter  ;).

Lg
Proxmox+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

Dersch

Ja das habe ich schon gemerkt und mich gewundert  ;D

Ok dann probiere ich es nun richtig.

Danke
Dirk

DS_Starter

#545
Hallo zusammen,

für das SMAPortal gibt es nun ein zugeschnittenes Anzeigedevice. Es ist die Datei 76_SMAPortalSPG.pm
Zusätzlich gibt es ein paar Codinganpassungen im 76_SMAPortal damit die Gesamtfunktionalität gegeben ist.
Hauptvorteil ist, dass die Portalgrafik bei jedem Update automatisch in der Raumansicht aktualisiert wird.
Als kleine Hilfe gibt es im Header die Info des letzten Updates.
Die Attribute für die Grafikdarstellung habe ich dem allgemeinen Style angepasst. Unten sieht man eine Übersicht altes Attribut -> neues Attribut.
Da ich ein neues Grafikdevice gebaut habe, konnte ich die neuen Attributnamen direkt implementieren.

Hier die wesentlichen Änderungen im Überblick:

* Portalgrafik wird im eigenen Device erstellt
* die Attribute sind in der eigenen commandref des Grafikdevices beschrieben
* das Grafikdevice kann umbenannt und kopiert werden, Anpassungen erfolgen automatisch
* Attributnamen wurden geändert

   color             -> beamColor
   color2            -> beamColor2
   hours             -> hourCount
   hour_style        -> hourStyle
   show_header       -> showHeader
   show_link         -> showLink
   show_night        -> showNight
   maxPV             -> maxPV
   icon              -> suggestIcon
   height            -> beamHeight
   font_size         -> spaceSize
   html_start        -> htmlStart
   html_end          -> htmlEnd
   consumers         -> consumerList
   legend_style      -> consumerLegend
   show_weather      -> showWeather
   type              -> layoutType
   weather_color     -> weatherColor
   show_diff         -> showDiff
   width             -> beamWidth 

* Die Ausgabe von Status in der Grafik ("Awaiting data ..., disabled etc.") werden in einem Tabellenstyle ansprechend ausgegeben


Es stehen zwei Dateien 76_SMAPortal.pm, 76_SMAPortalSPG in meinem contrib zum Download bereit:

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter  (Downloadbutton benutzen)


Implementierung:

Vor der Implementierung sind eventuell vorhandene Portalgrafiken zu löschen.
Danach beide angegebenen Dateien nach FHEM herunterladen und restarten.
Danach die Grafiken wie gewohnt erzeugen und mit den neuen Attributen parametrisieren.


Grüße
Heiko
Proxmox+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

DS_Starter

Hallo miteinander,

ich habe in das SMAPortal nun auch die Informationen über den gegewärtigen Zustand der Verbraucher (Bluetooth-Steckdosen) implementiert die durch den Sunny Home Manager gesteuert werden.
Dadurch entstehen im Level 3 ein paar neue Readings wie hier beispielhaft angegegeben:

* L3_Waschmaschine_Power                0 W                                  # aktueller Energieverbrauch durch den Verbraucher
* L3_Waschmaschine_Switch                off (automatic)                 # Zustand. Kann on, off oder off (automatic) wenn auf Auto-Steuerung, sein
* L3_Waschmaschine_SwitchLastTime  07.06.2019 15:25:33      # Zeitpunkt der letzten Schaltung, also von on -> off oder off -> on

Die entsprechenden Statusicons (fest vorgegeben) werden auch auch in der Grafik in der Verbraucherlegende mit dargestellt.

Es stehen zwei Dateien 76_SMAPortal.pm, 76_SMAPortalSPG in meinem contrib zum Download bereit:

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter  (Downloadbutton benutzen)

Ist die Vorgängerversion von SMAPortal die Version 2.0.0 reicht es aus die Dateien  zu ersetzen und zu restarten.

Grüße,
Heiko
Proxmox+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

DS_Starter

Hallo,

habe noch etwas weitergemacht und die Werte nun auch durchgehend mit den entsprechenden Einheiten versehen.
Für die DbLog-User wird dementsprechend ebenfalls für alle Readings ein Splitting der Werte und Units vorgenommen.
Ein Bug in der Berechnung von L4_NextHourXX habe ich auch korrigiert, der sich in einem der letzten Updates eingeschlichen hatte.

Wie gewöhnlich aus meinem Contrib herunterzuladen und Restart.

Schöne Pfingsten und Grüße,
Heiko
Proxmox+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

DS_Starter

Habe noch einen Fehler in der grafischen Darstellung gefunden und korrigiert falls die Planung der Verbraucher auf den nächsten Tag fällt. Dann kam es vor, dass der Zeitraum nicht abgebildet wurde.
Version von 76_SMAPortal im Contrib ist nun 2.1.2.
Proxmox+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

saschab

#549
An Alle die auch mal Löten wollen!
mit Hilfe der Module 76_SMAPortal, 76_SMAInverter und 77_SMAEM habe ich wie folgt mir eine LED-Anzeige gebastelt.
Und folgende Hardware benutzt: ESP8266, LED-Bänder (WS2812) und ein A4 Bilderrahmen.

Als Firmware auf den ESP8266 kommt https://github.com/sw-home/FHEM-LEDStripe zum Einsatz. Hier ein Anleitung: https://waschto.eu/ws2812-led-stripe-mit-fhem-steuern/.

Teil 2 folgt in kürze!

Gruß Sascha
FHEM und Homebridge im Dockercontainer auf einem RPi4!!!
(für: Wärmepumpe, Heizungsreglung, PV-Anlage, Wallbox, Kontrollierte Wohnraumlüftung, Beleuchtung, Energiekosten Monitoring, Wetterstation, Feinstraubsensor)

DS_Starter

#550
Hallo zusammen,

@saschab, nette Idee.  8)  Ich hoffe die Module werden noch vielen Usern Freude bereiten und Nutzen bringen.

Ich habe auch noch Verbrauchsdaten der gesteuerten Bluetooth-Steckdosen hinzugefügt.
Dadurch ergeben sich im Level 3 zusätzliche Readings:

     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyRelativeMonthGrid 17 %         # Anteil Netzbezug vom Verbrauchswert im Monat
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyRelativeMonthPV 83 %           # Anteil PV-Nutzung vom Verbrauchswert im Monat
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyRelativeYearGrid 43 %          # Anteil Netzbezug vom Verbrauchswert im Jahr
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyRelativeYearPV 57 %            # Anteil PV-Nutzung vom Verbrauchswert im Jahr
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyTotalDay 2 Wh
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyTotalMonth 4423 Wh             # Gesamtverbrauch im Monat
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyTotalMonthGrid 748 Wh          # Anteil Netzbezug vom Verbrauchswert im Monat absolut
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyTotalMonthPV 3675 Wh           # Anteil PV-Nutzung vom Verbrauchswert im Monat absolut
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyTotalYear 40434 Wh             # Gesamtverbrauch im Jahr
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyTotalYearGrid 17447 Wh         # Netzbezug am Gesamtverbrauch im Jahr
     2019-06-10 18:10:08   L3_Geschirrspueler_EnergyTotalYearPV 22987 Wh           # Anteil PV-Nutzung am Gesamtverbrauch im Jahr
     2019-06-10 18:10:08   L3_Geschirrspueler_Planned no
     2019-06-10 18:10:08   L3_Geschirrspueler_PlannedOpTimeBegin undefined
     2019-06-10 18:10:08   L3_Geschirrspueler_PlannedOpTimeEnd undefined
     2019-06-10 18:10:08   L3_Geschirrspueler_Power 0 W
     2019-06-10 18:10:08   L3_Geschirrspueler_Switch on
     2019-06-10 18:10:08   L3_Geschirrspueler_SwitchLastTime 09.06.2019 12:42:04


Die Readings für RestOfDay und Tomorrow habe ich von Level 3 in das Level 2 verschoben. Das passt nun besser in des Gesamtkonzept.
Es gibt ein neues Attribut "verbose5Data" um den Logausstoß mit verbose 5 steuern zu können und die Supportfähigkeit zu verbessern.

Nach der Implementierung einfach kurz disable=1 und danach disable=0 setzen um die alte Readingstruktur durch die Neue zu ersetzen.

Wie immer aus meinem contrib zu laden wie oben angegeben. Version ist jetzt die 2.2.0.

Grüße,
Heiko
Proxmox+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

saschab

Teil 2 von mit ein paar Code Beispielen:
Zitat von: saschab am 10 Juni 2019, 14:13:14
An Alle die auch mal Löten wollen!
mit Hilfe der Module 76_SMAPortal, 76_SMAInverter und 77_SMAEM habe ich wie folgt mir eine LED-Anzeige gebastelt.
Und folgende Hardware benutzt: ESP8266, LED-Bänder (WS2812) und ein A4 Bilderrahmen.

Als Firmware auf den ESP8266 kommt https://github.com/sw-home/FHEM-LEDStripe zum Einsatz. Hier ein Anleitung: https://waschto.eu/ws2812-led-stripe-mit-fhem-steuern/.




# LEDStripe

define StatusOG_LED LEDStripe 192.168.xxx.xxx
attr StatusOG_LED DbLogExclude .*
attr StatusOG_LED group StatusOG


# Config und Daten Dummy

define StatusOG_conf dummy
attr StatusOG_conf group StatusOG
attr StatusOG_conf webCmd state
setreading StatusOG_conf NAME StatusOG_LED
setreading StatusOG_conf NIGHT 23:00
setreading StatusOG_conf DAY 06:00
# LED aus
setreading StatusOG_conf COLOR00 0 0 0
# LED halbe Stufe
setreading StatusOG_conf COLOR05 32 128 32
#LED ganze Stufe
setreading StatusOG_conf COLOR10 0 255 0
# LED 70% Stufe
setreading StatusOG_conf COLOR15 128 255 0
# LED Fehler
setreading StatusOG_conf COLOR20 0 0 32
# LED Verbrauch halbe Stufe
setreading StatusOG_conf COLOR25 128 32 32
# LED Verbrauch ganze Stufe
setreading StatusOG_conf COLOR30 255 0 0
setreading StatusOG_conf LED00 00
setreading StatusOG_conf LED01 01
setreading StatusOG_conf LED02 02
setreading StatusOG_conf LED03 03
setreading StatusOG_conf LED04 04
setreading StatusOG_conf LED05 05
setreading StatusOG_conf LED06 06
setreading StatusOG_conf LED07 07
setreading StatusOG_conf LED08 08
setreading StatusOG_conf LED09 09
setreading StatusOG_conf LED10 10
setreading StatusOG_conf LED11 11
setreading StatusOG_conf LED12 12
setreading StatusOG_conf LED13 13
setreading StatusOG_conf LED14 14
setreading StatusOG_conf LED15 15
setreading StatusOG_conf LED16 16
setreading StatusOG_conf LED17 17
setreading StatusOG_conf LED18 18
setreading StatusOG_conf LED19 19
setreading StatusOG_conf LED20 20
setreading StatusOG_conf LED21 21
setreading StatusOG_conf LED22 22
setreading StatusOG_conf LED23 23
setreading StatusOG_conf LED24 24
setreading StatusOG_conf LED25 25
setreading StatusOG_conf LED26 26
setreading StatusOG_conf LED27 27
setreading StatusOG_conf LED28 28
setreading StatusOG_conf LED29 29
setreading StatusOG_conf LED30 30
setreading StatusOG_conf LED31 31
setreading StatusOG_conf LED32 32
setreading StatusOG_conf LED33 33
setreading StatusOG_conf LED34 34
setreading StatusOG_conf LED35 35
setreading StatusOG_conf LED36 36
setreading StatusOG_conf LED37 37
setreading StatusOG_conf LED38 38
setreading StatusOG_conf LED39 39



# setreadings  Daten in StatusOG_conf

define N.GridConsumption.StatusOG_conf notify SMAEM:Bezug_Wirkleistung:.* { fhem "setreading StatusOG_conf GridConsumption "."$EVTPART1"}
attr N.GridConsumption.StatusOG_conf group StatusOG

define N.GridFeedIn.StatusOG_conf notify SMAEM:Einspeisung_Wirkleistung:.* { fhem "setreading StatusOG_conf GridFeedIn "."$EVTPART1"}
attr N.GridFeedIn.StatusOG_conf group StatusOG

define N.PV.TotalConsumption.StatusOG_conf notify SMAInverter:modulstate.* {\
# Energieverbrauch\
fhem "setreading StatusOG_conf PV ".sprintf("%.1f",(ReadingsVal("SMAInverter","total_pac",0)*1000));;\
my $tc = sprintf("%.1f",ReadingsVal("StatusOG_conf","PV",0)+ReadingsVal("StatusOG_conf","GridConsumption",0)-ReadingsVal("StatusOG_conf","GridFeedIn",0));; \
if($tc >= 0) { \
     fhem ("setreading StatusOG_conf TotalConsumption ".sprintf("%.1f",$tc));;\
}\
\
# Autarkiegrad\
my $valA = (ReadingsVal("SMAInverter", "total_pac",0)*1000)-ReadingsVal("SMAEM", "Einspeisung_Wirkleistung",0);;\
my $calcVal = $valA / ($valA + ReadingsVal("SMAEM", "Bezug_Wirkleistung",0))*100;;\
fhem ("setreading StatusOG_conf AutarkyQuote ".($calcVal?sprintf("%.0f",$calcVal):"0"));;\
  \
# Eigenverbrauchsquote\
my $totalpac = ReadingsVal("SMAInverter", "total_pac",0)*1000;;\
if($totalpac > 0) {\
     my $valSelf = $totalpac - ReadingsVal("SMAEM", "Einspeisung_Wirkleistung",0);;\
     my $calSelf = $valSelf / $totalpac * 100;;\
     fhem ("setreading StatusOG_conf SelfConsumptionQuote ".sprintf("%.0f",$calSelf));;\
} else {\
     fhem ("setreading StatusOG_conf SelfConsumptionQuote -");;\
}\
}
attr N.PV.TotalConsumption.StatusOG_conf group StatusOG


# jetzt LED

define StatusOG_Spalte00_0 DOIF ([[StatusOG_conf:NIGHT]-[StatusOG_conf:DAY]])\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED39] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] < 10.0 and [StatusOG_conf:PV] < 10.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED39] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 800.0 and [StatusOG_conf:TotalConsumption] > 10.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED39] [StatusOG_conf:COLOR25])\
DOELSEIF ([StatusOG_conf:TotalConsumption] > 800.0)\
    (set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED39] [StatusOG_conf:COLOR30])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 400.0 and [StatusOG_conf:PV] <= 800.0 and [StatusOG_conf:PV] > 10.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED39] [StatusOG_conf:COLOR05]) \
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 800.0 and [StatusOG_conf:PV] > 800.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED39] [StatusOG_conf:COLOR10])\
DOELSE\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR00])
attr StatusOG_Spalte00_0 DbLogExclude .*
attr StatusOG_Spalte00_0 checkall event
attr StatusOG_Spalte00_0 event-min-interval .*:60
attr StatusOG_Spalte00_0 event-on-update-reading StatusOG_conf:PV,StatusOG_conf:TotalConsumption
attr StatusOG_Spalte00_0 group StatusOG

define StatusOG_Spalte00_1 DOIF ([[StatusOG_conf:NIGHT]-[StatusOG_conf:DAY]])\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED38] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] < 1600.0 and [StatusOG_conf:PV] < 1600.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED38] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 2400.0 and [StatusOG_conf:TotalConsumption] > 1600.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED38] [StatusOG_conf:COLOR25])\
DOELSEIF ([StatusOG_conf:TotalConsumption] > 2400.0)\
    (set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED38] [StatusOG_conf:COLOR30])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 1200.0 and [StatusOG_conf:PV] <= 2400.0 and [StatusOG_conf:PV] > 1600.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED38] [StatusOG_conf:COLOR05]) \
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 2400.0 and [StatusOG_conf:PV] > 2400.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED38] [StatusOG_conf:COLOR10])\
DOELSEStatusOG_conf
attr StatusOG_Spalte00_1 DbLogExclude .*
attr StatusOG_Spalte00_1 checkall event
attr StatusOG_Spalte00_1 event-min-interval .*:60
attr StatusOG_Spalte00_1 event-on-update-reading StatusOG_conf:PV,StatusOG_conf:TotalConsumption
attr StatusOG_Spalte00_1 group StatusOG

define StatusOG_Spalte00_2 DOIF ([[StatusOG_conf:NIGHT]-[StatusOG_conf:DAY]])\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED37] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] < 3200.0 and [StatusOG_conf:PV] < 3200.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED37] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 4000.0 and [StatusOG_conf:TotalConsumption] > 3200.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED37] [StatusOG_conf:COLOR25])\
DOELSEIF ([StatusOG_conf:TotalConsumption] > 4000.0)\
    (set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED37] [StatusOG_conf:COLOR30])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 3600.0 and [StatusOG_conf:PV] <= 4000.0 and [StatusOG_conf:PV] > 3200.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED37] [StatusOG_conf:COLOR05]) \
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 4000.0 and [StatusOG_conf:PV] > 4000.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED37] [StatusOG_conf:COLOR10])\
DOELSE\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED37] [StatusOG_conf:COLOR00])
attr StatusOG_Spalte00_2 DbLogExclude .*
attr StatusOG_Spalte00_2 checkall event
attr StatusOG_Spalte00_2 event-min-interval .*:60
attr StatusOG_Spalte00_2 event-on-update-reading StatusOG_conf:PV,StatusOG_conf:TotalConsumption
attr StatusOG_Spalte00_2 group StatusOG

define StatusOG_Spalte00_3 DOIF ([[StatusOG_conf:NIGHT]-[StatusOG_conf:DAY]])\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED36] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] < 4800.0 and [StatusOG_conf:PV] < 4800.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED36] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 5610.0 and [StatusOG_conf:TotalConsumption] > 4800.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED36] [StatusOG_conf:COLOR25])\
DOELSEIF ([StatusOG_conf:TotalConsumption] > 5610.0)\
    (set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED36] [StatusOG_conf:COLOR30])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 5200.0 and [StatusOG_conf:PV] <= 5610.0 and [StatusOG_conf:PV] > 4800.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED36] [StatusOG_conf:COLOR05]) \
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 5610.0 and [StatusOG_conf:PV] > 5610.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED36] [StatusOG_conf:COLOR15])\
DOELSE\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED36] [StatusOG_conf:COLOR00])
attr StatusOG_Spalte00_3 DbLogExclude .*
attr StatusOG_Spalte00_3 checkall event
attr StatusOG_Spalte00_3 event-min-interval .*:60
attr StatusOG_Spalte00_3 event-on-update-reading StatusOG_conf:PV,StatusOG_conf:TotalConsumption
attr StatusOG_Spalte00_3 group StatusOG

define StatusOG_Spalte00_4 DOIF ([[StatusOG_conf:NIGHT]-[StatusOG_conf:DAY]])\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED35] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] < 6400.0 and [StatusOG_conf:PV] < 6400.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED35] [StatusOG_conf:COLOR00])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 6800.0 and [StatusOG_conf:TotalConsumption] > 6400.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED35] [StatusOG_conf:COLOR25])\
DOELSEIF ([StatusOG_conf:TotalConsumption] > 7200.0)\
    (set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED35] [StatusOG_conf:COLOR30])\
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 6800.0 and [StatusOG_conf:PV] <= 7200.0 and [StatusOG_conf:PV] > 6400.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED35] [StatusOG_conf:COLOR05]) \
DOELSEIF ([StatusOG_conf:TotalConsumption] <= 7200.0 and [StatusOG_conf:PV] > 7200.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED35] [StatusOG_conf:COLOR15])\
DOELSE\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED35] [StatusOG_conf:COLOR00])
attr StatusOG_Spalte00_4 DbLogExclude .*
attr StatusOG_Spalte00_4 checkall event
attr StatusOG_Spalte00_4 event-min-interval .*:60
attr StatusOG_Spalte00_4 event-on-update-reading StatusOG_conf:PV,StatusOG_conf:TotalConsumption
attr StatusOG_Spalte00_4 group StatusOG


# Beispiel für Spalte 01 "in 1h"  ohne Verbrauch Prognose - (Spalte 02 - 05 "in 2h, in 4h, in 6h und in 8h")

define StatusOG_Spalte01 DOIF ([[StatusOG_conf:NIGHT]-[StatusOG_conf:DAY]])\
    (set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 10.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 800.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR05],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 1600.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 2400.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR05],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 3200.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 4000.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR05],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 4800.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR00],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 5610.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR05],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 6400.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR15],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR00])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 7200.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR15],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR05])\
DOELSEIF ([SMAPortal:L4_NextHour01_PvMeanPower] < 8000.0)\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR10],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR15],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR15])\
DOELSE\
(set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED30] [StatusOG_conf:COLOR20],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED31] [StatusOG_conf:COLOR20],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED32] [StatusOG_conf:COLOR20],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED33] [StatusOG_conf:COLOR20],set [StatusOG_conf:NAME] pixel [StatusOG_conf:LED34] [StatusOG_conf:COLOR20])
attr StatusOG_Spalte01 DbLogExclude .*
attr StatusOG_Spalte01 checkall event
attr StatusOG_Spalte01 event-min-interval .*:300
attr StatusOG_Spalte01 event-on-update-reading SMAPortal:L4_NextHour01_PvMeanPower
attr StatusOG_Spalte01 group StatusOG


Teil 3 folgt in kürze!

Gruß Sascha
FHEM und Homebridge im Dockercontainer auf einem RPi4!!!
(für: Wärmepumpe, Heizungsreglung, PV-Anlage, Wallbox, Kontrollierte Wohnraumlüftung, Beleuchtung, Energiekosten Monitoring, Wetterstation, Feinstraubsensor)

blueberry63

Hallo,

ich versuche mich gerade an der Installation von SMAPortal und bekomme beim laden des Moduls folgende Fehlermeldungen:

Zitat
syntax error at ./FHEM/76_SMAPortal.pm line 323, near "}{"
Global symbol "$color" requires explicit package name at ./FHEM/76_SMAPortal.pm line 324.
Global symbol "$htmldev" requires explicit package name at ./FHEM/76_SMAPortal.pm line 325.
Global symbol "$color" requires explicit package name at ./FHEM/76_SMAPortal.pm line 325.
Global symbol "$htmldev" requires explicit package name at ./FHEM/76_SMAPortal.pm line 329.
Global symbol "$color2" requires explicit package name at ./FHEM/76_SMAPortal.pm line 329.
Global symbol "$htmldev" requires explicit package name at ./FHEM/76_SMAPortal.pm line 332.
Global symbol "$htmldev" requires explicit package name at ./FHEM/76_SMAPortal.pm line 335.
syntax error at ./FHEM/76_SMAPortal.pm line 337, near "} else"
Can't use global @_ in "my" at ./FHEM/76_SMAPortal.pm line 348, near "= @_"

Woran kann das liegen?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

DS_Starter

Hi,

Zitatich versuche mich gerade an der Installation von SMAPortal und bekomme beim laden des Moduls folgende Fehlermeldungen:

Vermutlich nicht richt runtergeladen. Siehe weiter oben  die Beiträge #543 bzw.  #542.
Ansonsten meldst dich einfach nochmal, dann übertrage ich die Datei neu.

Grüße,
Heiko
Proxmox+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

blueberry63

Hallo Heiko,

ich bin mir ziemlich sicher, dass ich die Dateien richtig erstellt habe. Kann es an fehlenden Perl-Modulen liegen? FHEM läuft bei mir noch auf Debian Wheezy...

Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower