Stringvariable mit mehreren Spaces in Folge erstellen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
herby53
Beiträge: 2
Registriert: 19.06.2021, 18:01
System: sonstige

Stringvariable mit mehreren Spaces in Folge erstellen

Beitrag von herby53 » 19.06.2021, 18:32

Ich möchte in eine Systemvariable (String), einen Text schreiben der mehrere Spaces in Folge enthält.
Mein erster Versuch:

object GL = dom.GetObject("gTEMP"); ! Systemvariable gTEMP
GL.State('TEXT TEXT');

Leider werden anstelle der vier Leerzeichen, nur eines in die Variable geschrieben.
Zuletzt geändert von Roland M. am 19.06.2021, 18:45, insgesamt 1-mal geändert.
Grund: Thema verschoben

Benutzeravatar
Roland M.
Beiträge: 9787
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1374 Mal

Re: Stringvariable mit mehreren Spaces in Folge erstellen

Beitrag von Roland M. » 19.06.2021, 18:38

Hallo und willkommen im Forum!

Bis sich Script-Kundige beteiligen, hätte ich einen Workaround anzubieten:

var leer = " ";
var x = "Hello" # leer # leer # leer # "world!";


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Matsch
Beiträge: 5427
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: Stringvariable mit mehreren Spaces in Folge erstellen

Beitrag von Matsch » 19.06.2021, 18:45

Leerzeichen kann man doch ganz normal als String verwenden, also

Code: Alles auswählen

string s = TEXT1 # "    " # Text2;

GL.State(TEXT1 # "    " # TEXT2);
GL.State("TEXT    TEXT");
MIr ist allerdings auch unklar, woher hier 4 Leerzeichen kommen sollten, wenn du nur eines im String eingibst.

Code: Alles auswählen

GL.State('TEXT TEXT');
Ich gehe davon aus, dass die SV gTEMP als Zeichenkette definiert wurde.
Zuletzt geändert von Matsch am 19.06.2021, 20:10, insgesamt 1-mal geändert.

Benutzeravatar
Black
Beiträge: 5472
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: Stringvariable mit mehreren Spaces in Folge erstellen

Beitrag von Black » 19.06.2021, 19:30

jup, ich konnte sowohl mit dem internen Raspel Editor als auch mit dem SDV Editor kein Fehlverhalten feststellen

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Stringvariable mit mehreren Spaces in Folge erstellen

Beitrag von jp112sdl » 19.06.2021, 20:42

herby53 hat geschrieben:
19.06.2021, 18:32
Leider werden anstelle der vier Leerzeichen, nur eines in die Variable geschrieben.
Geschrieben werden schon 4
Bildschirmfoto 2021-06-19 um 20.41.02.png

Angezeigt in der WebUI wird leider nur eines :wink:
Bildschirmfoto 2021-06-19 um 20.41.21.png

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Matsch
Beiträge: 5427
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: Stringvariable mit mehreren Spaces in Folge erstellen

Beitrag von Matsch » 19.06.2021, 20:54

jp112sdl hat geschrieben:
19.06.2021, 20:42
Angezeigt in der WebUI wird leider nur eines :wink:
Ach herrje! Dort schaue ich ja auch gar nicht hin.
Mit anderen Worten: es ist ein Darstellungsproblem in der Statusanzeige, aber die Stringvariable selbst ist schon korrekt.

Ich kann es nachvollziehen, selbst wenn ich seeehr viele Leerzeichen einfüge! :shock:

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Stringvariable mit mehreren Spaces in Folge erstellen

Beitrag von jp112sdl » 19.06.2021, 20:56

Es muss in der /www/rega/esp/system.fn noch das Leerzeichen durch   ersetzt werden, dann geht es:
https://github.com/eq-3/occu/blob/maste ... 1502-L1508

Code: Alles auswählen

  if ( bString )                                                                
  {                                                                             
    sSysVarVal = cObjTmp.Value();                                               
    sSysVarVal = sSysVarVal.Replace("\r\n", "<br/>");                           
    sSysVarVal = sSysVarVal.Replace("\r", "<br/>");                             
    sSysVarVal = sSysVarVal.Replace("\n", "<br/>");                                              
    sSysVarVal = sSysVarVal.Replace(" ", "&nbsp;");                             
  } 
  
Bildschirmfoto 2021-06-19 um 20.56.48.png
Bildschirmfoto 2021-06-19 um 20.56.48.png (13.26 KiB) 458 mal betrachtet
Könnte man als klassisches Bug-Ticket mal an eQ-3 melden.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Stringvariable mit mehreren Spaces in Folge erstellen

Beitrag von jp112sdl » 19.06.2021, 22:48

Für RaspberryMatic habe ich ein Ticket und Patch bereitgestellt:
https://github.com/jens-maus/RaspberryMatic/issues/1310

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“