Liebe Forum-Mitglieder und FHEM-Spezialisten!
Ich verwende inzwischen seit ca. 4 Jahren FHEM. Zu Beginn auf einem RPI 2, seit Ende 2020 auf einem RPI 4 in einem Docker Container.
Mehrere Arduinos melden verschiedenste Infos per MQTT an FHEM und das funktioniert alles bestens.
Ich habe keine CULs oder ähnliche USB Sticks - alles läuft über LAN und MQTT.
Nach ca. einem Jahr ist jetzt ein weiterer Arduino dazu gekommen, und der soll natürlich auch in FHEM eingebunden werden.
Dummerweise lässt sich aber die Konfiguration nicht mehr speichern!
Bei jedem Klick auf "Save config" stürzt FHEM ab und es wird "Connection lost, trying a reconnct every 5 seconds." angezeigt.
Die Änderungen in der Konfiguration sind damit leider wieder weg.
Im Logfile finde ich dazu diesen Eintrag, und das jederzeit reproduzierbar:
Wide character in subroutine entry at configDB.pm line 427.
2022.03.31 07:01:03.643 1: PERL WARNING: Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle database=fhem;host=mysql;port=3306 at configDB.pm line 427.
Jetzt kann man zwar noch relativ schnell herausfinden, dass "Wide characters" etwas mit Unicode zu tun haben, aber weitere Analysen scheitern leider an meinen ziemlich limitierten Perl-Kenntnissen.
Aus der Code-Zeile 427 ( $sth->execute($filename,encode_base64(join("\n", @content))); ) kann ich noch herauslesen, dass der Fehler beim Speichern des base64-codierten config-Files in die Datenbank auftritt, aber das geht auch schon aus der Fehlermeldung hervor.
Durch die Befragung einer Suchmaschine je nach persönlicher Vorliebe, kann man auch noch herausfinden, dass das "Wide character" Problem offensichtlich im Befehl "encode_base64" auftritt.
Für mich stellen sich jetzt mehrere Fragen.
Warum kann ein File, dass mit Unicode-Zeichen in der DB bereits gespeichert ist, erfolgreich gelesen, aber dann mehr in die selbe DB gespeichert werden?
Wie kann ich herausfinden, welche der Zeichen in dem Config-File den Fehler verursachen? Diese könnte ich ggf. ersetzen/entfernen.
Was kann ich machen, um diesen Fehler in Zukunft zu vermeiden?
Könnte der Ansatz in diesem Thread (
https://stackoverflow.com/questions/27270929/mime-base64-encode-wide-characters) zu einer nachhaltigen Lösung beitragen?
Und die wichtigste Frage: Was kann ich jetzt kurzfristig unternehmen, dass es wieder funktioniert?
Ich bin für jeden Hinweis, der zu einer (auch nur vorübergehenden) Lösung führt überaus dankbar!
Vielen Dank im Voraus!
Beste Grüße
Rainer
Hier noch meine Systemkonfiguration:
Raspberry 4, 4 GB, Raspbian 10 (buster), Docker, alles am letzten Patch-Level
Getrennte Docker Container für FHEM (fhem/fhem:latest), MariaDB (jsurf/rpi-mariadb:latest, 10.3.27-MariaDB-0+deb10u1), mosquitto (eclipse-mosquitto:latest, 2.0.14) und weitere, die nichts mit FHEM zu tun haben.
FHEM Versionen:
File Rev Last Change
fhem.pl 25891 2022-03-28 08:56:05Z rudolfkoenig
57_ABFALL.pm 11023 2018-06-13 12:34:34Z uniqueck
96_allowed.pm 25797 2022-03-08 08:54:57Z rudolfkoenig
98_apptime.pm 19468 2019-05-26 07:13:48Z martinp876
42_AptToDate.pm 19639 2019-06-18 13:43:31Z CoolTux
90_at.pm 25248 2021-11-21 10:29:01Z rudolfkoenig
98_autocreate.pm 23727 2021-02-12 20:31:37Z rudolfkoenig
57_Calendar.pm 25643 2022-02-06 16:53:20Z neubert
98_cmdalias.pm 16300 2018-03-01 08:48:21Z rudolfkoenig
93_DbLog.pm 25800 2022-03-08 20:07:32Z DS_Starter
No Id found for 99_DockerImageInfo.pm
98_DOIF.pm 25819 2022-03-12 23:15:22Z Damian
91_eventTypes.pm 23471 2021-01-04 19:24:21Z rudolfkoenig
No Id found for 99_FHEMControlPush.pm
01_FHEMWEB.pm 25869 2022-03-21 10:38:18Z rudolfkoenig
92_FileLog.pm 25748 2022-02-27 10:29:56Z rudolfkoenig
98_freezemon.pm 25141 2021-10-28 19:13:56Z Adimarantis
02_HTTPSRV.pm 20110 2019-09-05 17:30:20Z neubert
98_Installer.pm 20949 2020-01-12 09:53:11Z loredo
98_JsonList2.pm 23727 2021-02-12 20:31:37Z rudolfkoenig
82_LGTV_WebOS.pm 25823 2022-03-13 10:20:53Z CoolTux
00_MQTT2_CLIENT.pm 25723 2022-02-21 08:59:09Z rudolfkoenig
10_MQTT2_DEVICE.pm 25889 2022-03-27 10:39:22Z rudolfkoenig
91_notify.pm 25888 2022-03-27 10:22:58Z rudolfkoenig
42_npmjs.pm 20933 2020-01-10 12:27:41Z loredo
33_readingsGroup.pm 23844 2021-02-27 19:43:24Z justme1968
70_SolarEdgeAPI.pm 22510 2020-08-01 10:19:18Z pizmus
99_SUNRISE_EL.pm 24249 2021-04-14 05:45:49Z rudolfkoenig
98_SVG.pm 25876 2022-03-23 11:28:24Z rudolfkoenig
50_TelegramBot.pm 24867 2021-08-23 10:23:15Z viegener
98_telnet.pm 25754 2022-02-27 16:49:52Z rudolfkoenig
99_Utils.pm 24128 2021-04-02 16:29:11Z rudolfkoenig
98_version.pm 15140 2017-09-26 09:20:09Z markusbloch
98_vitoconnect.pm 25061 2021-10-10 14:13:07Z andreas13
ABFALL_getEvents.pm 11023 2018-06-13 12:34:34Z uniqueck
ABFALL_setUpdate.pm 11021 2017-09-13 00:32:22Z uniqueck
AttrTemplate.pm 25155 2021-10-30 12:48:21Z rudolfkoenig
Blocking.pm 23268 2020-12-01 11:48:48Z rudolfkoenig
Color.pm 20813 2019-12-22 18:42:10Z justme1968
configDB.pm 25860 2022-03-20 10:03:20Z betateilchen
DevIo.pm 25716 2022-02-20 17:39:00Z rudolfkoenig
GPUtils.pm 19666 2019-06-20 11:17:29Z CoolTux
HttpUtils.pm 25784 2022-03-06 09:20:24Z rudolfkoenig
Meta.pm 21008 2020-01-18 10:22:10Z loredo
RTypes.pm 10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm 25286 2021-12-03 10:16:56Z rudolfkoenig
SubProcess.pm 14334 2017-05-20 23:11:06Z neubert
TcpServerUtils.pm 25866 2022-03-21 09:01:16Z rudolfkoenig
TimeSeries.pm 22980 2020-10-17 09:21:43Z neubert
doif.js 24438 2021-05-14 18:08:18Z Ellert
f18.js 25656 2022-02-08 09:49:53Z rudolfkoenig
fhemweb.js 25856 2022-03-18 18:09:03Z rudolfkoenig
fhemweb_readingsGroup.js 15189 2017-10-03 17:53:27Z justme1968