Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)

Begonnen von DS_Starter, 19 Mai 2016, 22:52:13

Vorheriges Thema - Nächstes Thema

ch.eick

Zitat von: awex102 am 26 Oktober 2020, 17:36:27
Jetzt bin ich auf das Thema Grünlandtemperatursumme gestoßen und möchte das Thema gerne als Anregung in die Roadmap geben.

Es werden die positiven Tagesmitteltemperaturen addiert, bis sie 200 erreichen. Negative Tagesmitteltemperaturen werden verworfen. Zusätzlich wird ein ein Faktor pro Monat erstellt:
Aus Wikipedia: Es werden ab Jahresbeginn alle positiven Tagesmittel erfasst. Im Januar wird mit dem Faktor 0,5 multipliziert, im Februar mit dem Faktor 0,75, und ab März geht dann der ,,volle" Tageswert (mal Faktor 1) in die Rechnung ein.

Die GTS gibt in der Agrarwirtschaft den Zeitpunkt an, ab dem Pflanzen zu wachsen beginnen.

Was ich mir sehr gut in Kombi mit deiner Tagesmitteltemperatur - Berechnung vorstellen könnte, ist die Berechnung des GTS pro Jahr.
Z.B. ein get, das den tagesaktuellen Wert der Grünlandtemperatursumme zurückgibt. Bei GTS >= 200 gibt das reading keine neuen Werte aus, bleibt also stehen und man kann den Stichtagtag ablesen bzw. darauf in fhem reagieren und notify oder doif nutzen um z.B. eine Notification ans Handy zu senden. Und im nächsten Jahr von vorne.

Die Berechnung der Tagesmitteltemperaturen muss nach den Vorgaben des DWD erfolgen.

Hallo awex102,

ich denke, das wird so nichts :-) Das ist schon eher eine Anwendungs-, als eine Datenbankfrage.

In solch einem Fall könntest Du ein SQL Statement erstellen und hier vorstellen.
Wenn das dann eine mehrfach zu verwendende Abfrage ist, kann man diese als "sqlSpecial" in DbRep integrieren.
So sind bereits zwei SQLs von mir mit aufgenommen worden, aber die Vorarbeit musste ich schon abliefern.

Siehe auch hier bei den Beispielen hilfreiche_SQL_Statements

Gruß
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo Heiko, hallo alle anderen interessierten.
Nach meinem letzten demotivierenden Post möchte ich nun nochmal ein sqlSpecial zur Diskussion stellen :-)

Das Problem:
Bei einigen Einträgen, die sich vom Minimum zum Maximum innerhalb eines Tages steigern kommt es vor, dass der erste Eintrag eigentlich der letze vom Vortag ist.
Bildet man nun den maxValue so erkennt man, dass das Maximum anstatt am Ende des Tages nun zu beginn des Tages ist.
Weiterhin kann es sein, dass das Maximum trotzdem am Tages Ende ist, jedoch ist dann das Maximum vom Vortag etwas zu gering.

Die Idee, um das zu beheben:
Der erste Wert des Tages muss überprüft werde, ob er noch zum Vortag gehört und dann auf z.B. 23:59 des Vortages verschoben werden.

Bei diesem SQL wird eine LAG() Funktion verwendet, falls jemand das noch mal im Netz näher nachschlagen möchte.

Ein Beispiel inklusive des korrigierten TIMESTAMP

## vor der Korrektur
+---------------------+-----------------+-------------------------------+-------+
| TIMESTAMP           | DEVICE          | READING                       | VALUE |
+---------------------+-----------------+-------------------------------+-------+
| 2020-09-01 23:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 16910 |
| 2020-09-02 00:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 17340 |   <<< das ist viel zu hoch
| 2020-09-02 01:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 220   |
+---------------------+-----------------+-------------------------------+-------+

## die Vorbereitung
+---------------------+---------------------+-----------------+-------------------------------+-------+
| TIMESTAMP_new       | TIMESTAMP           | DEVICE          | READING                       | VALUE |
+---------------------+---------------------+-----------------+-------------------------------+-------+
| 2020-09-01 23:59:00 | 2020-09-02 00:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 17340 |
| 2020-09-02 23:59:00 | 2020-09-03 00:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 16490 |
+---------------------+---------------------+-----------------+-------------------------------+-------+

## nach der Korrektur
+---------------------+-----------------+-------------------------------+-------+
| TIMESTAMP           | DEVICE          | READING                       | VALUE |
+---------------------+-----------------+-------------------------------+-------+
| 2020-09-01 23:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 16910 |
| 2020-09-01 23:59:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 17340 |
| 2020-09-02 01:57:00 | PV_Anlage_1_API | Statistic_EnergyHomePvSum_Day | 220   |
+---------------------+-----------------+-------------------------------+-------+


Hiermit wird ein Zeitraum analysiert und der neue TIMESTAMP hinzugefügt

## Für welches DEVICE und READING soll es gelten
SET @device='PV_Anlage_1_API';SET @reading='Statistic_EnergyHomePvSum_Day';

## welcher Zeitraum soll überprüft werden
SET @interval=NOW() - INTERVAL 12 Month;

## Diese Variablen müssen vor jedem Lauf zurück gesetzt werden
SET @diff=0;SET @temp=0;
SELECT TIMESTAMPADD(MINUTE,23*60+59,DATE(DATE_SUB(t1.TIMESTAMP, INTERVAL 1 DAY))) AS TIMESTAMP_new,
       t1.TIMESTAMP,t1.DEVICE,t1.READING,t1.VALUE
  FROM
    (
     SELECT TIMESTAMP,DEVICE,READING,VALUE,
            if(@diff  = 0,NULL, @temp:=cast((VALUE-@diff) AS DECIMAL(6,2))),
            if(@temp <= 0,NULL, @temp)               AS DIFF,
            @diff:=VALUE                             AS curr_V
       FROM  history
       WHERE  TIMESTAMP  >=   @interval
         AND  DEVICE      =   @device
         AND  READING     =   @reading
         AND (TIMESTAMP LIKE '% 23:%' OR
              TIMESTAMP LIKE '% 00:%')
       ORDER BY TIMESTAMP
    ) t1
  WHERE TIMESTAMP NOT LIKE '% 23:%'
    AND DIFF   IS NOT NULL ;


Achtung, ab hier wäre ein Backup von Vorteil, wenn mal etwas schief geht ;-)

Das vorherige SELECT wird nun in ein UPDATE eingebettet.
Das UPDATE hat zwei Tabellen (dest und src) in Verwendung.
Besonders wichtig ist natürlich die WHERE Klausel im UPDATE, damit auch wirklich der richtige Eintrag in der Datenbank geändert wird.

## Für welches DEVICE und READING soll es gelten
SET @device='PV_Anlage_1_API';SET @reading='Statistic_EnergyHomePvSum_Day';

## welcher Zeitraum soll bearbeitet werden
SET @interval=NOW() - INTERVAL 12 Month;

## Diese Variablen müssen vor jedem Lauf zurück gesetzt werden
SET @diff=0;SET @temp=0;
UPDATE history AS dest,
  (
   SELECT TIMESTAMPADD(MINUTE,23*60+59,DATE(DATE_SUB(t1.TIMESTAMP, INTERVAL 1 DAY))) AS TIMESTAMP_new,
          t1.TIMESTAMP,t1.DEVICE,t1.READING,t1.VALUE
     FROM
       (
        SELECT TIMESTAMP,DEVICE,READING,VALUE,
               if(@diff  = 0,NULL, @temp:=cast((VALUE-@diff) AS DECIMAL(6,2))),
               if(@temp <= 0,NULL, @temp)               AS DIFF,
               @diff:=VALUE                             AS curr_V
          FROM  history
          WHERE  TIMESTAMP  >=   @interval
            AND  DEVICE      =   @device
            AND  READING     =   @reading
            AND (TIMESTAMP LIKE '% 23:%' OR
                 TIMESTAMP LIKE '% 00:%')
          ORDER BY TIMESTAMP
       ) t1
     WHERE TIMESTAMP NOT LIKE '% 23:%'
       AND DIFF   IS NOT NULL
  ) AS src

  SET   dest.TIMESTAMP = src.TIMESTAMP_new,
        dest.DEVICE    = src.DEVICE,
        dest.READING   = src.READING,
        dest.VALUE     = src.VALUE

  WHERE dest.TIMESTAMP = src.TIMESTAMP AND
        dest.DEVICE    = src.DEVICE    AND
        dest.READING   = src.READING   AND
        dest.VALUE     = src.VALUE ;


Die Laufzeit des SELECT beträgt bei mir ca. 50 Sekunden, wobei es nicht stark variiert wenn der Zeitraum kürzen ist.
Der UPDATE lief dann ebenfalls ca. um eine Minute für 12 Monate und etwa 140 Einträge, die aus dem SELECT gekommen sind.

Ich werde das nun noch bei allen anderen Problemfällen anwenden und dann von weiteren Erfahrungen hier berichten.
Sollte jemand eine einfachere oder bessere Lösung haben, so mag er jetzt schreiben :-)

Viele Grüße
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Hallo zusammen,

Da hat sich während meines Urlaubs einiges gestaut. Ich lese mit, werde aber alles nach und nach abarbeiten können.
Smaportal und meine synology module brauchen auch noch etwas aufmerksamkeit.  ;)

Aber zu gegebener zeit nehme ich mir dbrep wieder vor.

Lg
ESXi@NUC+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

DS_Starter

#1308
Hallo awex102, @all,

ich habe in einer Testversion die Bereitstellung der Grünlandtemperatur umgesetzt. Dazu habe ich auch etwas im Netz gelesen und finde diesen Kennwert insgesamt recht interessant.
Da ich in meiner Datenbank auch immer schon die Temperaturen aufzeichne um sie vielleicht irgendwann mal auszuwerten, konnte ich mit diesen Daten auch gleich einen Praxistest durchführen. Ich kam für dieses Jahr auf das gleiche Ergebnis wie auf dieser Karte für 2020 dargestellt.

Die Grünlandtemperatur ist eine Ergänzung zur  Berechnung des Tagesdurchschnitts des DWD, der eine bestimmte festgelegte Vorschrift der Temperaturermittlung vorgibt. Dazu gibt es einen neuen Wert für das Attribut:

averageCalcForm = avgDailyMeanGWSwithGTS

Ist dieses Attrbut gesetzt, wird mit einem

set <> averagevalue

neben der Tagesmitteltemperatur auch die Grünlandtemperatur berechnet und ausgegeben, sofern die erforderlichen Werte gemäß Vorschrift des DWD vorhanden sind.
Damit das sinnvol geschehen kann, muß man natürlich den timestamp_begin auf z.B. current_year_begin oder 01.01.XXXX setzen. Das Attr timestamp_end kann zwar beliebig sein, aber in diesem Kontext reicht es auf z.B. auf 01.05.XXXX zu setzen. Da der Wert jeder einzelnen Stunde berücksichtigt/bewertet werden muß, ist der Lauf relativ (zeit)aufwändig.

Hier eine Beispieldefinition eines Devices für die Grünlandtemperatur Ermittlung:


defmod Rep.Temp.greenland DbRep LogDB
attr Rep.Temp.greenland averageCalcForm avgDailyMeanGWSwithGTS
attr Rep.Temp.greenland devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.Temp.greenland device MyWetter
attr Rep.Temp.greenland fastStart 1
attr Rep.Temp.greenland reading temperature
attr Rep.Temp.greenland room DbLog
attr Rep.Temp.greenland showproctime 1
attr Rep.Temp.greenland timestamp_begin current_year_begin
attr Rep.Temp.greenland timestamp_end 2020-03-01 00:00:00
attr Rep.Temp.greenland verbose 3


Das Ergebnis:


   READINGS:
     2020-11-08 20:07:24   2020-01-01__MyWetter__temperature__AVGDMGWS__2020-01-01 1.5
     2020-11-08 20:07:24   2020-01-01__MyWetter__temperature__GrasslandTemperatureSum 0.8
     2020-11-08 20:07:24   2020-01-02__MyWetter__temperature__AVGDMGWS__2020-01-02 1.0
     2020-11-08 20:07:24   2020-01-02__MyWetter__temperature__GrasslandTemperatureSum 1.3
     2020-11-08 20:07:24   2020-01-03__MyWetter__temperature__AVGDMGWS__2020-01-03 5.2
     2020-11-08 20:07:24   2020-01-03__MyWetter__temperature__GrasslandTemperatureSum 3.9
     2020-11-08 20:07:24   2020-01-04__MyWetter__temperature__AVGDMGWS__2020-01-04 4.2
     2020-11-08 20:07:24   2020-01-04__MyWetter__temperature__GrasslandTemperatureSum 6.0
     2020-11-08 20:07:24   2020-01-05__MyWetter__temperature__AVGDMGWS__2020-01-05 2.8
     2020-11-08 20:07:24   2020-01-05__MyWetter__temperature__GrasslandTemperatureSum 7.4
     2020-11-08 20:07:24   2020-01-06__MyWetter__temperature__AVGDMGWS__2020-01-06 3.5
     2020-11-08 20:07:24   2020-01-06__MyWetter__temperature__GrasslandTemperatureSum 9.1
     2020-11-08 20:07:24   2020-01-07__MyWetter__temperature__AVGDMGWS__2020-01-07 2.5
     2020-11-08 20:07:24   2020-01-07__MyWetter__temperature__GrasslandTemperatureSum 10.4
     2020-11-08 20:07:24   2020-01-08__MyWetter__temperature__AVGDMGWS__2020-01-08 5.5
     2020-11-08 20:07:24   2020-01-08__MyWetter__temperature__GrasslandTemperatureSum 13.2
     2020-11-08 20:07:24   2020-01-09__MyWetter__temperature__AVGDMGWS__2020-01-09 8.3
     2020-11-08 20:07:24   2020-01-09__MyWetter__temperature__GrasslandTemperatureSum 17.4
     2020-11-08 20:07:24   2020-01-10__MyWetter__temperature__AVGDMGWS__2020-01-10 8.8
     2020-11-08 20:07:24   2020-01-10__MyWetter__temperature__GrasslandTemperatureSum 21.8
     2020-11-08 20:07:24   2020-01-11__MyWetter__temperature__AVGDMGWS__2020-01-11 4.1
     2020-11-08 20:07:24   2020-01-11__MyWetter__temperature__GrasslandTemperatureSum 23.8
     2020-11-08 20:07:24   2020-01-12__MyWetter__temperature__AVGDMGWS__2020-01-12 3.0
     2020-11-08 20:07:24   2020-01-12__MyWetter__temperature__GrasslandTemperatureSum 25.3
     2020-11-08 20:07:24   2020-01-13__MyWetter__temperature__AVGDMGWS__2020-01-13 4.7
     2020-11-08 20:07:24   2020-01-13__MyWetter__temperature__GrasslandTemperatureSum 27.7
     2020-11-08 20:07:24   2020-01-14__MyWetter__temperature__AVGDMGWS__2020-01-14 7.5
     2020-11-08 20:07:24   2020-01-14__MyWetter__temperature__GrasslandTemperatureSum 31.5
     2020-11-08 20:07:24   2020-01-15__MyWetter__temperature__AVGDMGWS__2020-01-15 10.3
     2020-11-08 20:07:24   2020-01-15__MyWetter__temperature__GrasslandTemperatureSum 36.6
     2020-11-08 20:07:24   2020-01-16__MyWetter__temperature__AVGDMGWS__2020-01-16 8.0
     2020-11-08 20:07:24   2020-01-16__MyWetter__temperature__GrasslandTemperatureSum 40.6
     2020-11-08 20:07:24   2020-01-17__MyWetter__temperature__AVGDMGWS__2020-01-17 4.9
     2020-11-08 20:07:24   2020-01-17__MyWetter__temperature__GrasslandTemperatureSum 43.1
     2020-11-08 20:07:24   2020-01-18__MyWetter__temperature__AVGDMGWS__2020-01-18 5.3
     2020-11-08 20:07:24   2020-01-18__MyWetter__temperature__GrasslandTemperatureSum 45.7
     2020-11-08 20:07:24   2020-01-19__MyWetter__temperature__AVGDMGWS__2020-01-19 3.0
     2020-11-08 20:07:24   2020-01-19__MyWetter__temperature__GrasslandTemperatureSum 47.2
     2020-11-08 20:07:24   2020-01-20__MyWetter__temperature__AVGDMGWS__2020-01-20 2.2
     2020-11-08 20:07:24   2020-01-20__MyWetter__temperature__GrasslandTemperatureSum 48.4
     2020-11-08 20:07:24   2020-01-21__MyWetter__temperature__AVGDMGWS__2020-01-21 0.5
     2020-11-08 20:07:24   2020-01-21__MyWetter__temperature__GrasslandTemperatureSum 48.6
     2020-11-08 20:07:24   2020-01-22__MyWetter__temperature__AVGDMGWS__2020-01-22 0.4
     2020-11-08 20:07:24   2020-01-22__MyWetter__temperature__GrasslandTemperatureSum 48.8
     2020-11-08 20:07:24   2020-01-23__MyWetter__temperature__AVGDMGWS__2020-01-23 2.0
     2020-11-08 20:07:24   2020-01-23__MyWetter__temperature__GrasslandTemperatureSum 49.8
     2020-11-08 20:07:24   2020-01-24__MyWetter__temperature__AVGDMGWS__2020-01-24 -0.2
     2020-11-08 20:07:24   2020-01-25__MyWetter__temperature__AVGDMGWS__2020-01-25 -0.1
     2020-11-08 20:07:24   2020-01-26__MyWetter__temperature__AVGDMGWS__2020-01-26 0.9
     2020-11-08 20:07:24   2020-01-26__MyWetter__temperature__GrasslandTemperatureSum 50.2
     2020-11-08 20:07:24   2020-01-27__MyWetter__temperature__AVGDMGWS__2020-01-27 5.1
     2020-11-08 20:07:24   2020-01-27__MyWetter__temperature__GrasslandTemperatureSum 52.8
     2020-11-08 20:07:24   2020-01-28__MyWetter__temperature__AVGDMGWS__2020-01-28 5.2
     2020-11-08 20:07:24   2020-01-28__MyWetter__temperature__GrasslandTemperatureSum 55.4
     2020-11-08 20:07:24   2020-01-29__MyWetter__temperature__AVGDMGWS__2020-01-29 3.8
     2020-11-08 20:07:24   2020-01-29__MyWetter__temperature__GrasslandTemperatureSum 57.3
     2020-11-08 20:07:24   2020-01-30__MyWetter__temperature__AVGDMGWS__2020-01-30 5.7
     2020-11-08 20:07:24   2020-01-30__MyWetter__temperature__GrasslandTemperatureSum 60.1
     2020-11-08 20:07:24   2020-01-31__MyWetter__temperature__AVGDMGWS__2020-01-31 11.1
     2020-11-08 20:07:24   2020-01-31__MyWetter__temperature__GrasslandTemperatureSum 65.7
     2020-11-08 20:07:24   2020-02-01__MyWetter__temperature__AVGDMGWS__2020-02-01 11.1
     2020-11-08 20:07:24   2020-02-01__MyWetter__temperature__GrasslandTemperatureSum 74.0
     2020-11-08 20:07:24   2020-02-02__MyWetter__temperature__AVGDMGWS__2020-02-02 7.7
     2020-11-08 20:07:24   2020-02-02__MyWetter__temperature__GrasslandTemperatureSum 79.8
     2020-11-08 20:07:24   2020-02-03__MyWetter__temperature__AVGDMGWS__2020-02-03 8.9
     2020-11-08 20:07:24   2020-02-03__MyWetter__temperature__GrasslandTemperatureSum 86.5
     2020-11-08 20:07:24   2020-02-04__MyWetter__temperature__AVGDMGWS__2020-02-04 4.8
     2020-11-08 20:07:24   2020-02-04__MyWetter__temperature__GrasslandTemperatureSum 90.1
     2020-11-08 20:07:24   2020-02-05__MyWetter__temperature__AVGDMGWS__2020-02-05 2.9
     2020-11-08 20:07:24   2020-02-05__MyWetter__temperature__GrasslandTemperatureSum 92.3
     2020-11-08 20:07:24   2020-02-06__MyWetter__temperature__AVGDMGWS__2020-02-06 2.8
     2020-11-08 20:07:24   2020-02-06__MyWetter__temperature__GrasslandTemperatureSum 94.4
     2020-11-08 20:07:24   2020-02-07__MyWetter__temperature__AVGDMGWS__2020-02-07 4.4
     2020-11-08 20:07:24   2020-02-07__MyWetter__temperature__GrasslandTemperatureSum 97.7
     2020-11-08 20:07:24   2020-02-08__MyWetter__temperature__AVGDMGWS__2020-02-08 4.2
     2020-11-08 20:07:24   2020-02-08__MyWetter__temperature__GrasslandTemperatureSum 100.9
     2020-11-08 20:07:24   2020-02-09__MyWetter__temperature__AVGDMGWS__2020-02-09 9.2
     2020-11-08 20:07:24   2020-02-09__MyWetter__temperature__GrasslandTemperatureSum 107.8
     2020-11-08 20:07:24   2020-02-10__MyWetter__temperature__AVGDMGWS__2020-02-10 7.7
     2020-11-08 20:07:24   2020-02-10__MyWetter__temperature__GrasslandTemperatureSum 113.6
     2020-11-08 20:07:24   2020-02-11__MyWetter__temperature__AVGDMGWS__2020-02-11 4.3
     2020-11-08 20:07:24   2020-02-11__MyWetter__temperature__GrasslandTemperatureSum 116.8
     2020-11-08 20:07:24   2020-02-12__MyWetter__temperature__AVGDMGWS__2020-02-12 4.0
     2020-11-08 20:07:24   2020-02-12__MyWetter__temperature__GrasslandTemperatureSum 119.8
     2020-11-08 20:07:24   2020-02-13__MyWetter__temperature__AVGDMGWS__2020-02-13 3.6
     2020-11-08 20:07:24   2020-02-13__MyWetter__temperature__GrasslandTemperatureSum 122.5
     2020-11-08 20:07:24   2020-02-14__MyWetter__temperature__AVGDMGWS__2020-02-14 5.6
     2020-11-08 20:07:24   2020-02-14__MyWetter__temperature__GrasslandTemperatureSum 126.7
     2020-11-08 20:07:24   2020-02-15__MyWetter__temperature__AVGDMGWS__2020-02-15 6.3
     2020-11-08 20:07:24   2020-02-15__MyWetter__temperature__GrasslandTemperatureSum 131.4
     2020-11-08 20:07:24   2020-02-16__MyWetter__temperature__AVGDMGWS__2020-02-16 12.3
     2020-11-08 20:07:24   2020-02-16__MyWetter__temperature__GrasslandTemperatureSum 140.7
     2020-11-08 20:07:24   2020-02-17__MyWetter__temperature__AVGDMGWS__2020-02-17 9.8
     2020-11-08 20:07:24   2020-02-17__MyWetter__temperature__GrasslandTemperatureSum 148.0
     2020-11-08 20:07:24   2020-02-18__MyWetter__temperature__AVGDMGWS__2020-02-18 7.0
     2020-11-08 20:07:24   2020-02-18__MyWetter__temperature__GrasslandTemperatureSum 153.3
     2020-11-08 20:07:24   2020-02-19__MyWetter__temperature__AVGDMGWS__2020-02-19 5.5
     2020-11-08 20:07:24   2020-02-19__MyWetter__temperature__GrasslandTemperatureSum 157.4
     2020-11-08 20:07:24   2020-02-20__MyWetter__temperature__AVGDMGWS__2020-02-20 5.2
     2020-11-08 20:07:24   2020-02-20__MyWetter__temperature__GrasslandTemperatureSum 161.3
     2020-11-08 20:07:24   2020-02-21__MyWetter__temperature__AVGDMGWS__2020-02-21 6.0
     2020-11-08 20:07:24   2020-02-21__MyWetter__temperature__GrasslandTemperatureSum 165.8
     2020-11-08 20:07:24   2020-02-22__MyWetter__temperature__AVGDMGWS__2020-02-22 8.5
     2020-11-08 20:07:24   2020-02-22__MyWetter__temperature__GrasslandTemperatureSum 172.2
     2020-11-08 20:07:24   2020-02-23__MyWetter__temperature__AVGDMGWS__2020-02-23 9.5
     2020-11-08 20:07:24   2020-02-23__MyWetter__temperature__GrasslandTemperatureSum 179.3
     2020-11-08 20:07:24   2020-02-24__MyWetter__temperature__AVGDMGWS__2020-02-24 5.7
     2020-11-08 20:07:24   2020-02-24__MyWetter__temperature__GrasslandTemperatureSum 183.6
     2020-11-08 20:07:24   2020-02-25__MyWetter__temperature__AVGDMGWS__2020-02-25 8.9
     2020-11-08 20:07:24   2020-02-25__MyWetter__temperature__GrasslandTemperatureSum 190.3
     2020-11-08 20:07:24   2020-02-26__MyWetter__temperature__AVGDMGWS__2020-02-26 3.5
     2020-11-08 20:07:24   2020-02-26__MyWetter__temperature__GrasslandTemperatureSum 192.9
     2020-11-08 20:07:24   2020-02-27__MyWetter__temperature__AVGDMGWS__2020-02-27 3.2
     2020-11-08 20:07:24   2020-02-27__MyWetter__temperature__GrasslandTemperatureSum 195.3
     2020-11-08 20:07:24   2020-02-28__MyWetter__temperature__AVGDMGWS__2020-02-28 3.2
     2020-11-08 20:07:24   2020-02-28__MyWetter__temperature__GrasslandTemperatureSum 197.7
     2020-11-08 20:07:24   2020-02-29__MyWetter__temperature__AVGDMGWS__2020-02-29 7.2
     2020-11-08 20:07:24   2020-02-29__MyWetter__temperature__GrasslandTemperatureSum 203.1
     2020-11-08 20:07:24   2020-03-01__MyWetter__temperature__AVGDMGWS__2020-03-01 7.1
     2020-11-08 20:07:24   2020-03-01__MyWetter__temperature__GrasslandTemperatureSum 210.2
     2020-11-08 20:07:24   background_processing_time 36.3184
     2020-11-08 20:07:24   sql_processing_time 36.3164
     2020-11-08 20:07:24   state           done


Es werden auch entsprechende Events für jeden einzelnen Tagwert erstellt, die ggf. über ein notify oder über eine userExitFn ausgewertet werden können. z.B.:


2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-01__MyWetter__temperature__GrasslandTemperatureSum: 0.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-02__MyWetter__temperature__GrasslandTemperatureSum: 1.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-03__MyWetter__temperature__GrasslandTemperatureSum: 3.9
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-04__MyWetter__temperature__GrasslandTemperatureSum: 6.0
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-05__MyWetter__temperature__GrasslandTemperatureSum: 7.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-06__MyWetter__temperature__GrasslandTemperatureSum: 9.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-07__MyWetter__temperature__GrasslandTemperatureSum: 10.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-08__MyWetter__temperature__GrasslandTemperatureSum: 13.2
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-09__MyWetter__temperature__GrasslandTemperatureSum: 17.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-10__MyWetter__temperature__GrasslandTemperatureSum: 21.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-11__MyWetter__temperature__GrasslandTemperatureSum: 23.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-12__MyWetter__temperature__GrasslandTemperatureSum: 25.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-13__MyWetter__temperature__GrasslandTemperatureSum: 27.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-14__MyWetter__temperature__GrasslandTemperatureSum: 31.5
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-15__MyWetter__temperature__GrasslandTemperatureSum: 36.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-16__MyWetter__temperature__GrasslandTemperatureSum: 40.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-17__MyWetter__temperature__GrasslandTemperatureSum: 43.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-18__MyWetter__temperature__GrasslandTemperatureSum: 45.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-19__MyWetter__temperature__GrasslandTemperatureSum: 47.2
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-20__MyWetter__temperature__GrasslandTemperatureSum: 48.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-21__MyWetter__temperature__GrasslandTemperatureSum: 48.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-22__MyWetter__temperature__GrasslandTemperatureSum: 48.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-23__MyWetter__temperature__GrasslandTemperatureSum: 49.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-26__MyWetter__temperature__GrasslandTemperatureSum: 50.2
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-27__MyWetter__temperature__GrasslandTemperatureSum: 52.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-28__MyWetter__temperature__GrasslandTemperatureSum: 55.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-29__MyWetter__temperature__GrasslandTemperatureSum: 57.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-30__MyWetter__temperature__GrasslandTemperatureSum: 60.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-01-31__MyWetter__temperature__GrasslandTemperatureSum: 65.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-01__MyWetter__temperature__GrasslandTemperatureSum: 74.0
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-02__MyWetter__temperature__GrasslandTemperatureSum: 79.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-03__MyWetter__temperature__GrasslandTemperatureSum: 86.5
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-04__MyWetter__temperature__GrasslandTemperatureSum: 90.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-05__MyWetter__temperature__GrasslandTemperatureSum: 92.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-06__MyWetter__temperature__GrasslandTemperatureSum: 94.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-07__MyWetter__temperature__GrasslandTemperatureSum: 97.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-08__MyWetter__temperature__GrasslandTemperatureSum: 100.9
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-09__MyWetter__temperature__GrasslandTemperatureSum: 107.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-10__MyWetter__temperature__GrasslandTemperatureSum: 113.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-11__MyWetter__temperature__GrasslandTemperatureSum: 116.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-12__MyWetter__temperature__GrasslandTemperatureSum: 119.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-13__MyWetter__temperature__GrasslandTemperatureSum: 122.5
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-14__MyWetter__temperature__GrasslandTemperatureSum: 126.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-15__MyWetter__temperature__GrasslandTemperatureSum: 131.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-16__MyWetter__temperature__GrasslandTemperatureSum: 140.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-17__MyWetter__temperature__GrasslandTemperatureSum: 148.0
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-18__MyWetter__temperature__GrasslandTemperatureSum: 153.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-19__MyWetter__temperature__GrasslandTemperatureSum: 157.4
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-20__MyWetter__temperature__GrasslandTemperatureSum: 161.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-21__MyWetter__temperature__GrasslandTemperatureSum: 165.8
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-22__MyWetter__temperature__GrasslandTemperatureSum: 172.2
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-23__MyWetter__temperature__GrasslandTemperatureSum: 179.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-24__MyWetter__temperature__GrasslandTemperatureSum: 183.6
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-25__MyWetter__temperature__GrasslandTemperatureSum: 190.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-26__MyWetter__temperature__GrasslandTemperatureSum: 192.9
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-27__MyWetter__temperature__GrasslandTemperatureSum: 195.3
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-28__MyWetter__temperature__GrasslandTemperatureSum: 197.7
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-02-29__MyWetter__temperature__GrasslandTemperatureSum: 203.1
2020-11-08 20:07:24.555 DbRep Rep.Temp.greenland 2020-03-01__MyWetter__temperature__GrasslandTemperatureSum: 210.2
 

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben und danach FHEM restarten:


"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"


Bin auf dein/euer Testergebnis gespannt.

Grüße,
Heiko
ESXi@NUC+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

ch.eick

Hallo zusammen,

ich mache gerade meinen ersten sync in eine weitere Datenbank, mit welchem timeDiffToNow bekomme ich denn alles rüber?

Dieser Parameter läuft gerade und es sind bereits 1,7 von 3,2 Gb drüben.

timeDiffToNow y:1


Das Endziel ist alles synchron zu haben und dann das Logging auf der neuen Datenbank weiter laufen zu lassen.

Gruß
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Hi Christian,

wenn du alles haben willst, brauchst du die time.* Attr zur Abgrenzung nicht setzen.
Jetzt hast du schon soviel übertragen. Dann machst du noch eine weiteren Lauf wenn der fertig ist mit timeOlderThan.

Damit der RAM nicht strapaziert wird, kannst du Attribut "aggregation" benutzen. Aber hast du sicher gelesen.

Grüße,
Heiko
ESXi@NUC+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

ch.eick

Zitat von: DS_Starter am 10 November 2020, 13:35:59
wenn du alles haben willst, brauchst du die time.* Attr zur Abgrenzung nicht setzen.
Jetzt hast du schon soviel übertragen. Dann machst du noch eine weiteren Lauf wenn der fertig ist mit timeOlderThan.

Damit der RAM nicht strapaziert wird, kannst du Attribut "aggregation" benutzen. Aber hast du sicher gelesen.
Leider war ich Dumm und experimentierfreudig :-(

Ich habe

aggregation no
timeDiffToNow y:1


Dann ist wohl der Index noch noch da. Gerade läuft ein "delDoublets delete" und dann erstelle ich noch den Index.

Was müsste ich dann genau setzen, um den Rest zu transferieren? Die Laufzeit ist nicht so kritisch.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Einfach nur

timeOlderThan y:1

damit alle Daten älter als ein Jahr übertragen werden die im vorherigen Lauf ausgegrenzt hast.
Wenn du im Ziel einen PK angelegt hast, kannst du den Zeitraum auch etwas überlappen lassen ohne das doppelte DS entstehen. Kennst du ja.
ESXi@NUC+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

ch.eick

Zitat von: DS_Starter am 10 November 2020, 14:06:41
Einfach nur

timeOlderThan y:1

damit alle Daten älter als ein Jahr übertragen werden die im vorherigen Lauf ausgegrenzt hast.
Wenn du im Ziel einen PK angelegt hast, kannst du den Zeitraum auch etwas überlappen lassen ohne das doppelte DS entstehen. Kennst du ja.

Ich werde immer gewandter in Datenbanken ;-)

Übrigens habe ich bei DbRep kein next_day_begin oder end gefunden.
Das wäre für meine Prognose recht praktisch, weil ich heute schon Einträge für den nächsten Tag habe.
Mit Angabe des Datums geht es natürlich, da muss man dann allerdings jedesmal rechnen.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

ZitatÜbrigens habe ich bei DbRep kein next_day_begin oder end gefunden.
Richtig, gibts bisher nicht. Das wäre ein Featurerequest.  ;)

ZitatIch werde immer gewandter in Datenbanken ;-)
Das ist gut. Dann kannst du mir mit ausgebufften SQLs unter die Arme greifen. Ehrlich.
Ich habe kaum noch Zeit und Muße dazu.
ESXi@NUC+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

ch.eick

Zitat von: DS_Starter am 10 November 2020, 14:18:37
Richtig, gibts bisher nicht. Das wäre ein Featurerequest.  ;)
Request, request,request :-)

Zitat
Das ist gut. Dann kannst du mir mit ausgebufften SQLs unter die Arme greifen. Ehrlich.
Ich habe kaum noch Zeit und Muße dazu.
Was fehlt Dir denn?

Der letzte von mir war doch schon mal gut  ::)
Der verschiebt den ersten Eintrag am Tag, wenn er größer ist als der zweite, zurück auf den Vortag.
Das passiert bei mir schon mal, da die PV_Anlage den Tagesabschluss zu spät macht. Dann war nachts vor 01:00 Uhr bereits das Maximum des Tages erreicht :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

 :)  Ich nehme den Request mit auf. Erst will ich GTS aber ordentlich beenden und einchecken.

Aktuell fehlt mir nichts. Das war jetzt ganz allgemein bemerkt und natürlich auch ernst gemeint, da du inzwischen stark eingestiegen bist. Allerdings immer dran denken es muss auch für SQLite und Postgre laufen, nicht nur MySQL Brille.  :)
ESXi@NUC+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

ch.eick

Zitat von: DS_Starter am 10 November 2020, 14:29:32
Allerdings immer dran denken es muss auch für SQLite und Postgre laufen, nicht nur MySQL Brille.  :)
Ich versuche immer nur Basis Funktionalitäten zu verwenden und anders DBs habe ich noch nicht verwendet.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

#1318
Da ich ja sooo net gebeten wurde mal wieder SQL zu liefern :-)

Hier ein SQL, mit dem man überprüfen kann, ob ein Primary Key durchlaufen würde

SELECT
  TIMESTAMP, COUNT(TIMESTAMP),
  DEVICE, COUNT(DEVICE),
  READING, COUNT(READING)
FROM history
GROUP BY
  TIMESTAMP,
  DEVICE,
  READING
HAVING COUNT(TIMESTAMP)>1
  AND COUNT(DEVICE)>1
  AND COUNT(READING)>1;

+---------------------+------------------+----------------------+---------------+------------------------------------+----------------+
| TIMESTAMP           | COUNT(TIMESTAMP) | DEVICE               | COUNT(DEVICE) | READING                            | COUNT(READING) |
+---------------------+------------------+----------------------+---------------+------------------------------------+----------------+
| 2020-03-11 08:54:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_battery  |              2 |
| 2020-03-11 11:36:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_battery  |              2 |
| 2020-03-11 12:48:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_PV       |              2 |
| 2020-03-11 13:00:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_battery  |              2 |
| 2020-03-11 14:06:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_battery  |              2 |
| 2020-03-11 14:18:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_battery  |              2 |
| 2020-03-12 11:06:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_battery  |              2 |
| 2020-03-12 11:06:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_PV       |              2 |
| 2020-03-12 12:18:00 |                2 | PV_Anlage_1          |             2 | Home_own_consumption_from_battery  |              2 |
snip...

# Dann diese Einträge löschen, oder zumindest einen davon
# und schon sollte die erstellung des Primary key durchlaufen
ALTER TABLE `history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);


Außer man macht mittendrin mal das Fenster auf :-)

MySQL [fhem]> ALTER TABLE `history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
ERROR 1062 (23000): Duplicate entry '2020-11-10 19:03:42-KU_S_Fenster-state' for key 'PRIMARY'
MySQL [fhem]> delete from history where DEVICE='KU_S_Fenster' and READING='state' and TIMESTAMP = '2020-11-10 19:03:42';
Query OK, 3 rows affected (0.029 sec)


Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

#1319
Hey Heiko,
ich habe jetzt den Primary Key eingerichtet und nochmals ein syncStandby laufen lassen. Jetzt sind beide Datenbank ca gleich groß.

Was soll ich denn morgen für Attribute für den letzten Sync setzen, damit die Nacht noch dazu kommt? Mir fehlt momentan die Konzentration ein wenig.
Und wie wäre der Weg zur Umschaltung auf die neue DB dann am einfachsten.

Ich würde einfach beide stoppen und die Ports tauschen. Geht das so, oder bekomme ich da Probleme mit den Timestamps?
Auf ein paar Logs kann ich gut verzichten, ich muss eh noch aufräumen.

EDIT:
Kann das sein, dass das Logging parallel in beide Datenbanken geht? Wenn ich einen Update auf ein Device mache erscheinen die Meldungen direkt in Beiden Datenbanken.
Die eine ist über Port 3306 und die andere über 3307 erreichbar.
Im Fhem habe ich zwei DbLog Devices, die aber mit unterschiedlichen db.conf konfiguriert sind. eine halt mit HostIP:3306 und die andere mit HostIP:3307 .
Das ist natürlich praktisch, weil ich mir dann den letzten sync sparen kann, aber verstehen tue ich es nicht.
Okay, es ist das selbe interne Docker Netzwerk, aber da ist ja die IP Adresse unterschiedlich.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick