Zitat von: Marko1976 am 27 Februar 2026, 10:45:24Allerdings liefert das Gerät lediglich den aktuellen Stromverbrauch und den Gesamten bisherigen Verbrauch.
Zur Not wäre ich auch bereit mir z.b. den Monatsverbrauch anhand des Gesamtverbrauchs selbst zu errechnen und abzuspreichern oder in ein Log zu schrieben. Eleganter und genauer wäre es natürlich wenn diese Daten ebenfalls direkt vom Zähler kommen würden.
Zitat von: JWRu am 26 Februar 2026, 21:39:32Ich habe es ausprobiert - ohne Leerzeichen funktioniert es.OK, ein Anfang... Leerzeichen in "-" zu verwandeln.
Zitat von: JWRu am 26 Februar 2026, 21:39:32Allerdings reicht jetzt der Platz in meiner Tabelle nicht mehr, weil die erste Spalte zu breit wird.Ist das Widget hierfür nicht frei parametrierbar?
Zitat von: JWRu am 26 Februar 2026, 21:39:32Ich behalte einfach mein Userreading bei - du musst dich nicht verknoten, um meinen Spezialfall zu integrieren.Das Widget ist der größte "Kunde" dieses Moduls. Daher habe ich schon Interesse, dass es funktioniert.
Zitat von: Freee84neu am 27 Februar 2026, 01:28:09was mache ich falsch ?

Zitat von: DS_Starter am 28 Februar 2026, 09:39:47Im Modul (Perl) selbst wird kein SQL-Syntaxcheck durchgeführt. Die Meldung (DBD::mysql::st...) wird direkt vom Datenbanktreiber (DBD Perl-Modul) zurückgeliefert.
Möglicherweise wäre es zielführend im CPAN zu forschen (Version des DBD) bzw. auf DBD::MariaDB umzustellen.
Die eingesetzten Versionen siehst du im Configcheck des zugeordneten DbLog-Devices.
DBD::DBM, DBD::ExampleP, DBD::File, DBD::Gofer, DBD::MariaDB, DBD::Mem, DBD::Pg, DBD::Proxy, DBD::SQLite, DBD::Sponge, DBD::mysql
Result of version check
Used Perl version: 5.38.5
Used DBI (Database independent interface) version: 1.647
Used DBD (Database driver) version mysql: 4.051
Used DbLog version: 5.11.0
Your local DbLog module is up to date.
Rating:
Recommendation: Update of DbLog is not needed.
Your DBD version fulfills UTF8 support, no need to update DBD.

-- INSERT INTO history (TIMESTAMP, DEVICE, TYPE, READING, VALUE)
WITH price AS (
SELECT
TIMESTAMP AS interval_start,
VALUE AS price_ct_per_kWh -- z.B. Cent/kWh
FROM history
WHERE DEVICE = 'Stromboerse_connect'
AND READING = 'fc0_total'
AND TIMESTAMP >= CURDATE()
AND TIMESTAMP < CURDATE() + INTERVAL 1 DAY
),
consumption AS (
SELECT
interval_start,
CASE
WHEN interval_start = CURDATE() THEN 0
WHEN VALUE < LAG(VALUE) OVER (ORDER BY interval_start) THEN NULL
ELSE VALUE - LAG(VALUE) OVER (ORDER BY interval_start)
END AS kWh_15min
FROM (
SELECT
FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(TIMESTAMP) / 900) * 900) AS interval_start,
VALUE,
ROW_NUMBER() OVER (
PARTITION BY FLOOR(UNIX_TIMESTAMP(TIMESTAMP) / 900)
ORDER BY TIMESTAMP DESC
) AS rn
FROM history
WHERE DEVICE = 'WR_0_KSEM'
AND READING = 'Active_energy+'
AND TIMESTAMP >= CURDATE() - INTERVAL 15 MINUTE
) t
WHERE rn = 1
AND interval_start >= CURDATE()
AND interval_start < CURDATE() + INTERVAL 1 DAY
)
SELECT *
FROM (
SELECT
c.interval_start AS TIMESTAMP,
'Stromboerse_connect' AS DEVICE,
'cost' AS TYPE,
'nodes_cost' AS READING,
ROUND(COALESCE(c.kWh_15min,0) * COALESCE(p.price_ct_per_kWh,0) / 100, 6 ) AS VALUE
FROM consumption c
LEFT JOIN price p
ON p.interval_start = c.interval_start
) AS new_values
-- ON DUPLICATE KEY UPDATE
-- VALUE = new_values.VALUE;