Fehler beim speichern in InfluxDB
Moderator: Ulrich
- Ulrich
- Administrator
- Beiträge: 5558
- Registriert: Sa 7. Nov 2015, 10:33
- Wohnort: Essen
- Hat sich bedankt: 154 Mal
- Danksagung erhalten: 884 Mal
- Kontaktdaten:
Re: Fehler beim speichern in InfluxDB
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.
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.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]
Ulrich . . . . . . . . [Projekt Administrator]
Re: Fehler beim speichern in InfluxDB
Danke für Deine Erklärungen
...klingt a bisserl nach Stammtisch zu vorgerückter Uhrzeit
Ich hab auf meinen Victrons jeweils die aktuellste FW; dazu ‚nötigt‘ mich VictronConnect
...klingt a bisserl nach Stammtisch zu vorgerückter Uhrzeit
Ich hab auf meinen Victrons jeweils die aktuellste FW; dazu ‚nötigt‘ mich VictronConnect
-
- Beiträge: 7
- Registriert: So 2. Jan 2022, 18:08
- Danksagung erhalten: 2 Mal
Re: Fehler beim speichern in InfluxDB
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.
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.
-
- Beiträge: 1109
- Registriert: Mi 13. Mai 2020, 10:04
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 161 Mal
Re: Fehler beim speichern in InfluxDB
100_RFID_tag ist ein Textfeld. Für Textfelder ist die Aufbereitung der Query etwas anders einzugeben:
$aktuelleDaten["ZusatzQuery"] .= ",Textfeld=\"" . $aktuelleDaten["Textfeld"] . "\"";
$aktuelleDaten["ZusatzQuery"] .= ",Textfeld=\"" . $aktuelleDaten["Textfeld"] . "\"";
-
- Beiträge: 7
- Registriert: So 2. Jan 2022, 18:08
- Danksagung erhalten: 2 Mal
-
- Beiträge: 7
- Registriert: So 2. Jan 2022, 18:08
- Danksagung erhalten: 2 Mal
Re: Fehler beim speichern in InfluxDB
...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.
$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.
-
- Beiträge: 1109
- Registriert: Mi 13. Mai 2020, 10:04
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 161 Mal
Re: Fehler beim speichern in InfluxDB
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...
-
- Beiträge: 7
- Registriert: So 2. Jan 2022, 18:08
- Danksagung erhalten: 2 Mal
Re: Fehler beim speichern in InfluxDB
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.
$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.
-
- Beiträge: 1109
- Registriert: Mi 13. Mai 2020, 10:04
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 161 Mal
Re: Fehler beim speichern in InfluxDB
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.
-
- Beiträge: 7
- Registriert: So 2. Jan 2022, 18:08
- Danksagung erhalten: 2 Mal
Re: Fehler beim speichern in InfluxDB
Trotzdem Danke.....ich werde wohl erst mal auf das RFID-Thema verzichten müssen....