[gelöst] Datenbank Werte manipulieren

Begonnen von Nighthawk, 24 Juni 2024, 19:31:27

Vorheriges Thema - Nächstes Thema

Nighthawk

Hallo zusammen,

gibt es eine halbwegs einfache Möglichkeit die Werte in der Datenbank nachträglich zu verändern?
Es geht um Werte eines Gaszählers, die durch 10 dividiert werden sollen, also jeder einzelne Wert / 10.
Auf die Schnelle habe ich in der DBRep Wiki keine klare Möglichkeit gefunden, aber evtl. übersehe ich da etwas.

Der DB-Inhalt sieht wie folgt aus:
| 2023-05-20 09:15:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12313            | Gaszaehler_Longcount | 12313            | NULL |
| 2023-05-20 09:17:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12314            | Gaszaehler_Longcount | 12314            | NULL |
| 2023-05-20 09:20:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12315            | Gaszaehler_Longcount | 12315            | NULL |
| 2023-05-20 09:23:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12316            | Gaszaehler_Longcount | 12316            | NULL |
| 2023-05-20 09:25:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12317            | Gaszaehler_Longcount | 12317            | NULL |
| 2023-05-20 09:28:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12318            | Gaszaehler_Longcount | 12318            | NULL |
| 2023-05-20 09:30:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12319            | Gaszaehler_Longcount | 12319            | NULL |
| 2023-05-20 09:33:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12320            | Gaszaehler_Longcount | 12320            | NULL |
| 2023-05-20 09:36:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12321            | Gaszaehler_Longcount | 12321            | NULL |
| 2023-05-20 09:38:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12322            | Gaszaehler_Longcount | 12322            | NULL |
| 2023-05-20 09:41:30 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12323            | Gaszaehler_Longcount | 12323            | NULL |
| 2023-05-20 09:43:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12324            | Gaszaehler_Longcount | 12324            | NULL |
| 2023-05-20 09:46:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12325            | Gaszaehler_Longcount | 12325            | NULL |
| 2023-05-20 09:49:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12326            | Gaszaehler_Longcount | 12326            | NULL |
| 2023-05-20 09:51:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12327            | Gaszaehler_Longcount | 12327            | NULL |
| 2023-05-20 09:54:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12328            | Gaszaehler_Longcount | 12328            | NULL |
| 2023-05-20 09:57:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12329            | Gaszaehler_Longcount | 12329            | NULL |
| 2023-05-20 09:59:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12330            | Gaszaehler_Longcount | 12330            | NULL |
| 2023-05-20 10:02:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12331            | Gaszaehler_Longcount | 12331            | NULL |
| 2023-05-20 10:04:24 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12332            | Gaszaehler_Longcount | 12332            | NULL |

nach der Manipulation sollte dann folgendes in der DB stehen:

| 2023-05-20 09:15:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12313            | Gaszaehler_Longcount | 1231.3            | NULL |
| 2023-05-20 09:17:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12314            | Gaszaehler_Longcount | 1231.4            | NULL |
| 2023-05-20 09:20:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12315            | Gaszaehler_Longcount | 1231.5            | NULL |
| 2023-05-20 09:23:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12316            | Gaszaehler_Longcount | 1231.6            | NULL |
| 2023-05-20 09:25:27 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12317            | Gaszaehler_Longcount | 1231.7            | NULL |
| 2023-05-20 09:28:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12318            | Gaszaehler_Longcount | 1231.8            | NULL |
| 2023-05-20 09:30:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12319            | Gaszaehler_Longcount | 1231.9            | NULL |
| 2023-05-20 09:33:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12320            | Gaszaehler_Longcount | 1232.0            | NULL |
| 2023-05-20 09:36:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12321            | Gaszaehler_Longcount | 1232.1            | NULL |
| 2023-05-20 09:38:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12322            | Gaszaehler_Longcount | 1232.2            | NULL |
| 2023-05-20 09:41:30 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12323            | Gaszaehler_Longcount | 1232.3            | NULL |
| 2023-05-20 09:43:26 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12324            | Gaszaehler_Longcount | 1232.4            | NULL |
| 2023-05-20 09:46:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12325            | Gaszaehler_Longcount | 1232.5            | NULL |
| 2023-05-20 09:49:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12326            | Gaszaehler_Longcount | 1232.6            | NULL |
| 2023-05-20 09:51:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12327            | Gaszaehler_Longcount | 1232.7            | NULL |
| 2023-05-20 09:54:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12328            | Gaszaehler_Longcount | 1232.8            | NULL |
| 2023-05-20 09:57:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12329            | Gaszaehler_Longcount | 1232.9            | NULL |
| 2023-05-20 09:59:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12330            | Gaszaehler_Longcount | 1233.0            | NULL |
| 2023-05-20 10:02:25 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12331            | Gaszaehler_Longcount | 1233.1            | NULL |
| 2023-05-20 10:04:24 | AC     | ARDUCOUNTER | Gaszaehler_Longcount: 12332            | Gaszaehler_Longcount | 1233.2            | NULL |

DS_Starter

Der Setter

 changeValue

mit der Perl code enclosed in {"..."}-Option sollte das tun was du suchst. Also:

... new={"$VALUE = $VALUE/10"}

Denke an ein Backup oder vllt. hast du eine DB zum üben vorher.
Die Selektionskriterien (Device, Reading) richtig einstellen damit auch nur die richtigen Datensätze umgesetzt werden.
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

Nighthawk

Hallo Heiko,

danke, das ist genau das was ich gesucht habe :-)

Gruß
Alex