Seite 3 von 4

Re: Fehler beim speichern in InfluxDB

Verfasst: Do 6. Feb 2020, 09:56
von Ulrich
Für Alle, die es genau wissen wollen.

Das VE.direkt Protokoll ist so aufgebaut, dass jedes Victron Geräte unaufgefordert von sich aus Daten sendet, die man empfangen und auswerten kann. Es werden aber nur die wichtigsten Daten gesendet. Möchte man andere Daten auslesen, so muss man einen Befehl zum Gerät senden und dieses erwiedert die Anfrage mit den gewünschten Daten.
Damit es nicht im Chaos endet muss man erst auf die Leitung hören, ob sie frei ist und dann den Befehl absetzen. Genau so muss es auch das Victron Gerät machen. Die älteren Firmware sendeten noch nicht so viele Daten ungefragt und deshalb lief alles ohne Probleme. Ich frage auch "Historische Daten" bei den Reglern ab. Deren neue Firmware ist jedoch immer Beschäftigter und benötigt immer mehr Zeit um die Antwort für die "Historischen Daten" zu senden. Es dauert oft so lange, dass das Gerät zwischenzeitlich wieder unaufgefordert Daten sendet. (Auf der Leitung ist ja in diesem Moment nichts los)


Kurze Antwort: Je mehr auf der Leitung los ist um so schwieriger wird die Steuerung der Datenübertragung. Auch das Gerät versucht noch in letzter Millisekunde seine unaufgeforderten Daten los zu werden. Ich habe auch den Verdacht, dass das Gerät bei einer Anfrage erst einmal nicht antwortet, sondern erst seine unaufgeforderten Daten los werden will. Das passiert immer häufiger, je mehr Trafic auf der Leitung ist. Deshalb kann es durchaus sein, dass mal ein Fehler auftreten könnte. Mit jeder neuen Firmware nimmt der Datentransfer auf der VE.direkt Leitung zu.

Deshalb haben die älteren Geräte mit alter Firmware keine Probleme.

Ich hoffe ich habe es einigermaßen verständlich erklärt. :D

Re: Fehler beim speichern in InfluxDB

Verfasst: Do 6. Feb 2020, 20:14
von Nafets
Danke für Deine Erklärungen
...klingt a bisserl nach Stammtisch zu vorgerückter Uhrzeit :lol:


Ich hab auf meinen Victrons jeweils die aktuellste FW; dazu ‚nötigt‘ mich VictronConnect

Re: Fehler beim speichern in InfluxDB

Verfasst: So 6. Feb 2022, 14:49
von Gebelolitil
Ich glaube, ich habe ein ähnliches oder das gleiche Problem und verzweifele ziemlich. Betreibe Solaranzeige mit Solaredge, einer Tesla-PW2 und einer Keba-Wallbox. Versuche ganz simpel, den RFID-Code der Keba auszulesen, zunächst in eine Database "Test" in der influxdb. Zunächst geht alles gut. Die wall_math.php läuft, die Daten der Keba lasse ich im log anzeigen und sie scheinen vollständig zu sein. Ich kann in der wall_math.php im Zusatz-Query zum Measurement "RFID" verschiedene Daten des Array auswählen und sie erscheinen richtig in der Influx-Tabelle. Jedesmal, wenn ich es mit "100_RFID-tag" versuche, bekomme ich im log zwar den richtigen RFID-Code angezeigt, gleichzeitig kommt aber die Nachricht: Daten nicht zur lokalen InfluxDB gesendet.....
Die Keba hängt per Ethernet im lokalen Netz, des Raspberry an anderer Stelle ebenso. Was mache ich falsch? Ist das eine Formatierungsfrage??
Würde mich über Hilfe sehr freuen

Danke Von Gerd R.
Bildschirmfoto 2022-02-06 um 14.15.27.png
Bildschirmfoto 2022-02-06 um 14.14.06.png
Bildschirmfoto 2022-02-06 um 14.14.06.png (133.09 KiB) 1632 mal betrachtet

Re: Fehler beim speichern in InfluxDB

Verfasst: So 6. Feb 2022, 16:01
von Bogeyof
100_RFID_tag ist ein Textfeld. Für Textfelder ist die Aufbereitung der Query etwas anders einzugeben:
$aktuelleDaten["ZusatzQuery"] .= ",Textfeld=\"" . $aktuelleDaten["Textfeld"] . "\"";

Re: Fehler beim speichern in InfluxDB

Verfasst: So 6. Feb 2022, 17:23
von Gebelolitil
super - jetzt funktioniert es...Ganz herzlichen Dank!!!

Re: Fehler beim speichern in InfluxDB

Verfasst: So 6. Feb 2022, 20:50
von Gebelolitil
...da hab ich mich einfach zu früh gefreut. Zuerst dachte ich, alles läuft - es war aber noch der falsche Datensatz im Query. Ich muss mich als totaler Laie outen, bemühe mich aber zu lernen. Kannst Du Dir einmal den Befehl ansehen, den ich in Wallbox_math eingetragen habe?

$funktionen->log_schreiben( "keba_wall_math läuft");

$funktionen->log_schreiben(print_r($aktuelleDaten,1)," ",1);


$aktuelleDaten["ZusatzQuery"] ="Test RFID=\"".$aktuelleDaten["100_RFID tag"]."\"";
$aktuelleDaten["ZusatzQuery"].=" ".$aktuelleDaten["zentralerTimestamp"];

Natürlich ist da ein Fehler drin, aber ich erkenne das nicht. Weiterhin wird im Log der richtige RFID-Code angezeigt (jetzt mit Anführungszeichen). Trotzdem wird nichts in die influxDB übertragen. Danke für die Hilfe!!!!

Gerd R.

Re: Fehler beim speichern in InfluxDB

Verfasst: So 6. Feb 2022, 21:01
von Bogeyof
OK, der Fehler ist die Bezeichnung des Datenfeldes "100_RFID tag". Dadurch dass da ein Leerzeichen im Namen ist wird für die Query dort bei 100_RFID der Parameter beendet und "tag" ist der nächste Parameter, was aber keinen Sinn ergibt. Daher klappt die Query nicht. Du musst dafür sorgen, das der Feldname ein zusammenhängender Begriff ist...

Re: Fehler beim speichern in InfluxDB

Verfasst: So 6. Feb 2022, 21:19
von Gebelolitil
Ich bin da nicht sicher. Wenn ich wieder folgendes eingebe, halt für eine Nicht-Text-Variable:
$aktuelleDaten["ZusatzQuery"] = "Test RFID=".$aktuelleDaten["100_E start"];
$aktuelleDaten["ZusatzQuery"].=" ".$aktuelleDaten["zentralerTimestamp"];
Dann läuft der Eintrag in die influxDB wieder völlig unproblematisch, obwohl ja in "100_E start" auch ein Leerzeichen ist.
Grüße Von Gerd R.

Re: Fehler beim speichern in InfluxDB

Verfasst: So 6. Feb 2022, 21:28
von Bogeyof
Vermutlich hast du recht, es ist ja nur der Index des Array $aktuelleDaten, anscheinend funktioniert da diese Schreibweise, also ist es wohl nicht der Fehler.

Re: Fehler beim speichern in InfluxDB

Verfasst: So 6. Feb 2022, 21:31
von Gebelolitil
Trotzdem Danke.....ich werde wohl erst mal auf das RFID-Thema verzichten müssen....