Fehlerhaftes Abspeichern in mysql (configDB)

Begonnen von tiroso, 28 Dezember 2014, 08:21:33

Vorheriges Thema - Nächstes Thema

tiroso

Hallo zusammen,

ich habe mich jetzt länger an einem Floorplan versucht. Soweit so gut, die Sicherung schien auch erstmal korrekt durchgelaufen zu sein. Nach neustarten von FHEM und beziehen der aktuellen Config war dieser aber alles andere als widerhergestellt.
Die HTML Codes im Modul weblink sind nach einer Anzahl Zeichen abgeschnitten und versauen mir somit auch das normale Frontend ;)
Ausserdem werden nicht alle Koordinaten in jedem Device gespeichert sondern mit Standartwerten überschrieben. Viele Devices liegen auf dem Floorplan an der Koordinate "107,713,0,", Komischerweise nur die Schalltaktoren von Homematic. Dummys haben ihre Poisition gespeichert.
im Logfile habe ich zum Zeitpunkt des Sicherns dann diese Zeilen gefunden:


2014.12.28 06:52:32 1: PERL WARNING: DBD::mysql::st execute failed: Got a packet bigger than 'max_allowed_packet' bytes at configDB.pm line 301.
2014.12.28 06:52:32 1: PERL WARNING: Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle database=FhemConfig;host=192.168.178.150;port=3306 at configDB.pm line 301.


Ist der Fehler selbstverschuldet oder schon bekannt? Wie könnte ich Abhilfe schaffen?

Ein Device vom Typ "structure" ist auch auf dem Floorplan. Dieser beinhaltet die anderen Devices. Die Koordinate wird beim Abspeichern für alle Devices mit angegeben anstatt deren eigenen.

Ist das generell so oder nur in Verbindung mit configDB?

betateilchen

Zitat von: tiroso am 28 Dezember 2014, 08:21:33
Die HTML Codes im Modul weblink sind nach einer Anzahl Zeichen abgeschnitten

nach wievielen Zeichen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tiroso

#2
Hallo,

Ich habe mich geirrt. Ich habe in dem weblink HTMLCode eine Raute drin. Ab da ist der Rest weg.
Der String wurde korrekt in der SQL gespeichert allerdings fehlerhaft ausgelesen.

Wie escape ich diese Sonderzeichen?


Ein bearbeiten im Browser funktioniert. Auch ein Raute Zeichen bewirkt nichts negatives.
Wenn ich allerdings das Device über die Befehlseingabe definiere mit Sonderzeichen klappt es auch nicht. Und halt das auslesen aus der SqlDB

betateilchen

Die Raute kennzeichnet innerhalb von perl einen Kommentar, das heißt, ab der Raute wird bei der Ausführung nicht weitergearbeitet. Du kannst versuchen, die URL in Deinem weblink normgerecht zu kodieren, dann sollte die Raute automatisch korrekt übergeben werden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

RoBra81

Ich hatte das auch schon - vermutlich war es keine URL sondern (so war es bei mir) eine  Farbangabe in RGB (color:#ffaacc)

tiroso

Ja die Farbangabe war es. Bin das ganze durch Angabe von RGB Angaben umgangen.

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!