Autor Thema: [fixed] mehrzeiliger Text: SyntaxError: '' string literal contains an unescaped  (Gelesen 672 mal)

Offline Sany

  • Full Member
  • ***
  • Beiträge: 423
SyntaxError: '' string literal contains an unescaped line break

Hallo Damian,

in einem DOIF(Perl) lese ich den Inhalt des comment-Attributes aus, modifiziere ihn und schreibe das Attribut neu Der Text ist mehrzeilig. Das funktioniert einwandfrei. Zur Kontrolle und auch weiterer Modifikation zeige ich den Inhalt per widget textFieldNL-long an. Sobald sich etwas am darunterliegenden Reading ändert (also den Daten mit dem mehrzeiligen Text) gibts eine
Zitat
#FHEMWEB notification:
doifUpdateCell('Reset_Volume','informid','Reset_Volume-CommentData','Comment Line1 Comment Line2 Comment Line3')
SyntaxError: '' string literal contains an unescaped line break

Ansonsten tut das DOIF exact was es soll. Das wäre auch nicht weiter tragisch, aber die Meldung erscheint halt auf allen offenen Seiten, von daher ist es etwas lästig.
Ich kann nicht mal sagen, ob das aus der DOIF-Ecke kommt oder vielleicht aus dem widget-handling. Ist mal ein Versuch, viellecht hast Du eine Idee.

Hier mal ein DOIF zum testen, habe es in verschiedenen fhems probiert, mit f18 und darktablet, überall der gleiche Effekt.

defmod Reset_Volume DOIF init{\
fhem(qq(deletereading $SELF CommentData));;\
}\
\
clickON{\
if([$SELF:"button:.on"]){\
$_commentString = AttrVal(qq{$SELF},"comment","-");;\
set_Reading("CommentData",$_commentString,1);;\
}\
\
}\
##{ResetVolume("$DEVICE")}
attr Reset_Volume comment Comment Line1\
Comment Line2\
Comment Line3
attr Reset_Volume readingList button
attr Reset_Volume room di_UI_DOIF
attr Reset_Volume uiTable {\
package ui_Table;;\
}\
\
\
widget([$SELF:button],"uzsuToggle,on,off")\
widget([$SELF:CommentData],"textFieldNL-long")

per RAW importieren, den Button anklicken, beim ON-Event kommt der Fehler....
Wenn man die DEF neu schreibt wird das Reading wieder gelöscht.

Gruß


Sany
« Letzte Änderung: 27 Oktober 2022, 08:10:52 von Sany »
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit deConz(ZigBee), MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9970
SyntaxError: '' string literal contains an unescaped line break

Hallo Damian,

in einem DOIF(Perl) lese ich den Inhalt des comment-Attributes aus, modifiziere ihn und schreibe das Attribut neu Der Text ist mehrzeilig. Das funktioniert einwandfrei. Zur Kontrolle und auch weiterer Modifikation zeige ich den Inhalt per widget textFieldNL-long an. Sobald sich etwas am darunterliegenden Reading ändert (also den Daten mit dem mehrzeiligen Text) gibts eine
Ansonsten tut das DOIF exact was es soll. Das wäre auch nicht weiter tragisch, aber die Meldung erscheint halt auf allen offenen Seiten, von daher ist es etwas lästig.
Ich kann nicht mal sagen, ob das aus der DOIF-Ecke kommt oder vielleicht aus dem widget-handling. Ist mal ein Versuch, viellecht hast Du eine Idee.

Hier mal ein DOIF zum testen, habe es in verschiedenen fhems probiert, mit f18 und darktablet, überall der gleiche Effekt.

defmod Reset_Volume DOIF init{\
fhem(qq(deletereading $SELF CommentData));;\
}\
\
clickON{\
if([$SELF:"button:.on"]){\
$_commentString = AttrVal(qq{$SELF},"comment","-");;\
set_Reading("CommentData",$_commentString,1);;\
}\
\
}\
##{ResetVolume("$DEVICE")}
attr Reset_Volume comment Comment Line1\
Comment Line2\
Comment Line3
attr Reset_Volume readingList button
attr Reset_Volume room di_UI_DOIF
attr Reset_Volume uiTable {\
package ui_Table;;\
}\
\
\
widget([$SELF:button],"uzsuToggle,on,off")\
widget([$SELF:CommentData],"textFieldNL-long")

per RAW importieren, den Button anklicken, beim ON-Event kommt der Fehler....
Wenn man die DEF neu schreibt wird das Reading wieder gelöscht.

Gruß


Sany

Versuche es mit:

widget([$SELF:button],'uzsuToggle,on,off')\
widget([$SELF:CommentData],'textFieldNL-long')
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Sany

  • Full Member
  • ***
  • Beiträge: 423
versucht, ebenso mit q(textFieldNL-long), hilft aber nicht....



edit:
du bist ja wieder irre schnell. Das Thema ist allerdings nicht sooooo wichtig, ich würds halt nur gerne verstehen und abstellen. Es gab auch schon eine Zeit, da trat das nicht auf. Ist aber bestimmt ein halbes Jahr und viele viele Updates her. Da ich es für meine Geräte mit Batterien zur Doku verwende nutze ich es halt auch eher selten.


Gruß

Sany
« Letzte Änderung: 23 September 2022, 11:47:34 von Sany »
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit deConz(ZigBee), MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Offline Sany

  • Full Member
  • ***
  • Beiträge: 423
Hallo Damian,

ich glaube ich habe das Problem gefunden. Ich sagte ja bereits, das war nicht immer so. Ich habe dann eine fhem-Installation, die ich mal testhalber im Windows-Linux (WSL2) installiete, mit dem DOIF gefüttert und siehe da: Fehler wird nicht angezeigt. Dann ein Update auf die aktuelle Version: Fehler taucht auf. Restore wieder auf den Stand vorher (irgendwo Jahresbeginn 2022): fehler wird nicht angezeigt. Ich hab dann einzeln Updates gemacht:
DOIF.pm - keine Änderung
FHEMWEB.pm - fhem ließ sich nicht starten, zu viele Abhängigkeiten, also wieder zurück
fhemweb.js - hier konnte ich nachweisen, dass mit der aktuellen Version der Fehler gezeigt wird, mit der "alten" jedoch nicht. Ich werde mich mal an Rudi wenden.

Viele Grüße


Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit deConz(ZigBee), MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Offline Sany

  • Full Member
  • ***
  • Beiträge: 423
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit deConz(ZigBee), MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....