Hallo,
habe das Problem ich habe einmal Hausverbrauch : 1.00 kW wird dies ausgegeben für meine SOlaranlage wird aber Watt ausgegeben 1000 W.. wie kann ich die SOlaranlage umformatieren das wiese auch 1.00kW anzeigt ?
Kann ich dies direkt im Tabletui script oder muss da sim Filelog passieren?
Tabletui:
<div data-type="chart"
data-logdevice='["EnergieD","SOLAR.File"]'
data-columnspec='["7:Hausstrom.W:.*","4:AC.Power:.*"]'
data-style='["ftui l0fill","ftui l1fill"]'
data-ptype='["lines","histeps"]'
data-uaxis='["primary","secondary"]'
data-legend='["Verbrauch","Solar"]'
data-yunit="kW"
data-ytext="Verbrauch (kW)"
data-minvalue="auto"
data-maxvalue="auto"
data-yunit_sec="kw"
data-ytext_sec="Solar (kW)"
data-height="250"
data-yticks="auto"
data-minvalue_sec="auto"
data-maxvalue_sec="auto"
data-nofulldays="true"
data-cursorgroup="1"
data-scrollgroup="1"
data-xticks="auto">
</div>
Oder im SOLAR Device besser?
Internals:
DEF 192.168.2.51 pvserver MEINPW
NAME SOLAR
NR 624
STATE W: 3326 - Einspeisen (MPP)
TYPE KOSTALPIKO
VERSION 2.10
.attraggr:
.attrminint:
.userReadings:
HASH(0x4e238a8)
READINGS:
2018-11-06 12:06:47 AC.Power 3326
2018-11-06 12:06:47 AC.Power.Fast 3326
2018-11-06 12:06:47 Daily.Energy 5.43
2018-11-05 23:00:35 Daily.Energy.Last 6.72
2018-11-06 12:06:47 EnergyExpected 6.66
2018-11-06 11:37:16 Global.Radiation 1.8
2018-11-06 07:46:40 Mode Einspeisen (MPP)
2018-11-06 07:45:42 ModeNum 9
2018-11-06 11:55:48 Total.Energy 448055
2018-11-06 11:37:16 UV.Index 2
2018-11-06 12:06:47 generator.1.current 5.59
2018-11-06 12:06:47 generator.1.voltage 623
2018-11-06 12:06:47 generator.2.current 0.02
2018-11-06 12:06:47 generator.2.voltage 623
2018-11-06 12:06:47 output.1.power 1103
2018-11-06 12:06:47 output.1.voltage 228
2018-11-06 12:06:47 output.2.power 1112
2018-11-06 12:06:47 output.2.voltage 229
2018-11-06 12:06:47 output.3.power 1111
2018-11-06 12:06:47 output.3.voltage 229
2018-11-06 12:00:49 sensor.1 0.00
2018-11-06 12:04:49 sensor.2 0.00
2018-11-06 12:06:47 sensor.3 0.01
2017-10-10 15:05:06 sensor.4 9.99
2018-11-06 12:06:47 state W: 3326 - Einspeisen (MPP)
2018-11-06 11:37:16 sunshine.duration 50
helper:
GRHour 25
Host 192.168.2.51
Pass MEINPW
TimerGR SOLAR.GR
TimerGRInterval 3600
TimerInterval 60
TimerStatus SOLAR.STATUS
User pvserver
delayCounter 0
Attributes:
GR.Interval 3600
GR.Link http://www.proplanta.de/Wetter/Schwalmtal+%28Niederrhein%29-Wetter-Heute.html
delay 60
room STROM
userReadings EnergyExpected { return ReadingsVal("SOLAR","Global.Radiation",0)*37*0.10;;}
verbose 2
Es gibt verschiedene Möglichkeiten:
1. Du definierst ein Userreading, in welchem Du den Wert des Readings, das den Watt Wert enthält, durch tausend dividierst.
attr SOLAR userreading AC.powerKW:AC.Power{ReadingsVal($NAME,'AC.Power','0')/1000;}
In diesem Fall wird dann ein zusätzlicher Wert mit den Kilowatt Angaben ins Logfile geschrieben (vorausgesetzt Du hast das Log nicht entsprechend über RegEx eingeschränkt. Im Chart musst Du dann statt AC.Power in der Columnspec AC.PowerKW eintragen.
2. Du machst die Umrechnung direkt in der Columnspec. Dann werden in FHEM keine zusätzlichen Dinge erzeugt, sonder die Umrechnung passiert beim Abholen der Werte im FHEM. Die Columnspect müsste dann in etwa so aussehen:
data-columnspec='["7:Hausstrom.W:.*","4:AC.Power:0:$val=($fld[3]*/1000)"]'
Beides hat Vor- und Nachteile, ich würde 2. empfehlen.
Danke sowas wie data-columnspec='["7:Hausstrom.W:.*","4:AC.Power:0:$val=($fld[3]*/1000)"]'
hab ich mir da vorgestellt leider kann er keinen Wert auslesen ... hab schon bisschen gespielt .* usw. aber bekomme es nicht hin Log schaut so aus:
2018-11-06_13:45:03 SOLAR AC.Power: 2875
Da hatte ich noch einen Fehler, muss natürlich nicht */ sondern nur / heißen.
data-columnspec='["7:Hausstrom.W:.*","4:AC.Power:0:$val=($fld[3]/1000)"]'
Danke und das Userreading ? Ich habe da schon etwas drin stehen
userReadings EnergyExpected { return ReadingsVal("SOLAR","Global.Radiation",0)*37*0.10;;}
mehrere userreadings werden einfach mit ',' getrennt hintereinander gehängt (siehe commandref). Aber Du brauchst ja nur das eine (userreading) oder das andere (columnspec).
Jep das hatte ich rausgefunden aber es taucht nichts auf
so schaut es aktuell aus:
EnergyExpected { return ReadingsVal("SOLAR","Global.Radiation",0)*37*0.10;;},
AC.powerKW:AC.Power{ReadingsVal($NAME,'AC.Power','0')/1000;}
Ich weiss aber ich habe noch ein Label in Tabletui daher will ich es doch per userreading machen
Müsste eigentlich gehen. Das neue Userreading erscheint allerdings erst, wenn sich auch der entsprechende Event auftritt (wenn sich also das Reading AC.Power ändert).
hmm leider nicht auch kein Fehler im log :(
Internals:
DEF 192.168.2.51 pvserver meinpw
NAME SOLAR
NR 624
STATE W: 2579 - Einspeisen (MPP)
TYPE KOSTALPIKO
VERSION 2.10
.attraggr:
.attrminint:
.userReadings:
HASH(0x5341ad0)
READINGS:
2018-11-07 12:54:22 AC.Power 2579
2018-11-07 12:54:22 AC.Power.Fast 2579
2018-11-07 12:54:22 Daily.Energy 7.04
2018-11-06 23:00:18 Daily.Energy.Last 14.39
2018-11-07 12:54:22 EnergyExpected 4.44
2018-11-07 12:54:22 Global.Radiation 1.2
2018-11-07 07:44:00 Mode Einspeisen (MPP)
2018-11-07 07:44:00 ModeNum 9
2018-11-07 12:32:57 Total.Energy 448071
2018-11-07 12:54:22 UV.Index 2
2018-11-07 12:54:22 generator.1.current 4.17
2018-11-07 12:54:22 generator.1.voltage 649
2018-11-07 12:54:22 generator.2.current 0.01
2018-11-07 12:54:22 generator.2.voltage 649
2018-11-07 12:54:22 output.1.power 849
2018-11-07 12:50:59 output.1.voltage 228
2018-11-07 12:54:22 output.2.power 866
2018-11-07 12:54:22 output.2.voltage 229
2018-11-07 12:54:22 output.3.power 864
2018-11-07 12:43:58 output.3.voltage 229
2018-11-07 12:54:22 sensor.1 0.00
2018-11-07 12:54:22 sensor.2 0.00
2018-11-07 12:45:58 sensor.3 0.00
2017-10-10 15:05:06 sensor.4 9.99
2018-11-07 12:54:22 state W: 2579 - Einspeisen (MPP)
2018-11-07 12:54:22 sunshine.duration 25
helper:
GRHour 25
Host 192.168.2.51
Pass meinpw
TimerGR SOLAR.GR
TimerGRInterval 3600
TimerInterval 60
TimerStatus SOLAR.STATUS
User pvserver
delayCounter 0
Attributes:
GR.Interval 3600
GR.Link http://www.proplanta.de/Wetter/Schwalmtal+%28Niederrhein%29-Wetter-Heute.html
delay 60
room STROM
userReadings EnergyExpected { return ReadingsVal("SOLAR","Global.Radiation",0)*37*0.10;;},
AC.powerKW:AC.Power{ReadingsVal($NAME,'AC.Power','0')/1000;}
verbose 2
was passiert, wenn Du es genauso wie beim ersten machst. Also:
attr SOLAR userreadings EnergyExpected { return ReadingsVal("SOLAR","Global.Radiation",0)*37*0.10;;}, AC.powerKW:AC.Power { return ReadingsVal($NAME,'AC.Power','0')/1000;;}
hmm hab ich auch schon mal versucht hab gerade nochmal versucht auch shutdown restart. Werte ändern sich aber das reading taucht nicht auf ... komisch
Ich habe es jetzt mal mit einem Dummy Device bei mir probiert. Es scheint irgendwie Probleme mit dem Format mit ':' zu geben. Probier mal:
attr SOLAR userreadings EnergyExpected { return ReadingsVal($NAME,"Global.Radiation",0)*37*0.10;;}, AC.powerKW { return ReadingsVal($NAME,'AC.Power','0')/1000;;}
Vielen Dank so klappt es :)