first commit

This commit is contained in:
Mark Kors
2025-11-02 10:41:41 +01:00
commit f820ca94a9
3 changed files with 747 additions and 0 deletions

135
README.md Normal file
View File

@@ -0,0 +1,135 @@
# Import naar Bestaande Database
Aangepast importscript voor je bestaande `alfen` database met `transactions` tabel.
## 📋 Wat doet het script?
Het script importeert transacties uit je CSV bestand naar de bestaande `transactions` tabel:
- Leest `txstart2` regels (begin van laadsessie)
- Leest `txstop2` regels (einde van laadsessie)
- Slaat alleen complete transacties op (met start én stop)
- Slaat `mv` (meter value) regels over - deze worden niet in de tabel opgeslagen
## 🚀 Gebruik
### 1. Pas database credentials aan
Open `import_to_existing_db.py` en wijzig regel 12-18:
```python
DB_CONFIG = {
'host': 'localhost',
'user': 'your_username', # Jouw MySQL gebruiker
'password': 'your_password', # Jouw MySQL wachtwoord
'database': 'alfen', # Database naam (default: alfen)
'charset': 'utf8mb4'
}
```
### 2. Installeer Python dependency (als nog niet gedaan)
```bash
pip3 install mysql-connector-python
```
### 3. Voer import uit
```bash
python3 import_to_existing_db.py VAN_01971_Transactions.csv
```
## 📊 Output Voorbeeld
```
============================================================
Charging Station Data Importer
Import naar bestaande 'transactions' tabel
============================================================
✓ Database verbinding succesvol
=== Import gestart: VAN_01971_Transactions.csv ===
→ Transactie 0x0000000000000001 gestart (wacht op stop...)
✓ Transactie 0x0000000000000001 opgeslagen (22.049 kWh)
→ Transactie 0x000000001150e1e3 gestart (wacht op stop...)
✓ Transactie 0x000000001150e1e3 opgeslagen (0.000 kWh)
→ Transactie 0x000000006905d45d gestart (wacht op stop...)
✓ Transactie 0x000000006905d45d opgeslagen (47.830 kWh)
=== Import voltooid ===
✓ Totaal regels verwerkt: 354
✓ Transacties gestart: 3
✓ Transacties gestopt: 3
✓ Transacties opgeslagen: 3
=== Database Statistieken ===
Totaal transacties in database: 686
Totaal verbruik: 15234.567 kWh
Laatste transactie:
ID: 0x000000006905d45d
Periode: 2025-10-31 16:40:37 - 2025-11-01 07:14:15
Verbruik: 47.830 kWh
✓ Database verbinding gesloten
```
## ✅ Functies
- **Duplicaat detectie**: Controleert of transactie_id al bestaat
- **Complete transacties**: Slaat alleen op als zowel start als stop bekend zijn
- **Automatische berekening**: `total_kWh` wordt automatisch berekend
- **Error handling**: Duidelijke foutmeldingen bij problemen
- **Statistieken**: Toont overzicht na import
## ⚠️ Belangrijke Punten
1. **Meter values worden genegeerd**: De `mv:` regels uit je CSV worden niet opgeslagen in de transactions tabel. Als je deze ook wil bewaren, laat het me weten en ik maak een aparte tabel voor meterwaarden.
2. **Actieve transacties**: Als een transactie alleen een `txstart2` heeft maar nog geen `txstop2`, wordt deze NIET opgeslagen (staat als "pending").
3. **Duplicaten**: Als een `transaction_id` al bestaat in de database, wordt deze overgeslagen.
## 🔍 Handige Queries
Na import kun je bijvoorbeeld:
```sql
-- Laatste 10 transacties
SELECT transaction_id, start_timestamp, stop_timestamp, total_kWh, card
FROM transactions
ORDER BY stop_timestamp DESC
LIMIT 10;
-- Totaal verbruik per kaart
SELECT card,
COUNT(*) as aantal_sessies,
SUM(total_kWh) as totaal_kWh,
AVG(total_kWh) as gemiddeld_kWh
FROM transactions
GROUP BY card
ORDER BY totaal_kWh DESC;
-- Verbruik per dag
SELECT DATE(start_timestamp) as datum,
COUNT(*) as aantal_sessies,
SUM(total_kWh) as totaal_kWh
FROM transactions
GROUP BY DATE(start_timestamp)
ORDER BY datum DESC;
-- Sessies langer dan 8 uur
SELECT transaction_id,
start_timestamp,
stop_timestamp,
total_kWh,
TIMESTAMPDIFF(HOUR, start_timestamp, stop_timestamp) as uren
FROM transactions
WHERE TIMESTAMPDIFF(HOUR, start_timestamp, stop_timestamp) > 8
ORDER BY uren DESC;
```
## 💡 Meterwaarden Ook Opslaan?
Als je de tussentijdse meterwaarden (`mv:` regels) ook wil bewaren voor gedetailleerde analyse, kan ik een aanvullend script maken met een extra `meter_readings` tabel. Laat maar weten!

353
VAN_01971_Transactions.csv Normal file
View File

@@ -0,0 +1,353 @@
# Device, VAN_01971
# Generated, 1-11-2025 10:36:53
txstart2: id 0x0000000000000001, socket 1, 2025-10-28 18:27:42 5518.267kWh 04BB29EAFD0F94 3 2 Y
mv: socket 1, 2025-10-28 18:27:42 5518.267 Y
mv: socket 1, 2025-10-28 18:27:43 5518.267 Y
mv: socket 1, 2025-10-28 18:42:43 5518.796 Y
mv: socket 1, 2025-10-28 18:57:43 5518.796 Y
mv: socket 1, 2025-10-28 19:12:43 5518.796 Y
mv: socket 1, 2025-10-28 19:27:43 5518.796 Y
mv: socket 1, 2025-10-28 19:42:43 5518.796 Y
mv: socket 1, 2025-10-28 19:57:43 5518.796 Y
mv: socket 1, 2025-10-28 20:12:44 5518.796 Y
mv: socket 1, 2025-10-28 20:27:43 5518.796 Y
mv: socket 1, 2025-10-28 20:42:43 5518.796 Y
mv: socket 1, 2025-10-28 20:57:43 5518.796 Y
mv: socket 1, 2025-10-28 21:12:43 5518.796 Y
mv: socket 1, 2025-10-28 21:27:43 5518.796 Y
mv: socket 1, 2025-10-28 21:42:43 5518.796 Y
mv: socket 1, 2025-10-28 21:57:43 5518.796 Y
mv: socket 1, 2025-10-28 22:12:43 5518.796 Y
mv: socket 1, 2025-10-28 22:27:43 5518.796 Y
mv: socket 1, 2025-10-28 22:42:43 5518.796 Y
mv: socket 1, 2025-10-28 22:57:43 5518.796 Y
mv: socket 1, 2025-10-28 23:12:43 5518.796 Y
mv: socket 1, 2025-10-28 23:27:43 5518.796 Y
mv: socket 1, 2025-10-28 23:42:43 5518.796 Y
mv: socket 1, 2025-10-28 23:57:43 5518.796 Y
mv: socket 1, 2025-10-29 00:12:43 5518.796 Y
mv: socket 1, 2025-10-29 00:27:43 5518.796 Y
mv: socket 1, 2025-10-29 00:42:43 5518.796 Y
mv: socket 1, 2025-10-29 00:57:43 5518.796 Y
mv: socket 1, 2025-10-29 01:12:43 5520.027 Y
mv: socket 1, 2025-10-29 01:27:43 5522.283 Y
mv: socket 1, 2025-10-29 01:42:43 5522.836 Y
mv: socket 1, 2025-10-29 01:57:43 5522.945 Y
mv: socket 1, 2025-10-29 02:12:43 5525.658 Y
mv: socket 1, 2025-10-29 02:27:43 5526.141 Y
mv: socket 1, 2025-10-29 02:42:43 5526.457 Y
mv: socket 1, 2025-10-29 02:57:44 5529.181 Y
mv: socket 1, 2025-10-29 03:12:43 5531.738 Y
mv: socket 1, 2025-10-29 03:27:43 5534.453 Y
mv: socket 1, 2025-10-29 03:42:43 5537.169 Y
mv: socket 1, 2025-10-29 03:57:43 5539.881 Y
mv: socket 1, 2025-10-29 04:12:43 5540.121 Y
mv: socket 1, 2025-10-29 04:27:43 5540.121 Y
mv: socket 1, 2025-10-29 04:42:43 5540.121 Y
mv: socket 1, 2025-10-29 04:57:43 5540.121 Y
mv: socket 1, 2025-10-29 05:12:43 5540.121 Y
mv: socket 1, 2025-10-29 05:27:43 5540.121 Y
mv: socket 1, 2025-10-29 05:42:43 5540.121 Y
mv: socket 1, 2025-10-29 05:57:43 5540.121 Y
mv: socket 1, 2025-10-29 06:12:43 5540.121 Y
mv: socket 1, 2025-10-31 15:59:29 5540.316 Y
txstop2: id 0x0000000000000001, socket 1, 2025-10-31 15:59:29 5540.316kWh 04BB29EAFD0F94 6 5 Y
mv: socket 1, 2025-10-29 06:27:43 5540.316 Y
mv: socket 1, 2025-10-29 06:42:43 5540.316 Y
mv: socket 1, 2025-10-29 06:57:43 5540.316 Y
mv: socket 1, 2025-10-29 07:12:43 5540.316 Y
mv: socket 1, 2025-10-29 07:27:43 5540.316 Y
mv: socket 1, 2025-10-29 07:42:43 5540.316 Y
mv: socket 1, 2025-10-29 07:57:43 5540.316 Y
mv: socket 1, 2025-10-29 08:12:43 5540.316 Y
mv: socket 1, 2025-10-29 08:27:43 5540.316 Y
mv: socket 1, 2025-10-29 08:42:43 5540.316 Y
mv: socket 1, 2025-10-29 08:57:43 5540.316 Y
mv: socket 1, 2025-10-29 09:12:43 5540.316 Y
mv: socket 1, 2025-10-29 09:27:43 5540.316 Y
mv: socket 1, 2025-10-29 09:42:43 5540.316 Y
mv: socket 1, 2025-10-29 09:57:43 5540.316 Y
mv: socket 1, 2025-10-29 10:12:43 5540.316 Y
mv: socket 1, 2025-10-29 10:27:43 5540.316 Y
mv: socket 1, 2025-10-29 10:42:43 5540.316 Y
mv: socket 1, 2025-10-29 10:57:43 5540.316 Y
mv: socket 1, 2025-10-29 11:12:43 5540.316 Y
mv: socket 1, 2025-10-29 11:27:44 5540.316 Y
mv: socket 1, 2025-10-29 11:42:43 5540.316 Y
mv: socket 1, 2025-10-29 11:57:43 5540.316 Y
mv: socket 1, 2025-10-29 12:12:44 5540.316 Y
mv: socket 1, 2025-10-29 12:27:43 5540.316 Y
mv: socket 1, 2025-10-29 12:42:43 5540.316 Y
mv: socket 1, 2025-10-29 12:57:43 5540.316 Y
mv: socket 1, 2025-10-29 13:12:43 5540.316 Y
mv: socket 1, 2025-10-29 13:27:43 5540.316 Y
mv: socket 1, 2025-10-29 13:42:43 5540.316 Y
mv: socket 1, 2025-10-29 13:57:43 5540.316 Y
mv: socket 1, 2025-10-29 14:12:43 5540.316 Y
mv: socket 1, 2025-10-29 14:27:43 5540.316 Y
mv: socket 1, 2025-10-29 14:42:43 5540.316 Y
mv: socket 1, 2025-10-29 14:57:43 5540.316 Y
mv: socket 1, 2025-10-29 15:12:43 5540.316 Y
mv: socket 1, 2025-10-29 15:27:43 5540.316 Y
mv: socket 1, 2025-10-29 15:42:43 5540.316 Y
mv: socket 1, 2025-10-29 15:57:43 5540.316 Y
mv: socket 1, 2025-10-29 16:12:43 5540.316 Y
mv: socket 1, 2025-10-29 16:27:43 5540.316 Y
mv: socket 1, 2025-10-29 16:42:43 5540.316 Y
mv: socket 1, 2025-10-29 16:57:43 5540.316 Y
mv: socket 1, 2025-10-29 17:12:44 5540.316 Y
mv: socket 1, 2025-10-29 17:27:43 5540.316 Y
mv: socket 1, 2025-10-29 17:42:43 5540.316 Y
mv: socket 1, 2025-10-29 17:57:43 5540.316 Y
mv: socket 1, 2025-10-29 18:12:43 5540.316 Y
mv: socket 1, 2025-10-29 18:27:43 5540.316 Y
mv: socket 1, 2025-10-29 18:42:43 5540.316 Y
mv: socket 1, 2025-10-29 18:57:43 5540.316 Y
mv: socket 1, 2025-10-29 19:12:43 5540.316 Y
mv: socket 1, 2025-10-29 19:27:43 5540.316 Y
mv: socket 1, 2025-10-29 19:42:43 5540.316 Y
mv: socket 1, 2025-10-29 19:57:43 5540.316 Y
mv: socket 1, 2025-10-29 20:12:43 5540.316 Y
mv: socket 1, 2025-10-29 20:27:43 5540.316 Y
mv: socket 1, 2025-10-29 20:42:43 5540.316 Y
mv: socket 1, 2025-10-29 20:57:43 5540.316 Y
mv: socket 1, 2025-10-29 21:12:43 5540.316 Y
mv: socket 1, 2025-10-29 21:27:43 5540.316 Y
mv: socket 1, 2025-10-29 21:42:43 5540.316 Y
mv: socket 1, 2025-10-29 21:57:43 5540.316 Y
mv: socket 1, 2025-10-29 22:12:43 5540.316 Y
mv: socket 1, 2025-10-29 22:27:43 5540.316 Y
mv: socket 1, 2025-10-29 22:42:43 5540.316 Y
mv: socket 1, 2025-10-29 22:57:43 5540.316 Y
mv: socket 1, 2025-10-29 23:12:43 5540.316 Y
mv: socket 1, 2025-10-29 23:27:43 5540.316 Y
mv: socket 1, 2025-10-29 23:42:43 5540.316 Y
mv: socket 1, 2025-10-29 23:57:43 5540.316 Y
mv: socket 1, 2025-10-30 00:12:43 5540.316 Y
mv: socket 1, 2025-10-30 00:27:43 5540.316 Y
mv: socket 1, 2025-10-30 00:42:44 5540.316 Y
mv: socket 1, 2025-10-30 00:57:43 5540.316 Y
mv: socket 1, 2025-10-30 01:12:43 5540.316 Y
mv: socket 1, 2025-10-30 01:27:43 5540.316 Y
mv: socket 1, 2025-10-30 01:42:43 5540.316 Y
mv: socket 1, 2025-10-30 01:57:43 5540.316 Y
mv: socket 1, 2025-10-30 02:12:44 5540.316 Y
mv: socket 1, 2025-10-30 02:27:44 5540.316 Y
mv: socket 1, 2025-10-30 02:42:43 5540.316 Y
mv: socket 1, 2025-10-30 02:57:43 5540.316 Y
mv: socket 1, 2025-10-30 03:12:44 5540.316 Y
mv: socket 1, 2025-10-30 03:27:44 5540.316 Y
mv: socket 1, 2025-10-30 03:42:43 5540.316 Y
mv: socket 1, 2025-10-30 03:57:43 5540.316 Y
mv: socket 1, 2025-10-30 04:12:43 5540.316 Y
mv: socket 1, 2025-10-30 04:27:43 5540.316 Y
mv: socket 1, 2025-10-30 04:42:43 5540.316 Y
mv: socket 1, 2025-10-30 04:57:43 5540.316 Y
mv: socket 1, 2025-10-30 05:12:43 5540.316 Y
mv: socket 1, 2025-10-30 05:27:43 5540.316 Y
mv: socket 1, 2025-10-30 05:42:43 5540.316 Y
mv: socket 1, 2025-10-30 05:57:47 5540.316 Y
mv: socket 1, 2025-10-30 06:12:47 5540.316 Y
mv: socket 1, 2025-10-30 06:27:47 5540.316 Y
mv: socket 1, 2025-10-30 06:42:47 5540.316 Y
mv: socket 1, 2025-10-30 06:57:47 5540.316 Y
mv: socket 1, 2025-10-30 07:12:48 5540.316 Y
mv: socket 1, 2025-10-30 07:27:47 5540.316 Y
mv: socket 1, 2025-10-30 07:42:47 5540.316 Y
mv: socket 1, 2025-10-30 07:57:47 5540.316 Y
mv: socket 1, 2025-10-30 08:12:47 5540.316 Y
mv: socket 1, 2025-10-30 08:27:47 5540.316 Y
mv: socket 1, 2025-10-30 08:42:47 5540.316 Y
mv: socket 1, 2025-10-30 08:57:47 5540.316 Y
mv: socket 1, 2025-10-30 09:12:48 5540.316 Y
mv: socket 1, 2025-10-30 09:27:47 5540.316 Y
mv: socket 1, 2025-10-30 09:42:47 5540.316 Y
mv: socket 1, 2025-10-30 09:57:47 5540.316 Y
mv: socket 1, 2025-10-30 10:12:47 5540.316 Y
mv: socket 1, 2025-10-30 10:27:47 5540.316 Y
mv: socket 1, 2025-10-30 10:42:47 5540.316 Y
mv: socket 1, 2025-10-30 10:57:47 5540.316 Y
mv: socket 1, 2025-10-30 11:12:47 5540.316 Y
mv: socket 1, 2025-10-30 11:27:47 5540.316 Y
mv: socket 1, 2025-10-30 11:42:47 5540.316 Y
mv: socket 1, 2025-10-30 11:57:48 5540.316 Y
mv: socket 1, 2025-10-30 12:12:47 5540.316 Y
mv: socket 1, 2025-10-30 12:27:47 5540.316 Y
mv: socket 1, 2025-10-30 12:42:47 5540.316 Y
mv: socket 1, 2025-10-30 12:57:47 5540.316 Y
mv: socket 1, 2025-10-30 13:12:47 5540.316 Y
mv: socket 1, 2025-10-30 13:27:47 5540.316 Y
mv: socket 1, 2025-10-30 13:42:48 5540.316 Y
mv: socket 1, 2025-10-30 13:57:47 5540.316 Y
mv: socket 1, 2025-10-30 14:12:47 5540.316 Y
mv: socket 1, 2025-10-30 14:27:47 5540.316 Y
mv: socket 1, 2025-10-30 14:42:47 5540.316 Y
mv: socket 1, 2025-10-30 14:57:47 5540.316 Y
mv: socket 1, 2025-10-30 15:12:47 5540.316 Y
mv: socket 1, 2025-10-30 15:27:47 5540.316 Y
mv: socket 1, 2025-10-30 15:42:47 5540.316 Y
mv: socket 1, 2025-10-30 15:57:48 5540.316 Y
mv: socket 1, 2025-10-30 16:12:47 5540.316 Y
mv: socket 1, 2025-10-30 16:27:47 5540.316 Y
mv: socket 1, 2025-10-30 16:42:47 5540.316 Y
mv: socket 1, 2025-10-30 16:57:47 5540.316 Y
mv: socket 1, 2025-10-30 17:12:47 5540.316 Y
mv: socket 1, 2025-10-30 17:27:47 5540.316 Y
mv: socket 1, 2025-10-30 17:42:47 5540.316 Y
mv: socket 1, 2025-10-30 17:57:47 5540.316 Y
mv: socket 1, 2025-10-30 18:12:47 5540.316 Y
mv: socket 1, 2025-10-30 18:27:47 5540.316 Y
mv: socket 1, 2025-10-30 18:42:47 5540.316 Y
mv: socket 1, 2025-10-30 18:57:47 5540.316 Y
mv: socket 1, 2025-10-30 19:12:47 5540.316 Y
mv: socket 1, 2025-10-30 19:27:47 5540.316 Y
mv: socket 1, 2025-10-30 19:42:47 5540.316 Y
mv: socket 1, 2025-10-30 19:57:47 5540.316 Y
mv: socket 1, 2025-10-30 20:12:47 5540.316 Y
mv: socket 1, 2025-10-30 20:27:47 5540.316 Y
mv: socket 1, 2025-10-30 20:42:47 5540.316 Y
mv: socket 1, 2025-10-30 20:57:47 5540.316 Y
mv: socket 1, 2025-10-30 21:12:47 5540.316 Y
mv: socket 1, 2025-10-30 21:27:47 5540.316 Y
mv: socket 1, 2025-10-30 21:42:47 5540.316 Y
mv: socket 1, 2025-10-30 21:57:48 5540.316 Y
mv: socket 1, 2025-10-30 22:12:47 5540.316 Y
mv: socket 1, 2025-10-30 22:27:47 5540.316 Y
mv: socket 1, 2025-10-30 22:42:47 5540.316 Y
mv: socket 1, 2025-10-30 22:57:47 5540.316 Y
mv: socket 1, 2025-10-30 23:12:47 5540.316 Y
mv: socket 1, 2025-10-30 23:27:47 5540.316 Y
mv: socket 1, 2025-10-30 23:42:47 5540.316 Y
mv: socket 1, 2025-10-30 23:57:47 5540.316 Y
mv: socket 1, 2025-10-31 00:12:47 5540.316 Y
mv: socket 1, 2025-10-31 00:27:47 5540.316 Y
mv: socket 1, 2025-10-31 00:42:48 5540.316 Y
mv: socket 1, 2025-10-31 00:57:48 5540.316 Y
mv: socket 1, 2025-10-31 01:12:47 5540.316 Y
mv: socket 1, 2025-10-31 01:27:47 5540.316 Y
mv: socket 1, 2025-10-31 01:42:47 5540.316 Y
mv: socket 1, 2025-10-31 01:57:47 5540.316 Y
mv: socket 1, 2025-10-31 02:12:47 5540.316 Y
mv: socket 1, 2025-10-31 02:27:47 5540.316 Y
mv: socket 1, 2025-10-31 02:42:47 5540.316 Y
mv: socket 1, 2025-10-31 02:57:47 5540.316 Y
mv: socket 1, 2025-10-31 03:12:47 5540.316 Y
mv: socket 1, 2025-10-31 03:27:47 5540.316 Y
mv: socket 1, 2025-10-31 03:42:47 5540.316 Y
mv: socket 1, 2025-10-31 03:57:48 5540.316 Y
mv: socket 1, 2025-10-31 04:12:47 5540.316 Y
mv: socket 1, 2025-10-31 04:27:47 5540.316 Y
mv: socket 1, 2025-10-31 04:42:47 5540.316 Y
mv: socket 1, 2025-10-31 04:57:47 5540.316 Y
mv: socket 1, 2025-10-31 05:12:47 5540.316 Y
mv: socket 1, 2025-10-31 05:27:47 5540.316 Y
mv: socket 1, 2025-10-31 05:42:47 5540.316 Y
mv: socket 1, 2025-10-31 05:57:47 5540.316 Y
mv: socket 1, 2025-10-31 06:12:47 5540.316 Y
mv: socket 1, 2025-10-31 06:27:47 5540.316 Y
mv: socket 1, 2025-10-31 06:42:47 5540.316 Y
mv: socket 1, 2025-10-31 06:57:47 5540.316 Y
mv: socket 1, 2025-10-31 07:12:47 5540.316 Y
mv: socket 1, 2025-10-31 07:27:47 5540.316 Y
mv: socket 1, 2025-10-31 07:42:47 5540.316 Y
mv: socket 1, 2025-10-31 07:57:47 5540.316 Y
mv: socket 1, 2025-10-31 08:12:47 5540.316 Y
mv: socket 1, 2025-10-31 08:27:47 5540.316 Y
mv: socket 1, 2025-10-31 08:42:47 5540.316 Y
mv: socket 1, 2025-10-31 08:57:47 5540.316 Y
mv: socket 1, 2025-10-31 09:12:47 5540.316 Y
mv: socket 1, 2025-10-31 09:27:47 5540.316 Y
mv: socket 1, 2025-10-31 09:42:47 5540.316 Y
mv: socket 1, 2025-10-31 09:57:47 5540.316 Y
mv: socket 1, 2025-10-31 10:12:48 5540.316 Y
mv: socket 1, 2025-10-31 10:27:47 5540.316 Y
mv: socket 1, 2025-10-31 10:42:47 5540.316 Y
mv: socket 1, 2025-10-31 10:57:47 5540.316 Y
mv: socket 1, 2025-10-31 11:12:47 5540.316 Y
mv: socket 1, 2025-10-31 11:27:47 5540.316 Y
mv: socket 1, 2025-10-31 11:42:47 5540.316 Y
mv: socket 1, 2025-10-31 11:57:47 5540.316 Y
mv: socket 1, 2025-10-31 12:12:47 5540.316 Y
mv: socket 1, 2025-10-31 12:27:47 5540.316 Y
mv: socket 1, 2025-10-31 12:42:47 5540.316 Y
mv: socket 1, 2025-10-31 12:57:47 5540.316 Y
mv: socket 1, 2025-10-31 13:12:48 5540.316 Y
mv: socket 1, 2025-10-31 13:27:47 5540.316 Y
mv: socket 1, 2025-10-31 13:42:47 5540.316 Y
mv: socket 1, 2025-10-31 13:57:47 5540.316 Y
mv: socket 1, 2025-10-31 14:12:47 5540.316 Y
mv: socket 1, 2025-10-31 14:27:47 5540.316 Y
mv: socket 1, 2025-10-31 14:42:47 5540.316 Y
mv: socket 1, 2025-10-31 14:57:47 5540.316 Y
mv: socket 1, 2025-10-31 15:12:47 5540.316 Y
mv: socket 1, 2025-10-31 15:27:47 5540.316 Y
mv: socket 1, 2025-10-31 15:42:47 5540.316 Y
mv: socket 1, 2025-10-31 15:57:47 5540.316 Y
txstart2: id 0x000000001150e1e3, socket 1, 2025-10-31 16:30:50 5540.316kWh 04BB29EAFD0F94 3 2 Y
mv: socket 1, 2025-10-31 16:30:50 5540.316 Y
mv: socket 1, 2025-10-31 16:30:52 5540.316 Y
mv: socket 1, 2025-10-31 16:34:42 5540.316 Y
txstop2: id 0x000000001150e1e3, socket 1, 2025-10-31 16:34:42 5540.316kWh 04BB29EAFD0F94 6 5 Y
txstart2: id 0x000000006905d45d, socket 1, 2025-10-31 16:40:37 5540.316kWh 04BB29EAFD0F94 3 2 Y
mv: socket 1, 2025-10-31 16:40:37 5540.316 Y
mv: socket 1, 2025-10-31 16:40:39 5540.316 Y
mv: socket 1, 2025-10-31 16:55:38 5542.386 Y
mv: socket 1, 2025-10-31 17:10:39 5544.580 Y
mv: socket 1, 2025-10-31 17:25:38 5546.672 Y
mv: socket 1, 2025-10-31 17:40:38 5548.035 Y
mv: socket 1, 2025-10-31 17:55:38 5548.035 Y
mv: socket 1, 2025-10-31 18:10:38 5548.035 Y
mv: socket 1, 2025-10-31 18:25:38 5548.035 Y
mv: socket 1, 2025-10-31 18:40:38 5548.035 Y
mv: socket 1, 2025-10-31 18:55:38 5548.035 Y
mv: socket 1, 2025-10-31 19:10:38 5548.035 Y
mv: socket 1, 2025-10-31 19:25:38 5548.035 Y
mv: socket 1, 2025-10-31 19:40:39 5548.035 Y
mv: socket 1, 2025-10-31 19:55:38 5548.035 Y
mv: socket 1, 2025-10-31 20:10:38 5548.035 Y
mv: socket 1, 2025-10-31 20:25:38 5548.035 Y
mv: socket 1, 2025-10-31 20:40:38 5548.035 Y
mv: socket 1, 2025-10-31 20:55:38 5548.035 Y
mv: socket 1, 2025-10-31 21:10:38 5548.035 Y
mv: socket 1, 2025-10-31 21:25:38 5548.035 Y
mv: socket 1, 2025-10-31 21:40:38 5548.035 Y
mv: socket 1, 2025-10-31 21:55:38 5548.035 Y
mv: socket 1, 2025-10-31 22:10:38 5548.035 Y
mv: socket 1, 2025-10-31 22:25:38 5548.035 Y
mv: socket 1, 2025-10-31 22:40:38 5548.035 Y
mv: socket 1, 2025-10-31 22:55:38 5548.035 Y
mv: socket 1, 2025-10-31 23:10:38 5548.035 Y
mv: socket 1, 2025-10-31 23:25:39 5548.035 Y
mv: socket 1, 2025-10-31 23:40:38 5548.035 Y
mv: socket 1, 2025-10-31 23:55:38 5548.035 Y
mv: socket 1, 2025-11-01 00:10:38 5548.621 Y
mv: socket 1, 2025-11-01 00:25:39 5548.621 Y
mv: socket 1, 2025-11-01 00:40:38 5548.621 Y
mv: socket 1, 2025-11-01 00:55:38 5548.621 Y
mv: socket 1, 2025-11-01 01:10:38 5549.452 Y
mv: socket 1, 2025-11-01 01:25:38 5551.081 Y
mv: socket 1, 2025-11-01 01:40:38 5553.323 Y
mv: socket 1, 2025-11-01 01:55:38 5555.846 Y
mv: socket 1, 2025-11-01 02:10:38 5558.138 Y
mv: socket 1, 2025-11-01 02:25:38 5560.275 Y
mv: socket 1, 2025-11-01 02:40:38 5562.812 Y
mv: socket 1, 2025-11-01 02:55:38 5563.678 Y
mv: socket 1, 2025-11-01 03:10:38 5564.969 Y
mv: socket 1, 2025-11-01 03:25:38 5567.483 Y
mv: socket 1, 2025-11-01 03:40:38 5570.004 Y
mv: socket 1, 2025-11-01 03:55:38 5571.247 Y
mv: socket 1, 2025-11-01 04:10:38 5571.836 Y
mv: socket 1, 2025-11-01 04:25:38 5573.281 Y
mv: socket 1, 2025-11-01 04:40:38 5574.919 Y
mv: socket 1, 2025-11-01 04:55:38 5576.427 Y
mv: socket 1, 2025-11-01 05:10:38 5578.320 Y
mv: socket 1, 2025-11-01 05:25:38 5580.255 Y
mv: socket 1, 2025-11-01 05:40:38 5582.202 Y
mv: socket 1, 2025-11-01 05:55:38 5584.129 Y
mv: socket 1, 2025-11-01 06:10:38 5586.061 Y
mv: socket 1, 2025-11-01 06:25:39 5587.987 Y
mv: socket 1, 2025-11-01 06:40:38 5588.146 Y
mv: socket 1, 2025-11-01 06:55:38 5588.146 Y
mv: socket 1, 2025-11-01 07:10:38 5588.146 Y
mv: socket 1, 2025-11-01 07:14:15 5588.146 Y
txstop2: id 0x000000006905d45d, socket 1, 2025-11-01 07:14:15 5588.146kWh 04BB29EAFD0F94 6 5 Y
1 # Device, VAN_01971
2 # Generated, 1-11-2025 10:36:53
3 txstart2: id 0x0000000000000001, socket 1, 2025-10-28 18:27:42 5518.267kWh 04BB29EAFD0F94 3 2 Y
4 mv: socket 1, 2025-10-28 18:27:42 5518.267 Y
5 mv: socket 1, 2025-10-28 18:27:43 5518.267 Y
6 mv: socket 1, 2025-10-28 18:42:43 5518.796 Y
7 mv: socket 1, 2025-10-28 18:57:43 5518.796 Y
8 mv: socket 1, 2025-10-28 19:12:43 5518.796 Y
9 mv: socket 1, 2025-10-28 19:27:43 5518.796 Y
10 mv: socket 1, 2025-10-28 19:42:43 5518.796 Y
11 mv: socket 1, 2025-10-28 19:57:43 5518.796 Y
12 mv: socket 1, 2025-10-28 20:12:44 5518.796 Y
13 mv: socket 1, 2025-10-28 20:27:43 5518.796 Y
14 mv: socket 1, 2025-10-28 20:42:43 5518.796 Y
15 mv: socket 1, 2025-10-28 20:57:43 5518.796 Y
16 mv: socket 1, 2025-10-28 21:12:43 5518.796 Y
17 mv: socket 1, 2025-10-28 21:27:43 5518.796 Y
18 mv: socket 1, 2025-10-28 21:42:43 5518.796 Y
19 mv: socket 1, 2025-10-28 21:57:43 5518.796 Y
20 mv: socket 1, 2025-10-28 22:12:43 5518.796 Y
21 mv: socket 1, 2025-10-28 22:27:43 5518.796 Y
22 mv: socket 1, 2025-10-28 22:42:43 5518.796 Y
23 mv: socket 1, 2025-10-28 22:57:43 5518.796 Y
24 mv: socket 1, 2025-10-28 23:12:43 5518.796 Y
25 mv: socket 1, 2025-10-28 23:27:43 5518.796 Y
26 mv: socket 1, 2025-10-28 23:42:43 5518.796 Y
27 mv: socket 1, 2025-10-28 23:57:43 5518.796 Y
28 mv: socket 1, 2025-10-29 00:12:43 5518.796 Y
29 mv: socket 1, 2025-10-29 00:27:43 5518.796 Y
30 mv: socket 1, 2025-10-29 00:42:43 5518.796 Y
31 mv: socket 1, 2025-10-29 00:57:43 5518.796 Y
32 mv: socket 1, 2025-10-29 01:12:43 5520.027 Y
33 mv: socket 1, 2025-10-29 01:27:43 5522.283 Y
34 mv: socket 1, 2025-10-29 01:42:43 5522.836 Y
35 mv: socket 1, 2025-10-29 01:57:43 5522.945 Y
36 mv: socket 1, 2025-10-29 02:12:43 5525.658 Y
37 mv: socket 1, 2025-10-29 02:27:43 5526.141 Y
38 mv: socket 1, 2025-10-29 02:42:43 5526.457 Y
39 mv: socket 1, 2025-10-29 02:57:44 5529.181 Y
40 mv: socket 1, 2025-10-29 03:12:43 5531.738 Y
41 mv: socket 1, 2025-10-29 03:27:43 5534.453 Y
42 mv: socket 1, 2025-10-29 03:42:43 5537.169 Y
43 mv: socket 1, 2025-10-29 03:57:43 5539.881 Y
44 mv: socket 1, 2025-10-29 04:12:43 5540.121 Y
45 mv: socket 1, 2025-10-29 04:27:43 5540.121 Y
46 mv: socket 1, 2025-10-29 04:42:43 5540.121 Y
47 mv: socket 1, 2025-10-29 04:57:43 5540.121 Y
48 mv: socket 1, 2025-10-29 05:12:43 5540.121 Y
49 mv: socket 1, 2025-10-29 05:27:43 5540.121 Y
50 mv: socket 1, 2025-10-29 05:42:43 5540.121 Y
51 mv: socket 1, 2025-10-29 05:57:43 5540.121 Y
52 mv: socket 1, 2025-10-29 06:12:43 5540.121 Y
53 mv: socket 1, 2025-10-31 15:59:29 5540.316 Y
54 txstop2: id 0x0000000000000001, socket 1, 2025-10-31 15:59:29 5540.316kWh 04BB29EAFD0F94 6 5 Y
55 mv: socket 1, 2025-10-29 06:27:43 5540.316 Y
56 mv: socket 1, 2025-10-29 06:42:43 5540.316 Y
57 mv: socket 1, 2025-10-29 06:57:43 5540.316 Y
58 mv: socket 1, 2025-10-29 07:12:43 5540.316 Y
59 mv: socket 1, 2025-10-29 07:27:43 5540.316 Y
60 mv: socket 1, 2025-10-29 07:42:43 5540.316 Y
61 mv: socket 1, 2025-10-29 07:57:43 5540.316 Y
62 mv: socket 1, 2025-10-29 08:12:43 5540.316 Y
63 mv: socket 1, 2025-10-29 08:27:43 5540.316 Y
64 mv: socket 1, 2025-10-29 08:42:43 5540.316 Y
65 mv: socket 1, 2025-10-29 08:57:43 5540.316 Y
66 mv: socket 1, 2025-10-29 09:12:43 5540.316 Y
67 mv: socket 1, 2025-10-29 09:27:43 5540.316 Y
68 mv: socket 1, 2025-10-29 09:42:43 5540.316 Y
69 mv: socket 1, 2025-10-29 09:57:43 5540.316 Y
70 mv: socket 1, 2025-10-29 10:12:43 5540.316 Y
71 mv: socket 1, 2025-10-29 10:27:43 5540.316 Y
72 mv: socket 1, 2025-10-29 10:42:43 5540.316 Y
73 mv: socket 1, 2025-10-29 10:57:43 5540.316 Y
74 mv: socket 1, 2025-10-29 11:12:43 5540.316 Y
75 mv: socket 1, 2025-10-29 11:27:44 5540.316 Y
76 mv: socket 1, 2025-10-29 11:42:43 5540.316 Y
77 mv: socket 1, 2025-10-29 11:57:43 5540.316 Y
78 mv: socket 1, 2025-10-29 12:12:44 5540.316 Y
79 mv: socket 1, 2025-10-29 12:27:43 5540.316 Y
80 mv: socket 1, 2025-10-29 12:42:43 5540.316 Y
81 mv: socket 1, 2025-10-29 12:57:43 5540.316 Y
82 mv: socket 1, 2025-10-29 13:12:43 5540.316 Y
83 mv: socket 1, 2025-10-29 13:27:43 5540.316 Y
84 mv: socket 1, 2025-10-29 13:42:43 5540.316 Y
85 mv: socket 1, 2025-10-29 13:57:43 5540.316 Y
86 mv: socket 1, 2025-10-29 14:12:43 5540.316 Y
87 mv: socket 1, 2025-10-29 14:27:43 5540.316 Y
88 mv: socket 1, 2025-10-29 14:42:43 5540.316 Y
89 mv: socket 1, 2025-10-29 14:57:43 5540.316 Y
90 mv: socket 1, 2025-10-29 15:12:43 5540.316 Y
91 mv: socket 1, 2025-10-29 15:27:43 5540.316 Y
92 mv: socket 1, 2025-10-29 15:42:43 5540.316 Y
93 mv: socket 1, 2025-10-29 15:57:43 5540.316 Y
94 mv: socket 1, 2025-10-29 16:12:43 5540.316 Y
95 mv: socket 1, 2025-10-29 16:27:43 5540.316 Y
96 mv: socket 1, 2025-10-29 16:42:43 5540.316 Y
97 mv: socket 1, 2025-10-29 16:57:43 5540.316 Y
98 mv: socket 1, 2025-10-29 17:12:44 5540.316 Y
99 mv: socket 1, 2025-10-29 17:27:43 5540.316 Y
100 mv: socket 1, 2025-10-29 17:42:43 5540.316 Y
101 mv: socket 1, 2025-10-29 17:57:43 5540.316 Y
102 mv: socket 1, 2025-10-29 18:12:43 5540.316 Y
103 mv: socket 1, 2025-10-29 18:27:43 5540.316 Y
104 mv: socket 1, 2025-10-29 18:42:43 5540.316 Y
105 mv: socket 1, 2025-10-29 18:57:43 5540.316 Y
106 mv: socket 1, 2025-10-29 19:12:43 5540.316 Y
107 mv: socket 1, 2025-10-29 19:27:43 5540.316 Y
108 mv: socket 1, 2025-10-29 19:42:43 5540.316 Y
109 mv: socket 1, 2025-10-29 19:57:43 5540.316 Y
110 mv: socket 1, 2025-10-29 20:12:43 5540.316 Y
111 mv: socket 1, 2025-10-29 20:27:43 5540.316 Y
112 mv: socket 1, 2025-10-29 20:42:43 5540.316 Y
113 mv: socket 1, 2025-10-29 20:57:43 5540.316 Y
114 mv: socket 1, 2025-10-29 21:12:43 5540.316 Y
115 mv: socket 1, 2025-10-29 21:27:43 5540.316 Y
116 mv: socket 1, 2025-10-29 21:42:43 5540.316 Y
117 mv: socket 1, 2025-10-29 21:57:43 5540.316 Y
118 mv: socket 1, 2025-10-29 22:12:43 5540.316 Y
119 mv: socket 1, 2025-10-29 22:27:43 5540.316 Y
120 mv: socket 1, 2025-10-29 22:42:43 5540.316 Y
121 mv: socket 1, 2025-10-29 22:57:43 5540.316 Y
122 mv: socket 1, 2025-10-29 23:12:43 5540.316 Y
123 mv: socket 1, 2025-10-29 23:27:43 5540.316 Y
124 mv: socket 1, 2025-10-29 23:42:43 5540.316 Y
125 mv: socket 1, 2025-10-29 23:57:43 5540.316 Y
126 mv: socket 1, 2025-10-30 00:12:43 5540.316 Y
127 mv: socket 1, 2025-10-30 00:27:43 5540.316 Y
128 mv: socket 1, 2025-10-30 00:42:44 5540.316 Y
129 mv: socket 1, 2025-10-30 00:57:43 5540.316 Y
130 mv: socket 1, 2025-10-30 01:12:43 5540.316 Y
131 mv: socket 1, 2025-10-30 01:27:43 5540.316 Y
132 mv: socket 1, 2025-10-30 01:42:43 5540.316 Y
133 mv: socket 1, 2025-10-30 01:57:43 5540.316 Y
134 mv: socket 1, 2025-10-30 02:12:44 5540.316 Y
135 mv: socket 1, 2025-10-30 02:27:44 5540.316 Y
136 mv: socket 1, 2025-10-30 02:42:43 5540.316 Y
137 mv: socket 1, 2025-10-30 02:57:43 5540.316 Y
138 mv: socket 1, 2025-10-30 03:12:44 5540.316 Y
139 mv: socket 1, 2025-10-30 03:27:44 5540.316 Y
140 mv: socket 1, 2025-10-30 03:42:43 5540.316 Y
141 mv: socket 1, 2025-10-30 03:57:43 5540.316 Y
142 mv: socket 1, 2025-10-30 04:12:43 5540.316 Y
143 mv: socket 1, 2025-10-30 04:27:43 5540.316 Y
144 mv: socket 1, 2025-10-30 04:42:43 5540.316 Y
145 mv: socket 1, 2025-10-30 04:57:43 5540.316 Y
146 mv: socket 1, 2025-10-30 05:12:43 5540.316 Y
147 mv: socket 1, 2025-10-30 05:27:43 5540.316 Y
148 mv: socket 1, 2025-10-30 05:42:43 5540.316 Y
149 mv: socket 1, 2025-10-30 05:57:47 5540.316 Y
150 mv: socket 1, 2025-10-30 06:12:47 5540.316 Y
151 mv: socket 1, 2025-10-30 06:27:47 5540.316 Y
152 mv: socket 1, 2025-10-30 06:42:47 5540.316 Y
153 mv: socket 1, 2025-10-30 06:57:47 5540.316 Y
154 mv: socket 1, 2025-10-30 07:12:48 5540.316 Y
155 mv: socket 1, 2025-10-30 07:27:47 5540.316 Y
156 mv: socket 1, 2025-10-30 07:42:47 5540.316 Y
157 mv: socket 1, 2025-10-30 07:57:47 5540.316 Y
158 mv: socket 1, 2025-10-30 08:12:47 5540.316 Y
159 mv: socket 1, 2025-10-30 08:27:47 5540.316 Y
160 mv: socket 1, 2025-10-30 08:42:47 5540.316 Y
161 mv: socket 1, 2025-10-30 08:57:47 5540.316 Y
162 mv: socket 1, 2025-10-30 09:12:48 5540.316 Y
163 mv: socket 1, 2025-10-30 09:27:47 5540.316 Y
164 mv: socket 1, 2025-10-30 09:42:47 5540.316 Y
165 mv: socket 1, 2025-10-30 09:57:47 5540.316 Y
166 mv: socket 1, 2025-10-30 10:12:47 5540.316 Y
167 mv: socket 1, 2025-10-30 10:27:47 5540.316 Y
168 mv: socket 1, 2025-10-30 10:42:47 5540.316 Y
169 mv: socket 1, 2025-10-30 10:57:47 5540.316 Y
170 mv: socket 1, 2025-10-30 11:12:47 5540.316 Y
171 mv: socket 1, 2025-10-30 11:27:47 5540.316 Y
172 mv: socket 1, 2025-10-30 11:42:47 5540.316 Y
173 mv: socket 1, 2025-10-30 11:57:48 5540.316 Y
174 mv: socket 1, 2025-10-30 12:12:47 5540.316 Y
175 mv: socket 1, 2025-10-30 12:27:47 5540.316 Y
176 mv: socket 1, 2025-10-30 12:42:47 5540.316 Y
177 mv: socket 1, 2025-10-30 12:57:47 5540.316 Y
178 mv: socket 1, 2025-10-30 13:12:47 5540.316 Y
179 mv: socket 1, 2025-10-30 13:27:47 5540.316 Y
180 mv: socket 1, 2025-10-30 13:42:48 5540.316 Y
181 mv: socket 1, 2025-10-30 13:57:47 5540.316 Y
182 mv: socket 1, 2025-10-30 14:12:47 5540.316 Y
183 mv: socket 1, 2025-10-30 14:27:47 5540.316 Y
184 mv: socket 1, 2025-10-30 14:42:47 5540.316 Y
185 mv: socket 1, 2025-10-30 14:57:47 5540.316 Y
186 mv: socket 1, 2025-10-30 15:12:47 5540.316 Y
187 mv: socket 1, 2025-10-30 15:27:47 5540.316 Y
188 mv: socket 1, 2025-10-30 15:42:47 5540.316 Y
189 mv: socket 1, 2025-10-30 15:57:48 5540.316 Y
190 mv: socket 1, 2025-10-30 16:12:47 5540.316 Y
191 mv: socket 1, 2025-10-30 16:27:47 5540.316 Y
192 mv: socket 1, 2025-10-30 16:42:47 5540.316 Y
193 mv: socket 1, 2025-10-30 16:57:47 5540.316 Y
194 mv: socket 1, 2025-10-30 17:12:47 5540.316 Y
195 mv: socket 1, 2025-10-30 17:27:47 5540.316 Y
196 mv: socket 1, 2025-10-30 17:42:47 5540.316 Y
197 mv: socket 1, 2025-10-30 17:57:47 5540.316 Y
198 mv: socket 1, 2025-10-30 18:12:47 5540.316 Y
199 mv: socket 1, 2025-10-30 18:27:47 5540.316 Y
200 mv: socket 1, 2025-10-30 18:42:47 5540.316 Y
201 mv: socket 1, 2025-10-30 18:57:47 5540.316 Y
202 mv: socket 1, 2025-10-30 19:12:47 5540.316 Y
203 mv: socket 1, 2025-10-30 19:27:47 5540.316 Y
204 mv: socket 1, 2025-10-30 19:42:47 5540.316 Y
205 mv: socket 1, 2025-10-30 19:57:47 5540.316 Y
206 mv: socket 1, 2025-10-30 20:12:47 5540.316 Y
207 mv: socket 1, 2025-10-30 20:27:47 5540.316 Y
208 mv: socket 1, 2025-10-30 20:42:47 5540.316 Y
209 mv: socket 1, 2025-10-30 20:57:47 5540.316 Y
210 mv: socket 1, 2025-10-30 21:12:47 5540.316 Y
211 mv: socket 1, 2025-10-30 21:27:47 5540.316 Y
212 mv: socket 1, 2025-10-30 21:42:47 5540.316 Y
213 mv: socket 1, 2025-10-30 21:57:48 5540.316 Y
214 mv: socket 1, 2025-10-30 22:12:47 5540.316 Y
215 mv: socket 1, 2025-10-30 22:27:47 5540.316 Y
216 mv: socket 1, 2025-10-30 22:42:47 5540.316 Y
217 mv: socket 1, 2025-10-30 22:57:47 5540.316 Y
218 mv: socket 1, 2025-10-30 23:12:47 5540.316 Y
219 mv: socket 1, 2025-10-30 23:27:47 5540.316 Y
220 mv: socket 1, 2025-10-30 23:42:47 5540.316 Y
221 mv: socket 1, 2025-10-30 23:57:47 5540.316 Y
222 mv: socket 1, 2025-10-31 00:12:47 5540.316 Y
223 mv: socket 1, 2025-10-31 00:27:47 5540.316 Y
224 mv: socket 1, 2025-10-31 00:42:48 5540.316 Y
225 mv: socket 1, 2025-10-31 00:57:48 5540.316 Y
226 mv: socket 1, 2025-10-31 01:12:47 5540.316 Y
227 mv: socket 1, 2025-10-31 01:27:47 5540.316 Y
228 mv: socket 1, 2025-10-31 01:42:47 5540.316 Y
229 mv: socket 1, 2025-10-31 01:57:47 5540.316 Y
230 mv: socket 1, 2025-10-31 02:12:47 5540.316 Y
231 mv: socket 1, 2025-10-31 02:27:47 5540.316 Y
232 mv: socket 1, 2025-10-31 02:42:47 5540.316 Y
233 mv: socket 1, 2025-10-31 02:57:47 5540.316 Y
234 mv: socket 1, 2025-10-31 03:12:47 5540.316 Y
235 mv: socket 1, 2025-10-31 03:27:47 5540.316 Y
236 mv: socket 1, 2025-10-31 03:42:47 5540.316 Y
237 mv: socket 1, 2025-10-31 03:57:48 5540.316 Y
238 mv: socket 1, 2025-10-31 04:12:47 5540.316 Y
239 mv: socket 1, 2025-10-31 04:27:47 5540.316 Y
240 mv: socket 1, 2025-10-31 04:42:47 5540.316 Y
241 mv: socket 1, 2025-10-31 04:57:47 5540.316 Y
242 mv: socket 1, 2025-10-31 05:12:47 5540.316 Y
243 mv: socket 1, 2025-10-31 05:27:47 5540.316 Y
244 mv: socket 1, 2025-10-31 05:42:47 5540.316 Y
245 mv: socket 1, 2025-10-31 05:57:47 5540.316 Y
246 mv: socket 1, 2025-10-31 06:12:47 5540.316 Y
247 mv: socket 1, 2025-10-31 06:27:47 5540.316 Y
248 mv: socket 1, 2025-10-31 06:42:47 5540.316 Y
249 mv: socket 1, 2025-10-31 06:57:47 5540.316 Y
250 mv: socket 1, 2025-10-31 07:12:47 5540.316 Y
251 mv: socket 1, 2025-10-31 07:27:47 5540.316 Y
252 mv: socket 1, 2025-10-31 07:42:47 5540.316 Y
253 mv: socket 1, 2025-10-31 07:57:47 5540.316 Y
254 mv: socket 1, 2025-10-31 08:12:47 5540.316 Y
255 mv: socket 1, 2025-10-31 08:27:47 5540.316 Y
256 mv: socket 1, 2025-10-31 08:42:47 5540.316 Y
257 mv: socket 1, 2025-10-31 08:57:47 5540.316 Y
258 mv: socket 1, 2025-10-31 09:12:47 5540.316 Y
259 mv: socket 1, 2025-10-31 09:27:47 5540.316 Y
260 mv: socket 1, 2025-10-31 09:42:47 5540.316 Y
261 mv: socket 1, 2025-10-31 09:57:47 5540.316 Y
262 mv: socket 1, 2025-10-31 10:12:48 5540.316 Y
263 mv: socket 1, 2025-10-31 10:27:47 5540.316 Y
264 mv: socket 1, 2025-10-31 10:42:47 5540.316 Y
265 mv: socket 1, 2025-10-31 10:57:47 5540.316 Y
266 mv: socket 1, 2025-10-31 11:12:47 5540.316 Y
267 mv: socket 1, 2025-10-31 11:27:47 5540.316 Y
268 mv: socket 1, 2025-10-31 11:42:47 5540.316 Y
269 mv: socket 1, 2025-10-31 11:57:47 5540.316 Y
270 mv: socket 1, 2025-10-31 12:12:47 5540.316 Y
271 mv: socket 1, 2025-10-31 12:27:47 5540.316 Y
272 mv: socket 1, 2025-10-31 12:42:47 5540.316 Y
273 mv: socket 1, 2025-10-31 12:57:47 5540.316 Y
274 mv: socket 1, 2025-10-31 13:12:48 5540.316 Y
275 mv: socket 1, 2025-10-31 13:27:47 5540.316 Y
276 mv: socket 1, 2025-10-31 13:42:47 5540.316 Y
277 mv: socket 1, 2025-10-31 13:57:47 5540.316 Y
278 mv: socket 1, 2025-10-31 14:12:47 5540.316 Y
279 mv: socket 1, 2025-10-31 14:27:47 5540.316 Y
280 mv: socket 1, 2025-10-31 14:42:47 5540.316 Y
281 mv: socket 1, 2025-10-31 14:57:47 5540.316 Y
282 mv: socket 1, 2025-10-31 15:12:47 5540.316 Y
283 mv: socket 1, 2025-10-31 15:27:47 5540.316 Y
284 mv: socket 1, 2025-10-31 15:42:47 5540.316 Y
285 mv: socket 1, 2025-10-31 15:57:47 5540.316 Y
286 txstart2: id 0x000000001150e1e3, socket 1, 2025-10-31 16:30:50 5540.316kWh 04BB29EAFD0F94 3 2 Y
287 mv: socket 1, 2025-10-31 16:30:50 5540.316 Y
288 mv: socket 1, 2025-10-31 16:30:52 5540.316 Y
289 mv: socket 1, 2025-10-31 16:34:42 5540.316 Y
290 txstop2: id 0x000000001150e1e3, socket 1, 2025-10-31 16:34:42 5540.316kWh 04BB29EAFD0F94 6 5 Y
291 txstart2: id 0x000000006905d45d, socket 1, 2025-10-31 16:40:37 5540.316kWh 04BB29EAFD0F94 3 2 Y
292 mv: socket 1, 2025-10-31 16:40:37 5540.316 Y
293 mv: socket 1, 2025-10-31 16:40:39 5540.316 Y
294 mv: socket 1, 2025-10-31 16:55:38 5542.386 Y
295 mv: socket 1, 2025-10-31 17:10:39 5544.580 Y
296 mv: socket 1, 2025-10-31 17:25:38 5546.672 Y
297 mv: socket 1, 2025-10-31 17:40:38 5548.035 Y
298 mv: socket 1, 2025-10-31 17:55:38 5548.035 Y
299 mv: socket 1, 2025-10-31 18:10:38 5548.035 Y
300 mv: socket 1, 2025-10-31 18:25:38 5548.035 Y
301 mv: socket 1, 2025-10-31 18:40:38 5548.035 Y
302 mv: socket 1, 2025-10-31 18:55:38 5548.035 Y
303 mv: socket 1, 2025-10-31 19:10:38 5548.035 Y
304 mv: socket 1, 2025-10-31 19:25:38 5548.035 Y
305 mv: socket 1, 2025-10-31 19:40:39 5548.035 Y
306 mv: socket 1, 2025-10-31 19:55:38 5548.035 Y
307 mv: socket 1, 2025-10-31 20:10:38 5548.035 Y
308 mv: socket 1, 2025-10-31 20:25:38 5548.035 Y
309 mv: socket 1, 2025-10-31 20:40:38 5548.035 Y
310 mv: socket 1, 2025-10-31 20:55:38 5548.035 Y
311 mv: socket 1, 2025-10-31 21:10:38 5548.035 Y
312 mv: socket 1, 2025-10-31 21:25:38 5548.035 Y
313 mv: socket 1, 2025-10-31 21:40:38 5548.035 Y
314 mv: socket 1, 2025-10-31 21:55:38 5548.035 Y
315 mv: socket 1, 2025-10-31 22:10:38 5548.035 Y
316 mv: socket 1, 2025-10-31 22:25:38 5548.035 Y
317 mv: socket 1, 2025-10-31 22:40:38 5548.035 Y
318 mv: socket 1, 2025-10-31 22:55:38 5548.035 Y
319 mv: socket 1, 2025-10-31 23:10:38 5548.035 Y
320 mv: socket 1, 2025-10-31 23:25:39 5548.035 Y
321 mv: socket 1, 2025-10-31 23:40:38 5548.035 Y
322 mv: socket 1, 2025-10-31 23:55:38 5548.035 Y
323 mv: socket 1, 2025-11-01 00:10:38 5548.621 Y
324 mv: socket 1, 2025-11-01 00:25:39 5548.621 Y
325 mv: socket 1, 2025-11-01 00:40:38 5548.621 Y
326 mv: socket 1, 2025-11-01 00:55:38 5548.621 Y
327 mv: socket 1, 2025-11-01 01:10:38 5549.452 Y
328 mv: socket 1, 2025-11-01 01:25:38 5551.081 Y
329 mv: socket 1, 2025-11-01 01:40:38 5553.323 Y
330 mv: socket 1, 2025-11-01 01:55:38 5555.846 Y
331 mv: socket 1, 2025-11-01 02:10:38 5558.138 Y
332 mv: socket 1, 2025-11-01 02:25:38 5560.275 Y
333 mv: socket 1, 2025-11-01 02:40:38 5562.812 Y
334 mv: socket 1, 2025-11-01 02:55:38 5563.678 Y
335 mv: socket 1, 2025-11-01 03:10:38 5564.969 Y
336 mv: socket 1, 2025-11-01 03:25:38 5567.483 Y
337 mv: socket 1, 2025-11-01 03:40:38 5570.004 Y
338 mv: socket 1, 2025-11-01 03:55:38 5571.247 Y
339 mv: socket 1, 2025-11-01 04:10:38 5571.836 Y
340 mv: socket 1, 2025-11-01 04:25:38 5573.281 Y
341 mv: socket 1, 2025-11-01 04:40:38 5574.919 Y
342 mv: socket 1, 2025-11-01 04:55:38 5576.427 Y
343 mv: socket 1, 2025-11-01 05:10:38 5578.320 Y
344 mv: socket 1, 2025-11-01 05:25:38 5580.255 Y
345 mv: socket 1, 2025-11-01 05:40:38 5582.202 Y
346 mv: socket 1, 2025-11-01 05:55:38 5584.129 Y
347 mv: socket 1, 2025-11-01 06:10:38 5586.061 Y
348 mv: socket 1, 2025-11-01 06:25:39 5587.987 Y
349 mv: socket 1, 2025-11-01 06:40:38 5588.146 Y
350 mv: socket 1, 2025-11-01 06:55:38 5588.146 Y
351 mv: socket 1, 2025-11-01 07:10:38 5588.146 Y
352 mv: socket 1, 2025-11-01 07:14:15 5588.146 Y
353 txstop2: id 0x000000006905d45d, socket 1, 2025-11-01 07:14:15 5588.146kWh 04BB29EAFD0F94 6 5 Y

259
import_to_alfendb.py Normal file
View File

@@ -0,0 +1,259 @@
#!/usr/bin/env python3
"""
Import charging station transaction data from CSV to existing MySQL database
Aangepast voor bestaande 'transactions' tabel structuur
"""
import re
import mysql.connector
from datetime import datetime
from decimal import Decimal
import sys
# Database configuration
DB_CONFIG = {
'host': '192.168.178.201',
'port': 3307,
'user': 'alfen_user',
'password': '5uVgr%f%s2P5GR@3q!',
'database': 'alfen', # Jouw database naam
'charset': 'utf8mb4'
}
class ChargingDataImporter:
def __init__(self, config):
self.config = config
self.conn = None
self.cursor = None
self.pending_transactions = {} # Track transactions waiting for stop
def connect(self):
"""Connect to MySQL database"""
try:
self.conn = mysql.connector.connect(**self.config)
self.cursor = self.conn.cursor()
print("✓ Database verbinding succesvol")
except mysql.connector.Error as err:
print(f"✗ Fout bij verbinden met database: {err}")
sys.exit(1)
def close(self):
"""Close database connection"""
if self.cursor:
self.cursor.close()
if self.conn:
self.conn.close()
def parse_txstart(self, line):
"""Parse transaction start line and store temporarily"""
# txstart2: id 0x0000000000000001, socket 1, 2025-10-28 18:27:42 5518.267kWh 04BB29EAFD0F94 3 2 Y
pattern = r'txstart2: id (0x[0-9a-fA-F]+), socket (\d+), ([\d-]+ [\d:]+) ([\d.]+)kWh (\w+)'
match = re.match(pattern, line)
if match:
tx_id = match.group(1) # Keep as hex string
socket_num = int(match.group(2))
timestamp = datetime.strptime(match.group(3), '%Y-%m-%d %H:%M:%S')
kwh = Decimal(match.group(4))
card = match.group(5)
# Store temporarily until we get the stop
self.pending_transactions[tx_id] = {
'transaction_id': tx_id,
'socket': socket_num,
'start_timestamp': timestamp,
'start_kWh': kwh,
'card': card
}
print(f" → Transactie {tx_id} gestart (wacht op stop...)")
return True
return False
def parse_txstop(self, line):
"""Parse transaction stop line and insert complete transaction"""
# txstop2: id 0x0000000000000001, socket 1, 2025-10-31 15:59:29 5540.316kWh 04BB29EAFD0F94 6 5 Y
pattern = r'txstop2: id (0x[0-9a-fA-F]+), socket (\d+), ([\d-]+ [\d:]+) ([\d.]+)kWh'
match = re.match(pattern, line)
if match:
tx_id = match.group(1)
socket_num = int(match.group(2))
timestamp = datetime.strptime(match.group(3), '%Y-%m-%d %H:%M:%S')
kwh = Decimal(match.group(4))
# Check if we have the start for this transaction
if tx_id not in self.pending_transactions:
print(f" ⚠ Stop gevonden voor {tx_id} maar geen start - overgeslagen")
return False
tx_data = self.pending_transactions[tx_id]
# Calculate total consumption
total_kwh = kwh - tx_data['start_kWh']
try:
# Check if transaction already exists
self.cursor.execute(
"SELECT id FROM transactions WHERE transaction_id = %s",
(tx_id,)
)
existing = self.cursor.fetchone()
if existing:
print(f" ⚠ Transactie {tx_id} bestaat al - overgeslagen")
del self.pending_transactions[tx_id]
return False
# Insert complete transaction
self.cursor.execute("""
INSERT INTO transactions
(transaction_id, socket, start_timestamp, start_kWh,
stop_timestamp, stop_kWh, total_kWh, card)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
""", (
tx_id,
tx_data['socket'],
tx_data['start_timestamp'],
tx_data['start_kWh'],
timestamp,
kwh,
total_kwh,
tx_data['card']
))
self.conn.commit()
# Remove from pending
del self.pending_transactions[tx_id]
print(f" ✓ Transactie {tx_id} opgeslagen ({total_kwh:.3f} kWh)")
return True
except mysql.connector.Error as err:
print(f" ✗ Fout bij opslaan transactie {tx_id}: {err}")
return False
return False
def import_file(self, filepath):
"""Import CSV file into database"""
print(f"\n=== Import gestart: {filepath} ===\n")
line_count = 0
tx_start_count = 0
tx_stop_count = 0
tx_saved_count = 0
try:
with open(filepath, 'r') as file:
for line_num, line in enumerate(file, 1):
line = line.strip()
# Skip empty lines and comments
if not line or line.startswith('# Generated'):
continue
line_count += 1
# Parse transaction start
if line.startswith('txstart2:'):
if self.parse_txstart(line):
tx_start_count += 1
# Parse transaction stop
elif line.startswith('txstop2:'):
if self.parse_txstop(line):
tx_stop_count += 1
tx_saved_count += 1
# Skip meter values (mv:) - niet opgeslagen in deze tabel
elif line.startswith('mv:'):
continue
print(f"\n=== Import voltooid ===")
print(f"✓ Totaal regels verwerkt: {line_count}")
print(f"✓ Transacties gestart: {tx_start_count}")
print(f"✓ Transacties gestopt: {tx_stop_count}")
print(f"✓ Transacties opgeslagen: {tx_saved_count}")
# Check for incomplete transactions
if self.pending_transactions:
print(f"\n⚠ Let op: {len(self.pending_transactions)} transactie(s) nog actief (geen stop gevonden):")
for tx_id in self.pending_transactions:
print(f" - {tx_id}")
# Show summary statistics
self.show_statistics()
except FileNotFoundError:
print(f"✗ Bestand niet gevonden: {filepath}")
sys.exit(1)
except Exception as err:
print(f"✗ Onverwachte fout: {err}")
import traceback
traceback.print_exc()
self.conn.rollback()
sys.exit(1)
def show_statistics(self):
"""Show database statistics after import"""
print("\n=== Database Statistieken ===")
# Total transactions
self.cursor.execute("SELECT COUNT(*) FROM transactions")
total_tx = self.cursor.fetchone()[0]
print(f"Totaal transacties in database: {total_tx}")
# Total consumption
self.cursor.execute("SELECT SUM(total_kWh) FROM transactions")
result = self.cursor.fetchone()
total_consumption = result[0] if result[0] else 0
print(f"Totaal verbruik: {total_consumption:.3f} kWh")
# Latest transaction
self.cursor.execute("""
SELECT transaction_id, start_timestamp, stop_timestamp, total_kWh
FROM transactions
ORDER BY stop_timestamp DESC
LIMIT 1
""")
latest = self.cursor.fetchone()
if latest:
print(f"\nLaatste transactie:")
print(f" ID: {latest[0]}")
print(f" Periode: {latest[1]} - {latest[2]}")
print(f" Verbruik: {latest[3]:.3f} kWh")
def main():
if len(sys.argv) < 2:
print("Gebruik: python3 import_to_existing_db.py <csv_bestand>")
print("\nVoorbeeld: python3 import_to_existing_db.py VAN_01971_Transactions.csv")
sys.exit(1)
csv_file = sys.argv[1]
print("=" * 60)
print("Charging Station Data Importer")
print("Import naar bestaande 'transactions' tabel")
print("=" * 60)
# Create importer instance
importer = ChargingDataImporter(DB_CONFIG)
try:
# Connect to database
importer.connect()
# Import the file
importer.import_file(csv_file)
finally:
# Close connection
importer.close()
print("\n✓ Database verbinding gesloten")
if __name__ == "__main__":
main()