Autor Thema: [gelöst] unerwartete Ergebnisse bei DBrep diffvalue  (Gelesen 681 mal)

Offline Nighthawk

  • Full Member
  • ***
  • Beiträge: 446
Antw:unerwartete Ergebnisse bei DBrep diffvalue
« Antwort #15 am: 05 Dezember 2022, 20:30:49 »
Hallo Heiko,

danke dafür, hab ich eingespielt und die ersten Tests gemacht, soweit sieht es ganz gut aus. Morgen werde ich noch etwas intensiver testen, bei dem Stromzählerwerten (OBIS) hatte ich seltsame Ergebnisse gehabt, das muss ich mir nochmal genauer anschauen.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Online ch.eick

  • Hero Member
  • *****
  • Beiträge: 2783
Antw:unerwartete Ergebnisse bei DBrep diffvalue
« Antwort #16 am: 07 Dezember 2022, 09:36:09 »
Hallo Heiko,
sorry, dass es etwas gedauert hat.

Ich habe es dann jetzt mal im original Oracle MySQL Docker Container getestet und der Syntax funktioniert einwandfrei.
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.28    |
+-----------+
mysql> set @V:= 0, @diff:= 0, @diffTotal:= 0, @RB:= 1;
Query OK, 0 rows affected (0.00 sec)

mysql> select @V, @diff, @diffTotal, @RB;
+------+-------+------------+------+
| @V   | @diff | @diffTotal | @RB  |
+------+-------+------------+------+
|    0 |     0 |          0 |    1 |
+------+-------+------------+------+


mysql>
  SELECT TIMESTAMP,
       VALUE,
       if(VALUE-@V < 0 OR @RB = 1 , @diff:= 0, @diff:= VALUE-@V ) as DIFF,
   @V:= VALUE as VALUEBEFORE,
   @RB:= '0' as RBIT
  FROM history
  WHERE ( DEVICE = 'WR_0_KSEM' )
    AND ( READING = 'Active_energy+' )
AND TIMESTAMP >= '2022-11-29'
AND TIMESTAMP < '2022-11-30'
  ORDER BY TIMESTAMP;

+---------------------+-------+------+-------------+------+
| TIMESTAMP           | VALUE | DIFF | VALUEBEFORE | RBIT |
+---------------------+-------+------+-------------+------+
| 2022-11-29 00:29:54 | 7770  |    0 | 7770        | 0    |
| 2022-11-29 04:35:55 | 7771  |    1 | 7771        | 0    |
| 2022-11-29 08:27:56 | 7772  |    1 | 7772        | 0    |
<snip>
| 2022-11-29 19:26:11 | 7786  |    1 | 7786        | 0    |
| 2022-11-29 22:50:11 | 7787  |    1 | 7787        | 0    |
+---------------------+-------+------+-------------+------+

mysql>
  SELECT sum(DIFF)
  FROM (
    SELECT TIMESTAMP,
           VALUE,
           if(VALUE-@V < 0 OR @RB = 1 , @diff:= 0, @diff:= VALUE-@V ) as DIFF,
       @V:= VALUE as VALUEBEFORE,
       @RB:= '0' as RBIT
    FROM history
    WHERE ( DEVICE = 'WR_0_KSEM' )
      AND ( READING = 'Active_energy+' )
  AND TIMESTAMP >= '2022-11-29'
  AND TIMESTAMP < '2022-11-30'
    ORDER BY TIMESTAMP
  ) SUM ;
+-----------+
| sum(DIFF) |
+-----------+
|        17 |
+-----------+

Falls Du noch weitere Tests haben möchtest, dann melde Dich einfach.

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8788
Antw:unerwartete Ergebnisse bei DBrep diffvalue
« Antwort #17 am: 07 Dezember 2022, 09:48:41 »
Danke Christian,

das bestätigt eigentlich meine weiter oben geäußerte Vermutung.
Die Syntax läuft ja schon jahrelang einwandfrei, wird aber wohl bei den neueren MariaDB Releases nicht mehr so unterstützt wie
es scheint.
Wie dem auch sein, ich habe jetzt den Standardcode für diffValue auch für MariaDB drin und das passt auch.

Aber interessant ist es trotzdem ...

LG,
Heiko
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Online ch.eick

  • Hero Member
  • *****
  • Beiträge: 2783
Antw:unerwartete Ergebnisse bei DBrep diffvalue
« Antwort #18 am: 07 Dezember 2022, 10:09:00 »
Die Syntax läuft ja schon jahrelang einwandfrei, wird aber wohl bei den neueren MariaDB Releases nicht mehr so unterstützt wie
es scheint.
Wie dem auch sein, ich habe jetzt den Standardcode für diffValue auch für MariaDB drin und das passt auch.

Aber interessant ist es trotzdem ...
Hallo Heiko,
ich mag es ja, wenn man das Original direkt verwenden kann :-)
Im Oracle MySQL sind berits diverse weitere Konfigurationen im laufe der Jahre geändert worden, die die Sicherheit erhöhen sollen.
So gehen die Versionen dann immer weiter auseinander und es gibt natürlich auch zeitliche Verzögerungen, bis das alles nachgezogen
worden ist.
Da der Container jedoch nur für 64 Bit bereitgestellt wird ist es natürlich eine grundlegende Entscheidung, wenn man es auf einem RPI
oder ähnichem System laufen lassen möchte. Bei mir läuft es nun seit ca. 2 Jahren stabil auf einem RPI 4 mit 64 Bit OS unter Docker. Das
hat mir bereits sehr viel Zeit gespart und ich kann es nur empfehlen.

VG    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline Nighthawk

  • Full Member
  • ***
  • Beiträge: 446
Antw:unerwartete Ergebnisse bei DBrep diffvalue
« Antwort #19 am: 07 Dezember 2022, 15:33:16 »
Hallo Heiko,

auch von meiner Seite die positive Rückmeldung, läuft soweit ohne Probleme.

Die von mir angesprochenen Auffälligkeiten liegen an dem DB Inhalt, irgendwie sind in der DB "Wackelige" Daten enthalten, da muss ich wohl mal aufräumen..

Danke nochmal und Gruß
Alex

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8788
Antw:unerwartete Ergebnisse bei DBrep diffvalue
« Antwort #20 am: 07 Dezember 2022, 17:06:10 »
Ist eingecheckt und morgen früh im Update.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

 

decade-submarginal