Vermeidung von Steuerzeichen in der WebGui

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

Antworten
alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Vermeidung von Steuerzeichen in der WebGui

Beitrag von alchy » 18.03.2017, 23:56

>> H I E R << ging es mal wieder um ein Problem mit "unsichtbaren" Systemvariablen.
Bei der Beseitigung ist mir doch ein nachvollziehbarer Mist aufgefallen, den EQ3 schleunigst abstellen sollte.

Benutzt man in der KLickibunti z.B. ein Steuerzeichen wie \n für neue Zeile (z.B. sehr schön versteckt in meinem praxistauglichen Beispiel: ja\nein )
Bug_steuerzeichenSysvar01.jpg
z.B in der Beschreibung einer Systemvariablen hat das sofort fatale Auswirkungen.

Unter Startseite > Einstellungen > Systemvariable bleibt die Seite fortan leer.
Bug_steuerzeichenSysvar02.jpg

Abhilfe kann man aber schaffen, in dem man diese Beschreibung per Script überschreibt.

Code: Alles auswählen

(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(951).DPInfo("Neue leere Beschreibung von Alchy");
WriteLine("Variablenbeschreibung geändert");
Es wäre schön, wenn das mal wer verifizieren könnte, bevor ich EQ3 den Bug melde.

Einfach mal bei z.B. der Systemvariable: Anwesenheit das Steuerzeichen wie beschrieben in der Beschreibung verwenden
Nachschauen, ob auch bei ihm die Seite Einstellungen Systemvariablen leer bleibt wie beschrieben
und dann mittels obigen Script einfach die Beschreibung der Variable wieder überschreiben.
Achtung: dabei im Script aber statt der 951 die 950 verwenden.
Ich habe ja mehrere Anwesenheitsvariablen, und habe aus Versehen die falsche Anwesenheit2 mit der ISE_ID 951 genommen für die Doku :mrgreen:
Vielleicht kann das auch wer testen, der noch keine 2.27.7 installiert hat.
Vielleicht hat sich das ja auch gerade erst damit eingeschlichen.

Alchy
Zuletzt geändert von alchy am 13.07.2017, 13:29, insgesamt 1-mal geändert.
Grund: Art des Themas geändert - gehört nicht angepinnt

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Bulli
Beiträge: 494
Registriert: 29.04.2014, 18:38
Hat sich bedankt: 2 Mal
Danksagung erhalten: 9 Mal

Re: Vermeidung von Steuerzeichen in der WebGui

Beitrag von Bulli » 19.03.2017, 10:33

Hallo
werde ich Testen, das wird aber heute wahrscheinlich nichts mehr.
Ich habe ja eine Test CCU. Werde es erst mal mit 2.25.15 und danach mit 2.27.7 testen.

Gruß
Bulli

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Vermeidung von Steuerzeichen in der WebGui

Beitrag von alchy » 19.03.2017, 11:02

Der Ablauf ist ja beschrieben. Repariert kriegen wir das schon wieder. Ich habe es mehrfach hin und her geändert, bevor ich es hier gepostet habe.
Würde mich freuen, wenn wir Infos mehrerer Firmware bekommen für das Ticket.

Danke
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Bulli
Beiträge: 494
Registriert: 29.04.2014, 18:38
Hat sich bedankt: 2 Mal
Danksagung erhalten: 9 Mal

Re: Vermeidung von Steuerzeichen in der WebGui

Beitrag von Bulli » 19.03.2017, 13:45

Hi
das ist mit 2.25.15 auch so.

Firmware 2.27.7
ID 950 Beschreibung in "Anwesenheit ja\nein" geändert.

Seite ist leer
var_test_2.27.7.jpg
Seite unter Startseite > Status und Bedienung > Systemvariable zeigt Sie ohne \ an.
var_test_bed2.27.7.jpg
hier mal die Ausgaben deines 0.2 Scripts alle zusammen Zeilen beachten

Code: Alles auswählen

2.27.7

ISE_ID:40
	NAME:Alarmmeldungen 
	SICHTBAR:false
	ENABLED:true
	Beschreibung: Anzahl Alarmmeldungen
ISE_ID:1233
	NAME:Alarmzone 1 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: Alarmmeldung
ISE_ID:950
	NAME:Anwesenheit 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: Anwesenheit
ISE_ID:1238
	NAME:CCU-TimerControl-Counter 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: 
ISE_ID:1240
	NAME:CCU-TimerControl-Info 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: 
ISE_ID:41
	NAME:Servicemeldungen 
	SICHTBAR:false
	ENABLED:true
	Beschreibung: Anzahl Servicemeldungen


GEÄNDERT IN ja\nein

ISE_ID:40
	NAME:Alarmmeldungen 
	SICHTBAR:false
	ENABLED:true
	Beschreibung: Anzahl Alarmmeldungen
ISE_ID:1233
	NAME:Alarmzone 1 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: Alarmmeldung
ISE_ID:950
	NAME:Anwesenheit 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: Anwesenheit ja
ein
ISE_ID:1238
	NAME:CCU-TimerControl-Counter 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: 
ISE_ID:1240
	NAME:CCU-TimerControl-Info 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: 
ISE_ID:41
	NAME:Servicemeldungen 
	SICHTBAR:false
	ENABLED:true
	Beschreibung: Anzahl Servicemeldungen





Firmware 2.25.15 zeigt das selbe an
ISE_ID:40
	NAME:Alarmmeldungen 
	SICHTBAR:false
	ENABLED:true
	Beschreibung: Anzahl Alarmmeldungen
ISE_ID:1233
	NAME:Alarmzone 1 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: Alarmmeldung
ISE_ID:950
	NAME:Anwesenheit 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: Anwesenheit ja
ein
ISE_ID:1238
	NAME:CCU-TimerControl-Counter 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: 
ISE_ID:1240
	NAME:CCU-TimerControl-Info 
	SICHTBAR:true
	ENABLED:true
	Beschreibung: 
ISE_ID:41
	NAME:Servicemeldungen 
	SICHTBAR:false
	ENABLED:true
	Beschreibung: Anzahl Servicemeldungen
Firmware 2.25.15 gleich Bild
var_test_2.25.15.jpg
var_test_bed2.25.15.jpg
Gruß
Bulli

ps hab das ganze auch noch mit ISE_ID:1233 NAME:Alarmzone 1 geteste, da kommt das selbe Ergebniss raus.

arturj
Beiträge: 3
Registriert: 03.11.2016, 08:35

Re: Vermeidung von Steuerzeichen in der WebGui

Beitrag von arturj » 19.03.2017, 14:48

Das ist schon ein Ding. Habe aktuellste firmware 2.27.7 drauf und bin in das selbe Problem gelaufen - ich stand schon kurz davor meine CCU2 zu resetten wodurch ich etliche Aufzeichnungen verloren hätte - ganz von dem Aufwand abgesehen alle Programme zu verscreenshoten und alle Scripte abzuspeichern um diese Stück für Stück wieder aufzubauen. RIESEN dank an alchy für sein Script zur Auflistung aller Systemvariablen - habe sofort gesehen dass eine Beschreibung einen Zeilenumbruch enthielt da ich in einem Script diese wie folgt setze:

Code: Alles auswählen

  
! generate alarm with device name
  var alarm = dom.GetObject("Batteriewarnung");
  string message = "Batteriewarnung: " # roomName # " " # deviceName # ": " # source.Value() # "V\n" # alarm.DPInfo();
  alarm.DPInfo(message);
  alarm.State(true);
Vielleicht an dieser Stelle kurz die Frage, ob das auch die korrekte Methode ist eine Variable des Typs "alarm" so zu setzen, dass der Hinweis-Text auch in den Alarmmeldungen der WebGUI erscheint (so funktionierte es jedenfalls bestens bis zum letzten Update).
Zuletzt geändert von alchy am 20.03.2017, 20:26, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Vermeidung von Steuerzeichen in der WebGui

Beitrag von alchy » 20.03.2017, 20:37

Abgesehen von der fehlenden Deklaration von roomName,deviceName, usw. (wirst wohl nicht das ganze Script gepostet haben) kann man es natürlich so machen.
Vielelicht noch als Verbesserung, den Zugriff auf die Systemvariable

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("Batteriewarnung");
Du solltest natürlich eben keine Codes wie Zeilenumbrüche \n in den String schreiben, welcher dann lt. deinem Script in der Beschreibung der Variable hinter dem V steht.

Auch @ Bulli vielen Dank fürs Testen.


Antwort EQ-3 auf den gemeldeten Bug wie gehabt:
Sehr geehrter Herr Alchy,

vielen Dank für Ihre freundliche Anfrage und das damit verbundene Interesse an unseren Produkten.

Wir haben Ihre Anfrage zur Bewertung an die Entwicklungsabteilung weitergegeben.

Das beschriebene Verhalten wird nachgestellt und fließt in die Releaseplanungen ein. In einem zukünftigen Update sollte das Verhalten beseitigt werden.

Informationen zu Optimierungen und Veränderungen kann den jeweiligen Changelogdateien der Firmware entnommen werden.

Mit freundlichen Grüßen aus Leer

Ihr eQ-3 Support-Team
Wollen wir mal hoffen :mrgreen:

Vielleicht hätte ich EQ-3 gleich den Bug: >> Fehlerhafte Darstellung der WebUI der CCU2 - roter Punkt << gleich nochmal mitteilen sollen. Den gibts nun schon so lange, das man von Einfließen in die Releaseplanung nicht mehr reden kann.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

SmartMG
Beiträge: 122
Registriert: 16.09.2015, 03:41
Danksagung erhalten: 2 Mal

Re: Vermeidung von Steuerzeichen in der WebGui

Beitrag von SmartMG » 13.07.2017, 07:49

kann man nicht ein script erstellen,
welches steuerzeichen in systemvariablen idetifiziert und nur die problematische Variable automatisch umschreibt?

Das lässt man einfach jede stunde laufen und im falle eines fehlers, wird dieser automatisch beseitigt.

Optional könnte man noch eine Servicemeldung (Sysvar_ Error_Autoreset) generieren, um über Änderungen informiert zu werden.
65 Kanäle in 24 Geräten (Mai 2016)
4x HM-Sec-SC-2, 2x HM-Sec-RHS, 2x HM-RC-Key4-2, 2x HMIP-eTRV, 2x HMIP-WTH, 1x HM-LC-Sw4-WM, 7x HM-ES-PMSw1-Pl, 1x HMIP-SWDO, 2x HM-Sec-Key-S, 1x HM-Sec-SCo

--------------------------------------------
29 Kanäle in 17 Geräten (Dez 2015)
3x HM-Sec-SC-2, 2x HM-Sec-RHS, 2x HM-RC-Key4-2, 1x HM-LC-Sw4-WM, 6x HM-ES-PMSw1-Pl, 2x HM-Sec-Key-S, 1x HM-Sec-SCo

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Vermeidung von Steuerzeichen in der WebGui

Beitrag von Familienvater » 13.07.2017, 10:46

Hi,

warum sollte ich die Zentrale mit Dingen belasten, die bei sauberer Programmierung nicht passieren?
Wenn keiner Sonderzeichen reinschreibt, kann auch keins drinstehen. Und normalerweise haben wir ja den Code geschrieben, der die Systemvariablen befüllt, und lassen das nicht CAPTCHA-Like aus dem Internet zu, sonst hat man eh andere Probleme.

Aber ja: Machen kann man das sicherlich, und je öfter man das macht, desto mehr hat die Zentrale zu tun, und desto unwahrscheinlicher wird es, das man zufällig einen Moment erwischt, der die WebUI wegen falscher Werte zum Anzeigeabsturz bringt, desto mehr gejammer gibt es, das man einen Pi 5 mit 8 GHz und 16 Kernen braucht, weil selbst der Pi 3 unsagbar langsam geworden ist.

Der Familienvater

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Vermeidung von Steuerzeichen in der WebGui

Beitrag von alchy » 21.07.2017, 22:56

lt. Changelog der aktuellen 2.29.18
[HMCCU2-1356] Nach Verwendung des Zeichens \ (Backslash) innerhalb von Variablennamen oder
der Variablenbeschreibung, konnte die Seite Einstellungen/Systemvariable nicht mehr aufgerufen werden. Der Backslash wird nun nicht mehr als gültiges Zeichen
akzeptiert und wird herausgefiltert.
behoben.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic - bekannte Bugs“