Neueste Beiträge

#11
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 07 Juli 2025, 16:31:04
Das wäre für die Energiesummenbildung relevant. Sonst fehlen diese Anteile. Wenn outtotal fehlt, kann dein Hausverbrauch negativ werden da:

Verbrauch (Wh) = PV-Erzeugung + sonstige Erzeugung - Netzeinspeisung + Netzbezug - Batterieladung + Batterieentladung

bzw. Wiki. Da steht es drin wie gerechnet wird.
#12
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von tomcat.x - 07 Juli 2025, 16:25:29
Zitat von: DS_Starter am 07 Juli 2025, 16:15:16Es sind also Differenzen da intotal und outtotal stetig hochzählen sollten.

Ah, ok. Die habe ich nicht. Nur pin und pout. Also  intotal und outtotal habe ich nicht nur nicht definiert, sondern die werden so auch nicht fertig geliefert. Aber ich schaue noch mal, Wäre schon interessant.
#13
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 07 Juli 2025, 16:18:55
Hier nochmal zum Wide Character Fehler:

ZitatKann das Zeichen '...' den Wide-Character-Fehler verursachen?
Ein normaler ASCII-Ziffern-8 (Codepunkt U+0038) löst keinen Wide-Character-Fehler aus, denn er liegt im Bereich 0–255 und passt in ein einzelnes Byte.

Der gezeigte Ausdruck nutzt jedoch typografische Anführungszeichen:

* Die Zeichen ' und ' sind nicht das einfache ASCII-Apostroph (0x27), sondern Unicode-Codepunkte U+2018 (LEFT SINGLE QUOTATION MARK) und U+2019 (RIGHT SINGLE QUOTATION MARK).

* Diese Codepunkte liegen weit über 255 und werden in UTF-8 als Mehr-Byte-Sequenz kodiert.

Solche Zeichen in einem als Unicode-String markierten Perl-Scalar, der ohne UTF-8-Ausgabe-Layer (binmode) ausgegeben wird, führen genau zum ,,Wide character in print"-Fehler.

Jetzt haben wir es.  Im Modul habe ich natürlich alle Vorkommen eliminiert.
#14
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 07 Juli 2025, 16:15:16
ZitatMeine eigentliche Frage bezieht sich aber auf die BatIn und BatOut Werte. Die sind bei mir immer 0. Woraus bzw wie werden die denn berechnet?


Diese Werte werden pro Stunde berechnet und liest die Angaben aus den Schlüsselreadings (Batterie) intotal und outtotal. Es sind also Differenzen da intotal und outtotal stetig hochzählen sollten.
#15
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von tomcat.x - 07 Juli 2025, 16:06:29
Hallo Heiko,

hier meine Frage. Ich habe einige solcher Einträge im Log:

The calculated Energy consumption of the house is negative. This appears to be an error and is not saved. Check Readings _PVreal, _GridFeedIn, _GridConsumption, _BatIn_XX, _BatOut_XX of hour >24<
Da wollte ich jetzt mal versuchen, ob ich die weg bekomme. Vermutlich nur unterschiedliche Intervalle bei der Datenlieferung.

Meine eigentliche Frage bezieht sich aber auf die BatIn und BatOut Werte. Die sind bei mir immer 0. Woraus bzw wie werden die denn berechnet?

Viele Grüße
Thomas
#16
FHEM Development / Aw: Device-Name für FW_cmd mas...
Letzter Beitrag von JoWiemann - 07 Juli 2025, 15:59:52
Hallo Rudi,

hatte ich schon probiert. Funktioniert leider nicht.

Hier der Return-Wert des get:
<table border="8" cellspacing="20" cellpadding="20"><tr>
<td colspan="2">API Call: data.lua</td></tr>
<tr>
<td>Alias</td><td>Command</td>
</tr>
<tr>
<td><html><div id="button"><button id="alarm" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page alarm xhrId all&XHR=1')">alarm</button></div></html></td><td>xhr 1 lang de page alarm xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="callLock" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page callLock&XHR=1')">callLock</button></div></html></td><td>xhr 1 lang de page callLock</td></tr>
<tr>
<td><html><div id="button"><button id="chan" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page chan refresh nop&XHR=1')">chan</button></div></html></td><td>xhr 1 lang de page chan refresh nop</td></tr>
<tr>
<td><html><div id="button"><button id="dnsSrv" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page dnsSrv xhrId all&XHR=1')">dnsSrv</button></div></html></td><td>xhr 1 lang de page dnsSrv xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="docInfo" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page docInfo xhrId all no_sidrenew nop&XHR=1')">docInfo</button></div></html></td><td>xhr 1 lang de page docInfo xhrId all no_sidrenew nop</td></tr>
<tr>
<td><html><div id="button"><button id="dslOv" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page dslOv xhrId all&XHR=1')">dslOv</button></div></html></td><td>xhr 1 lang de page dslOv xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="energy" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page energy xhrId all&XHR=1')">energy</button></div></html></td><td>xhr 1 lang de page energy xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="environment" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page chan xhrId environment useajax 1&XHR=1')">environment</button></div></html></td><td>xhr 1 lang de page chan xhrId environment useajax 1</td></tr>
<tr>
<td><html><div id="button"><button id="kidPro" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page kidPro&XHR=1')">kidPro</button></div></html></td><td>xhr 1 lang de page kidPro</td></tr>
<tr>
<td><html><div id="button"><button id="led" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page led xhrId all&XHR=1')">led</button></div></html></td><td>xhr 1 lang de page led xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="log_filter" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page log xhrId log filter&XHR=1')">log_filter</button></div></html></td><td>xhr 1 lang de page log xhrId log filter</td></tr>
<tr>
<td><html><div id="button"><button id="log_filter_fon" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page log xhrId log filter fon&XHR=1')">log_filter_fon</button></div></html></td><td>xhr 1 lang de page log xhrId log filter fon</td></tr>
<tr>
<td><html><div id="button"><button id="log_filter_sys" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page log xhrId log filter sys&XHR=1')">log_filter_sys</button></div></html></td><td>xhr 1 lang de page log xhrId log filter sys</td></tr>
<tr>
<td><html><div id="button"><button id="mobile" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page mobile xhrId all&XHR=1')">mobile</button></div></html></td><td>xhr 1 lang de page mobile xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="netDev" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page netDev xhrId all&XHR=1')">netDev</button></div></html></td><td>xhr 1 lang de page netDev xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="netMoni" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page netMoni xhrId all&XHR=1')">netMoni</button></div></html></td><td>xhr 1 lang de page netMoni xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="netSet" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page netSet xhrId all&XHR=1')">netSet</button></div></html></td><td>xhr 1 lang de page netSet xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="save_energy" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page save_energy xhrId all&XHR=1')">save_energy</button></div></html></td><td>xhr 1 lang de page save_energy xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="sh_dev" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page sh_dev xhrid all&XHR=1')">sh_dev</button></div></html></td><td>xhr 1 lang de page sh_dev xhrid all</td></tr>
<tr>
<td><html><div id="button"><button id="sh_matter" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page sh_matter xhrId all&XHR=1')">sh_matter</button></div></html></td><td>xhr 1 lang de page sh_matter xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="shareVpn" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page shareVpn xhrId all&XHR=1')">shareVpn</button></div></html></td><td>xhr 1 lang de page shareVpn xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="shareWireguard" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page shareWireguard xhrId all&XHR=1')">shareWireguard</button></div></html></td><td>xhr 1 lang de page shareWireguard xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="trafapp" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page trafapp xhrId all&XHR=1')">trafapp</button></div></html></td><td>xhr 1 lang de page trafapp xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="usbOv" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page usbOv xhrId all&XHR=1')">usbOv</button></div></html></td><td>xhr 1 lang de page usbOv xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="wGuest" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page wGuest xhrId all&XHR=1')">wGuest</button></div></html></td><td>xhr 1 lang de page wGuest xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="wKey" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page wKey xhrId all&XHR=1')">wKey</button></div></html></td><td>xhr 1 lang de page wKey xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="wlanmesh" onclick="JS:FW_cmd(FW_root+'?cmd=get FritzBox luaData xhr 1 lang de page wlanmesh xhrId all&XHR=1')">wlanmesh</button></div></html></td><td>xhr 1 lang de page wlanmesh xhrId all</td></tr>
</table>

Und hier, was ich im Edge in den Entwicklungstools sehe:
<table border="8" cellspacing="20" cellpadding="20"><tr>
<td colspan="2">API Call: data.lua</td></tr>
<tr>
<td>Alias</td><td>Command</td>
</tr>
<tr>
<td><html><div id="button"><button id="alarm" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page alarm xhrId all&XHR=1')">alarm</button></div></html></td><td>xhr 1 lang de page alarm xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="callLock" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page callLock&XHR=1')">callLock</button></div></html></td><td>xhr 1 lang de page callLock</td></tr>
<tr>
<td><html><div id="button"><button id="chan" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page chan refresh nop&XHR=1')">chan</button></div></html></td><td>xhr 1 lang de page chan refresh nop</td></tr>
<tr>
<td><html><div id="button"><button id="dnsSrv" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page dnsSrv xhrId all&XHR=1')">dnsSrv</button></div></html></td><td>xhr 1 lang de page dnsSrv xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="docInfo" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page docInfo xhrId all no_sidrenew nop&XHR=1')">docInfo</button></div></html></td><td>xhr 1 lang de page docInfo xhrId all no_sidrenew nop</td></tr>
<tr>
<td><html><div id="button"><button id="dslOv" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page dslOv xhrId all&XHR=1')">dslOv</button></div></html></td><td>xhr 1 lang de page dslOv xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="energy" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page energy xhrId all&XHR=1')">energy</button></div></html></td><td>xhr 1 lang de page energy xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="environment" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page chan xhrId environment useajax 1&XHR=1')">environment</button></div></html></td><td>xhr 1 lang de page chan xhrId environment useajax 1</td></tr>
<tr>
<td><html><div id="button"><button id="kidPro" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page kidPro&XHR=1')">kidPro</button></div></html></td><td>xhr 1 lang de page kidPro</td></tr>
<tr>
<td><html><div id="button"><button id="led" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page led xhrId all&XHR=1')">led</button></div></html></td><td>xhr 1 lang de page led xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="log_filter" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page log xhrId log filter&XHR=1')">log_filter</button></div></html></td><td>xhr 1 lang de page log xhrId log filter</td></tr>
<tr>
<td><html><div id="button"><button id="log_filter_fon" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page log xhrId log filter fon&XHR=1')">log_filter_fon</button></div></html></td><td>xhr 1 lang de page log xhrId log filter fon</td></tr>
<tr>
<td><html><div id="button"><button id="log_filter_sys" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page log xhrId log filter sys&XHR=1')">log_filter_sys</button></div></html></td><td>xhr 1 lang de page log xhrId log filter sys</td></tr>
<tr>
<td><html><div id="button"><button id="mobile" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page mobile xhrId all&XHR=1')">mobile</button></div></html></td><td>xhr 1 lang de page mobile xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="netDev" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page netDev xhrId all&XHR=1')">netDev</button></div></html></td><td>xhr 1 lang de page netDev xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="netMoni" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page netMoni xhrId all&XHR=1')">netMoni</button></div></html></td><td>xhr 1 lang de page netMoni xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="netSet" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page netSet xhrId all&XHR=1')">netSet</button></div></html></td><td>xhr 1 lang de page netSet xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="save_energy" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page save_energy xhrId all&XHR=1')">save_energy</button></div></html></td><td>xhr 1 lang de page save_energy xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="sh_dev" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page sh_dev xhrid all&XHR=1')">sh_dev</button></div></html></td><td>xhr 1 lang de page sh_dev xhrid all</td></tr>
<tr>
<td><html><div id="button"><button id="sh_matter" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page sh_matter xhrId all&XHR=1')">sh_matter</button></div></html></td><td>xhr 1 lang de page sh_matter xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="shareVpn" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page shareVpn xhrId all&XHR=1')">shareVpn</button></div></html></td><td>xhr 1 lang de page shareVpn xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="shareWireguard" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page shareWireguard xhrId all&XHR=1')">shareWireguard</button></div></html></td><td>xhr 1 lang de page shareWireguard xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="trafapp" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page trafapp xhrId all&XHR=1')">trafapp</button></div></html></td><td>xhr 1 lang de page trafapp xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="usbOv" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page usbOv xhrId all&XHR=1')">usbOv</button></div></html></td><td>xhr 1 lang de page usbOv xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="wGuest" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page wGuest xhrId all&XHR=1')">wGuest</button></div></html></td><td>xhr 1 lang de page wGuest xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="wKey" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page wKey xhrId all&XHR=1')">wKey</button></div></html></td><td>xhr 1 lang de page wKey xhrId all</td></tr>
<tr>
<td><html><div id="button"><button id="wlanmesh" onclick="JS:FW_cmd(FW_root+'?cmd=get <a href='/fhem?detail=FritzBox'>FritzBox</a> luaData xhr 1 lang de page wlanmesh xhrId all&XHR=1')">wlanmesh</button></div></html></td><td>xhr 1 lang de page wlanmesh xhrId all</td></tr>
</table>

PS: die ganze Tabelle mit <html>...</html> zu klammern hilft leider auch nicht
Grüße Jörg
#17
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 07 Juli 2025, 15:58:08
Na sicher :)
#18
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von tomcat.x - 07 Juli 2025, 15:49:57
Damit habe mich mir jetzt eine Frage verdient oder? Und wenn ich sage, dass es noch (16?) weitere Zeilen damit gibt, vielleicht eine 2.  ;D
#19
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 07 Juli 2025, 15:25:50
Ah, guter Hinweis.  :)  Jetzt wo du es sagst sehe ich es auch (nutze Notepad++).
#20
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von tomcat.x - 07 Juli 2025, 15:21:48
Zitat von: DS_Starter am 07 Juli 2025, 11:51:58Warum dieser Text?

Hallo Heiko,

es dürften die einfachen Anführungszeichen um reductionState gewesen sein. Im Notepad++ sieht man den Unterschied sofort. Es sind sogar 2 verschiedene, öffnend und schließend. Wenn mein Hex-Editor nicht lügt und beim Kopieren nichts schiefgegangen ist, waren es statt ASCII 27 dort 91 und 92, nur im englischen Text.

Viele Grüße
Thomas