Eisbaeeer / ioBroker.alpha2

iobroker Moehlenhoff Alpha2 Adapter
Other
3 stars 10 forks source link

Fehler XML-Parsen: Error: Invalid character in tag name -> tritt auf, wenn per Blockly mehrere Objekte gleichzeitig gesteuert werden #23

Open Cabohne opened 2 years ago

Cabohne commented 2 years ago

Guten Tag, ich bin auf folgenden reproduzierbaren Fehler gestoßen, der im Endeffekt dazu führt, dass die Steuerung der Fußbodenheizung (EZR-Manager) nicht mehr erreichbar ist:

2021-11-12 06:46:27.422 - info: javascript.0 (18879) script.js.common.Heizung.HeizungAnHomeOffice: Auf Grund HomeOffice wurde im Büro, Flur & Wohnzimmer das Wochenend-Programm (P0) eingestellt. 2021-11-12 06:46:27.659 - info: whatsapp-cmb.0 (18245) Send Auf Grund HomeOffice wurde im Büro, Flur & Wohnzimmer das Wochenend-Programm (P0) eingestellt. to +49175123456 2021-11-12 06:46:33.058 - info: alpha2.0 (18145) Fehler XML-Parsen: Error: Invalid character in tag name Line: 343 Column: 8 Char: 2021-11-12 06:47:19.119 - info: alpha2.0 (18145) Fehler beim Herunterladen: Error: connect EHOSTUNREACH 192.168.10.191:80 2021-11-12 06:47:31.276 - info: alpha2.0 (18145) Fehler beim Herunterladen: Error: connect EHOSTUNREACH 192.168.10.191:80 2021-11-12 06:48:03.596 - info: alpha2.0 (18145) Fehler beim Herunterladen: Error: connect EHOSTUNREACH 192.168.10.191:80 2021-11-12 06:48:33.596 - info: alpha2.0 (18145) Fehler beim Herunterladen: Error: connect EHOSTUNREACH 192.168.10.191:80 2021-11-12 06:49:03.606 - info: alpha2.0 (18145) Fehler beim Herunterladen: Error: connect EHOSTUNREACH 192.168.10.191:80 2021-11-12 06:49:33.596 - info: alpha2.0 (18145) Fehler beim Herunterladen: Error: connect EHOSTUNREACH 192.168.10.191:80

Das Problem tritt immer dann auf, wenn ich versuche die drei Objekte alpha2.0.HEATAREA.3.PROGRAM_WEEK, alpha2.0.HEATAREA.4.PROGRAM_WEEK und alpha2.0.HEATAREA.5.PROGRAM_WEEK gleichzeitig mittels Blockly zu steuern. Ich habe mich bei meinen Tests zwar bisher nur auf die Objekte ...PROGRAM_WEEK beschränkt, bin mir aber nicht sicher inwiefern es sich hier um ein generelles Problem handelt. Ist die Steuerung mehrerer Objekte gleichzeitig mittels Blockly möglich? Bzw. wird eine XML-Datei, die mehrere Änderungen beinhaltet korrekt erstellt?

Das Problem kann umgangen werden, indem die Steuerung der Objekte im Blockly nicht gleichzeitig erfolgt, sondern die Verzögerung aktiviert wird. Auf Verdacht habe ich die Verzögerung größer als die "Polling Time" (Instanzeinstellungen 30 Sek.) gewählt, da meinem Verständnis nach dann eine XML erzeugt wird, in der zunächst ein Objekt gesteuert wird. Diese XML wird dann verarbeitet (gepollt) und erst im Anschluss wird durch das Blockly das nächste Objekt gesteuert und eine neue XML erzeugt, die wiederum beim nächsten Polling-Intervall verarbeitet wird. Auf diese Weise scheinen die XML-Dateien fehlerfrei verarbeitet zu werden und zu funktionieren. Zur Info hier mein Blockly mit aktivierter Verzögerung: image Mit dieser Vorgehensweiße kommt es zu keinen Fehlermeldungen und v.a. bleibt die Steuerung (EZR-Manager) weiterhin erreichbar und stürzt nicht ab.

Ich vermute, man müsste sich die XML-Datei anschauen, die geschrieben wird, wenn mehrere Objekte gleichzeitig geändert werden. Falls ich diesbezüglich Input liefern könnte, bitte ich um Erläuterung der Vorgehensweiße (wie kann ich sehen, was an die Steuereinheit geschickt wird?) und bin natürlich gerne bereit mich weiter einzubringen.

Würde mich freuen, wenn sich jemand mit mehr Hintergrundwissen der Sache annimmt, vielen Dank vorab!

Infos zu meinem System: Raspberry Pi 4 NODE.JS V12.22.1 NPM 6.14.12 Adapter Version 1.0.3