NEWS
Fehler beim Speichern in SQL-Adapter
-
Cannot insert INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES(9469, 1625175559280, 18:E8:29:C7:39:85, 1, 25, 0);: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':E8:29:C7:39:85, 1, 25, 0)' at line 1 (id: sonoff.0.Tasmota_19.Wifi_BSSId)
Ich habe den Datenpunkt im SQL-Adapter als "Zeichenfolge" hinterlegt.
der sonoff-Adapter hat die Datenpunkte leider als "Number" angelegt.
Dass hier noch der Wurm drin ist habe ich ja schon mitbekommen. Bisher hat die Einstellung im sql-Adapter das aber immer geheilt.Was kann ich tun (ausser die Datenpunkte per Hand zu ändern).
Die Geräte habe ich schonmal alle gelöscht und neu angelegt. Kommen aber wieder als Number. -
@sissiwup sagte in Fehler beim Speichern in SQL-Adapter:
Cannot insert INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES(9469, 1625175559280, 18:E8:29:C7:39:85, 1, 25, 0);: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':E8:29:C7:39:85, 1, 25, 0)' at line 1 (id: sonoff.0.Tasmota_19.Wifi_BSSId)
Ich habe den Datenpunkt im SQL-Adapter als "Zeichenfolge" hinterlegt.
der sonoff-Adapter hat die Datenpunkte leider als "Number" angelegt.
Dass hier noch der Wurm drin ist habe ich ja schon mitbekommen. Bisher hat die Einstellung im sql-Adapter das aber immer geheilt.Was kann ich tun (ausser die Datenpunkte per Hand zu ändern).
Die Geräte habe ich schonmal alle gelöscht und neu angelegt. Kommen aber wieder als Number.Um die BSSID muss sicherlich Anführungsstriche
-
@oliverio sagte in Fehler beim Speichern in SQL-Adapter:
Um die BSSID muss sicherlich Anführungsstriche
Jein, da es ein String ist Ja, aber in der Tabelle ts_number ist val als Double definiert, hier gehören also nur Zahlen rein. Der Wert müsste eigentlich in die Tabelle ts_string, was aber scheinbar durch die Definition des DP als number verhindert wird. Ich würde mal versuchen:
- SQL Logging für den DP ausschalten
- DP als String abändern
- SQL Logging einschalten und prüfen ob die Werte jetzt in ts_string landen
- So oder so ein issue beim Sonoff-Adapter anlegen
-
@fastfoot sagte in Fehler beim Speichern in SQL-Adapter:
@oliverio sagte in Fehler beim Speichern in SQL-Adapter:
Um die BSSID muss sicherlich Anführungsstriche
Jein, da es ein String ist Ja, aber in der Tabelle ts_number ist val als Double definiert, hier gehören also nur Zahlen rein. Der Wert müsste eigentlich in die Tabelle ts_string, was aber scheinbar durch die Definition des DP als number verhindert wird. Ich würde mal versuchen:
- SQL Logging für den DP ausschalten
- DP als String abändern
- SQL Logging einschalten und prüfen ob die Werte jetzt in ts_string landen
- So oder so ein issue beim Sonoff-Adapter anlegen
ah stimmt das ist die number tabelle.
dann würde mich mal der datentyp des datenpunkts interessieren
und ob man den wert auch direkt in den datenpunkt eintippen kann und was dann in der tabelle ankommt.
theoretisch lässt sich dieser wert auch in eine (sehr große) integer umrechnen.
ich bezweifle aber das das durch den adapter gemacht wird.
ich denke das gehört in die string tabelle -
@oliverio sagte in Fehler beim Speichern in SQL-Adapter:
@fastfoot sagte in Fehler beim Speichern in SQL-Adapter:
@oliverio sagte in Fehler beim Speichern in SQL-Adapter:
Um die BSSID muss sicherlich Anführungsstriche
Jein, da es ein String ist Ja, aber in der Tabelle ts_number ist val als Double definiert, hier gehören also nur Zahlen rein. Der Wert müsste eigentlich in die Tabelle ts_string, was aber scheinbar durch die Definition des DP als number verhindert wird. Ich würde mal versuchen:
- SQL Logging für den DP ausschalten
- DP als String abändern
- SQL Logging einschalten und prüfen ob die Werte jetzt in ts_string landen
- So oder so ein issue beim Sonoff-Adapter anlegen
ah stimmt das ist die number tabelle.
dann würde mich mal der datentyp des datenpunkts interessieren
und ob man den wert auch direkt in den datenpunkt eintippen kann und was dann in der tabelle ankommt.
theoretisch lässt sich dieser wert auch in eine (sehr große) integer umrechnen.
ich bezweifle aber das das durch den adapter gemacht wird.
ich denke das gehört in die string tabelleder TE schreibt dass der Adapter den DP als number definiert. Er hat allerdings im Logging Zeichenkette angegeben, da würde ich jetzt denken dass das auch ein issue des SQL Adapters ist, den Wert dann nicht in die ts_string zu schreiben, bin mir aber über diese Einstellung(bzw ihre Auswirkung) nicht im Klaren. Einfügen mit Anführungszeichen wirft wie erwartet einen Fehler
Edit: Am SQL Adapter liegt es wohl nicht, wenn ich im Logging einen numerischen Wert als Zeichenkette angebe, dann landen diese Werte in ts_string. Evtl. muss danach der SQL Adapter neu gestartet werden, ich habe es jedenfalls so gemacht. Nach Rückänderung landen die Werte auch wieder in ts_number
-
Das hier ist kein numerischer Wert
18:E8:29:C7:39:85
Auch für die Datenbank ist das eine Zeichenkette
Wenn ich den Wert in Iobroker in einen datenpunkt vom Typ Zahl eingebe, bleibt nur 18 übrig, der Rest wird abgeschnitten.Wenn im sonoff Adapter, obwohl der datenpunkt vom Typ Zahl ist und der Wert dennoch wie oben angezeigt wird, dann läuft da was falsch.