Neues Modul InfluxDBLogger

Begonnen von timmib, 07 Oktober 2020, 23:31:09

Vorheriges Thema - Nächstes Thema

timmib

Ich habe das Ganze nochmal überarbeitet.

Die "precision" ist nun automatisch aus "s", wenn man die Zeitstempel der FHEM Readings nutzt. Die sinnlosen Nullen gehören nun der Vergangenheit an.
Wenn man readingTimeStampsResolver nutzt ist der Standard auch "s" aber man kann es überschreiben mit dem Attribut.

Ich habe Dokumentation zu readingTimeStampsResolver ergänzt. Bitte einmal lesen ob man das versteht.

Der Code ist bezüglich Zeitstempelermittlung etwas optimiert worden.

Ballaststoff

Guten Morgen Tim,

danke für deine Mühe!
Ich sehe es mir in den nächsten Tagen an (liege leider gerade mit Grippe flach) und melde mich dann wieder.

Viele Grüße!

rob

Zitat von: timmib am 18 März 2023, 15:47:48Das habe ich hier gefixt. Bitte testen.
Hi.

Vielen Dank fürs flinke Kümmern  8)

Hab kurzerhand in der Testinstanz ein Device angelegt via altem Modul und rename ausgeführt. Mit alter Version Restart v. FHEM, Device nicht umbenannt. Mit Testversion kein Restart und Device umbenannt. Schaut also gut aus  :)

Vielen Dank und beste Grüße
rob

Ballaststoff

#273
Zitat von: timmib am 18 März 2023, 21:07:08Ich habe das Ganze nochmal überarbeitet.

Die "precision" ist nun automatisch aus "s", wenn man die Zeitstempel der FHEM Readings nutzt. Die sinnlosen Nullen gehören nun der Vergangenheit an.
Wenn man readingTimeStampsResolver nutzt ist der Standard auch "s" aber man kann es überschreiben mit dem Attribut.

Ich habe Dokumentation zu readingTimeStampsResolver ergänzt. Bitte einmal lesen ob man das versteht.

Der Code ist bezüglich Zeitstempelermittlung etwas optimiert worden.

Hallo zusammen,

irgendwo steckt noch der Wurm drin (vielleicht auch in meiner Unfähigkeit ;) )
Im Reading "date" eines jeden $device steckt der UNIX-Zeitcode der übernommen werden soll.
Entsprechend habe ich readingTimeStampsResolver wie folgt definiert:
{AttrVal($device, "date", "")}
In Influx kommt folgendes an:
Zeitstempel Influx    date            (date lesbar)
2023-03-23T10:01:11Z    1679565659    23.03.2023 10:00:59
2023-03-23T10:01:12Z    1679565660    23.03.2023 10:01:00
2023-03-23T10:01:13Z    1679565662    23.03.2023 10:01:02
2023-03-23T10:01:14Z    1679565663    23.03.2023 10:01:03
2023-03-23T10:01:15Z    1679565664    23.03.2023 10:01:04
...

Folgende Attribute habe ich noch gesetzt:
  • readingTimeStamps: 1
  • precision habe ich nicht definiert

Viele Grüße!
Philipp

C0mmanda

Moin moin,

überlege auch auf Influxdb zu wechseln und würde gern meine Daten aus der SQL-Datenbank migrieren.
Hat hier jemand ggf. ein Script oder ein Link zu einer Anleitung parat wie ich das bewerkstelligen könnte?
Möglich scheint das ja zu sein.

Vielen Dank!

Gruß

marvin78

Schau mal ins Wiki zum Modul. Da gibt es ein paar Links auf Beiträge hier im Forum. Ein wenig individuell selbst basteln bleibt aber nicht aus.

kadettilac89

Zitat von: C0mmanda am 27 März 2023, 07:22:39Moin moin,

überlege auch auf Influxdb zu wechseln und würde gern meine Daten aus der SQL-Datenbank migrieren.
Hat hier jemand ggf. ein Script oder ein Link zu einer Anleitung parat wie ich das bewerkstelligen könnte?
Möglich scheint das ja zu sein.

Vielen Dank!

Gruß

Für das "andere" Influx-Modul habe ich mal ein Script gebaut. Das kannst dir zurecht basteln wenn du dieses Influx-Modul hier verwenden willst.

https://forum.fhem.de/index.php/topic,71551.msg838940.html#msg838940


C0mmanda

Klasse, vielen Dank!
Werde mir das heute Abend mal anschauen 👍🏽

kadettilac89

Zitat von: C0mmanda am 27 März 2023, 14:21:43Klasse, vielen Dank!
Werde mir das heute Abend mal anschauen 👍🏽
Hinweis, solltest du Influx v2 nutzen ... https://forum.fhem.de/index.php?topic=71551.msg1263626#msg1263626 ... er hat "mein" Script bentzt und dann nach v2 migriert.

lewej

Hallo timmib,

Ich hätte einen feature request, weiss aber nicht ob es hier im Modul Beitrag richtig angesiedelt ist oder doch nach fhem an sich gehört.
Folgendes Szenario:

Möchte man PV Daten in der InfluxDB richtig aggregieren ist es wichtig das die Werte alle den selben Zeitstempel aufweisen.

Gerade wenn man Autarkie oder auch Eigenverbrauch/ Gesamtverbrauch berechnen möchte, ist es relavant das PV Produktion, Einspeisung und Selbstverbrauch den selben Zeitstempel immer aufweisen.

Aktuell wird bei mir aber dann nach InfluxDB geschrieben, wenn ein reading sich geändert hat oder es wurde ein neuer einlese Prozess gestartet. Es wird aber jedes reading für sich selber weggeschrieben.


Wäre es interessant, wenn man im Modul angeben kann, welche readings zusammen hängen und diese zur gleichen Zeit gemeinsam weggeschrieben werden?

Beispiel:

Zusammenhängendreading: PVErtrag,PVGrid,PVExport

Egal welcher der drei readings jetzt upgedatet werden, es wird immer auch der Wert der beiden anderen readings mit übertragen. Zeitstempel wird immer vom reading genommen der als erstes das Event getriggert hat.



cc13

Hallo,

hoffentlich wurde meine Frage nicht schon hier im Thread besprochen, denn ich habe ihn überflogen und nichts gefunden.

Mein Device ist definiert mit:

defmod influxDB InfluxDBLogger http://192.168.0.225:8086 FHEM MQTT2_Kaffeemaschine,MQTT2_Schreibtisch_Kueche,MQTT2_Ladegeraet
Alles klappt soweit. Nun ist ein viertes MQTT-Device hinzugekommen. Im Wiki vom Modul steht geschrieben, dass man mehrere InfluxDBLogger Instanzen laufen lassen kann. Das möchte ich nicht, sondern das neue (vierte) Device zum bestehenden InfluxDBLogger hinzufügen. Wie mache ich das am einfachsten? Das bestehendes löschen und mit 4 Devices unter gleichem Namen anlegen?

rob

Zitat von: cc13 am 12 Mai 2023, 10:21:09Das bestehendes löschen und mit 4 Devices unter gleichem Namen anlegen?
Brauchst nix löschen. Gehe mal bitte in die Anzeige vom Influx-Device "influxDB". Unter "Internals" steht dort DEF und rechts daneben Deine obige Definition. Wenn Du auf DEF klickst, öffnet sie sich und Du ergänzt hinten dran Dein viertes MQTT-Device getrennt mit einem Komma.
Dann mit Klick auf "modify influxDB" bestätigen - fäddich :)

Gibt natürlich noch mehr Wege ;)

rob

Zitat von: lewej am 11 Mai 2023, 21:39:37Aktuell wird bei mir aber dann nach InfluxDB geschrieben, wenn ein reading sich geändert hat oder es wurde ein neuer einlese Prozess gestartet.
Ja, InfluxDB triggert Event-basiert. Mit event-on-change-reading u. Co. kannst Du das beeinflussen, aber Events kommen wie sie fallen ;)
Imho bringt FHEM alles mit was Du erreichen möchtest. Du könntest z.B. via readingsProxy zunächst alles sammeln was Du brauchst und dort dann mit event-aggregator arbeiten zum Glätten. Influx lässt Du dann nur auf das readingsProxy triggern.
Wahrscheinlich gibts wieder viele Wege nach Rom  ;D

cc13

Zitat von: rob am 12 Mai 2023, 21:26:56
Zitat von: cc13 am 12 Mai 2023, 10:21:09Das bestehendes löschen und mit 4 Devices unter gleichem Namen anlegen?
Brauchst nix löschen. Gehe mal bitte in die Anzeige vom Influx-Device "influxDB". Unter "Internals" steht dort DEF und rechts daneben Deine obige Definition. Wenn Du auf DEF klickst, öffnet sie sich und Du ergänzt hinten dran Dein viertes MQTT-Device getrennt mit einem Komma.
Dann mit Klick auf "modify influxDB" bestätigen - fäddich :)

Gibt natürlich noch mehr Wege ;)


Top, danke. Das hat geholfen.

lewej

Zitat von: rob am 12 Mai 2023, 21:50:47
Zitat von: lewej am 11 Mai 2023, 21:39:37Aktuell wird bei mir aber dann nach InfluxDB geschrieben, wenn ein reading sich geändert hat oder es wurde ein neuer einlese Prozess gestartet.
Ja, InfluxDB triggert Event-basiert. Mit event-on-change-reading u. Co. kannst Du das beeinflussen, aber Events kommen wie sie fallen ;)
Imho bringt FHEM alles mit was Du erreichen möchtest. Du könntest z.B. via readingsProxy zunächst alles sammeln was Du brauchst und dort dann mit event-aggregator arbeiten zum Glätten. Influx lässt Du dann nur auf das readingsProxy triggern.
Wahrscheinlich gibts wieder viele Wege nach Rom  ;D

Leider triggert das readingproxy selber keine events, da es nur ein Hilfsmodul ist.

Das heisst ich kann das readingproxy nicht im influx logger als Device angeben, es würde dann keine events produzieren.