Autor Thema: vorschlag: newline in attribut werten zulassen  (Gelesen 8251 mal)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
vorschlag: newline in attribut werten zulassen
« am: 17 Oktober 2015, 20:23:27 »
zufälligerweise gab es heute zwei unabhängige fälle bei denen es nützlich wäre wenn fhemweb attribute mit newline handhaben könnte:

- mehrzeilige comment attribute: http://forum.fhem.de/index.php/topic,42405.msg345697.html#msg345697
- das mibs attribut von sysstat: http://forum.fhem.de/index.php/topic,10573.msg345514.html#msg345514

für readingsGroup wäre es glaube ich auch praktisch.

eine mögliche lösung könnte so aussehen:
- in fhemweb.js wird im empfangene attribut wert nicht mehr alle newline entfernt sondern nur das letzte. alle anderen werden durch einen platzhalter
- wenn das attribut in einem textField-long editiert wird werden die platzhalter wieder zu echten newline um das mehrzeilige editieren zu ermöglichen
- im ergebniss von textField-long werden die echten newline wieder durch die platzhalter
- fhemweb ersetzt die im post empfangenen platzhalter durch echte newline

im prinzip könnte man als platzhalter \\n oder <br> verwenden oder wie im DEF vorgehen. das funktioniert aber nicht weil textarea nur einzeilig ist und weil <br> und anderer html text auch 1:1 schon im attribut vorkommen können. ich habe deshalb unicode \u2424 als platzhalter genommen. das sollte im browser sogar als sinnvolles zeichen dargestellt (␤)werden und lässt sich zur not sogar im textarea eingeben.

die nötigen änderungen sind:--- fhemweb.js (revision 9035)
+++ fhemweb.js (working copy)
@@ -619,7 +619,8 @@
   qConn.onreadystatechange = function() {
     if(qConn.readyState != 4)
       return;
-    var qResp = qConn.responseText.replace(/[\r\n]/g, "");
+    var qResp = qConn.responseText.replace(/\n$/, '');
+    qResp = qResp.replace(/\n/g, '\u2424');
     if(el.setValueFn)
       el.setValueFn(qResp);
     qConn.abort();
@@ -669,7 +670,9 @@
         '<textarea id="td_longText" rows="25" cols="60" style="width:99%"/>'+
       '</div>');
 
-    $("#td_longText").val($(inp).val());
+    var txt = $(inp).val();
+    txt = txt.replace(/\u2424/g, '\n');
+    $("#td_longText").val(txt);
 
     var cm;
     if( typeof AddCodeMirror == 'function' )
@@ -688,6 +691,7 @@
           if(cm)
             $("#td_longText").val(cm.getValue());
           var res=$("#td_longText").val();
+          res = res.replace(/\n/g, '\u2424' );
           $(this).dialog('close');
           $(inp).val(res);
           addBlur();

01_FHEMWEB.pm:--- 01_FHEMWEB.pm (revision 9418)
+++ 01_FHEMWEB.pm (working copy)
@@ -901,6 +901,11 @@
   $cmd.=" $arg{$c}" if(defined($arg{$c}) &&
                        ($arg{$c} ne "state" || $cmd !~ m/^set/));
   $cmd.=" $val{$c}" if(defined($val{$c}));
+
+  #replace unicode newline symbol \u2424 with real newline
+  my $nl = chr(226) . chr(144) . chr(164);
+  $cmd =~ s/$nl/\n/g;
+
   return ($cmd, $c);
 }

getestet mit safari,chrome und firefox unter mac os x. ich habe gerade keine windows rechner in der nähe.

gruss
  andre
« Letzte Änderung: 17 Oktober 2015, 20:37:41 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15910
  • s/fhem\.cfg/configDB/g
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #1 am: 17 Oktober 2015, 20:48:59 »
und das Ganze dann noch im codemirror editierbar machen  8)

*duck-und-weg*
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #2 am: 17 Oktober 2015, 20:52:17 »
Sehr schön, das habe ich mir schon länger gewünscht :)

Funktioniert zwar generell im IE,FF41,Edge@Windows
Allerdings habe ich soeben mal versucht den cellStyle einer readingsGroup mehrzeilig zu speichern. Hier zerschießt es mir anschließend die gesamte rg  :(

cellStyle {␤ "r:1"=>'style="font-weight:bold;font-size:16px"',␤    "r:2,c:0"=>'style="font-weight:bold"',␤ "r:5,c:0" =>'style="font-weight:bold"',␤    "r:8,c:0"=>'style="font-weight:bold"',␤    "r:11,c:0"=>'style="font-weight:bold"'␤}
Gruß
  Claudiu

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #3 am: 17 Oktober 2015, 20:56:09 »
@betateilchen: die textField-long popups sind schon mit codemirror editierbar. geht also automatisch spätestens wenn du wigetOverride <attribut>:textField-long für die entsprechenden attribute setzt.

@rapster: kann es sein das du den FHEMWEB teil bzw. das reload dazu vergessen hast? die ␤ werden zwar von der js seite an fhemweb zurück geschickt aber dort durch echte \n ersetzt. d.h. die ␤ dürfen nie im attribut auftauchen.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #4 am: 17 Oktober 2015, 20:59:49 »
Ne fhemheb Teil ist drin,
hab fhem sogar ein ganzen restart spendiert   ::)

EDIT,
habs vorhin auch aus dem Editor-Fenster herauskopiert, hier mal aus der configDB:
search result for: cellStyle in version: 0
--------------------------------------------------------------------------------
attr heatingInfo cellStyle { "r:1"=>'style="font-weight:bold;;font-size:16px"',"r:2,c:0"=>'style="font-weight:bold"',  "r:5,c:0" =>'style="font-weight:bold"',  "r:8,c:0"=>'style="font-weight:bold"',  "r:11,c:0"=>'style="font-weight:bold"'}
Da sind die NL's zumindest nicht zu sehen.

EDIT2: nochmal ein Bild angehangen ;)
« Letzte Änderung: 17 Oktober 2015, 21:04:35 von rapster »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #5 am: 17 Oktober 2015, 21:31:08 »
im kleinen textfield sind die ␤ zu sehen. das ist ok. im grossen popup werden sie durch echte new line ersetzt. im text neben dem attribut namen sind sie nicht zu sehen. das ist auch ok. schau mal bitte in dein config file ob sie da auftauchen. dort sollten ganz normale zeilenenden auftauchen die mit \ maskiert sind.

gruss
  andre

ps: ich glaube ich weiss was dein problem ist...
      readingsGroup muss angepasst werden damit an ein paar stellen die regex für ^{.*}$ die mehrzeiligen strings auch versteht.
      das kommite ich dann wenn rudi den patch akzeptiert. anbei eine test version.
« Letzte Änderung: 17 Oktober 2015, 21:32:50 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #6 am: 17 Oktober 2015, 23:03:24 »
Schaut auf den ersten Blick erstmal gut aus mit der angehängten readingsGroup.pm  8)

Auf dieses Problem könnten allerdings falls der Patch so akzeptiert wird wahrscheinlich mehrere Module stoßen wenn der User der Meinung ist das Attribut jeweils in mehreren Zeilen unterzubringen? Hmm...

Gruß
  Claudiu

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #7 am: 17 Oktober 2015, 23:08:59 »
Nachtrag auf deine Frage, in der configDB sind's echte newlines (siehe Bild), ebenfalls bei einem configDB search:
Die Zeilen werden allerdings nicht mit \ abgeschlossen.

search result for: cellstyle in version: 0
--------------------------------------------------------------------------------
attr heatingInfo cellStyle {
"r:1"=>'style="font-weight:bold;;font-size:16px"',
"r:2,c:0"=>'style="font-weight:bold"',
"r:5,c:0" =>'style="font-weight:bold"',
"r:8,c:0"=>'style="font-weight:bold"',
"r:11,c:0"=>'style="font-weight:bold"'
}

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
vorschlag: newline in attribut werten zulassen
« Antwort #8 am: 17 Oktober 2015, 23:13:23 »
ich glaube das ist eher unkritisch. die meisten attribute sind eher kurz und selbst bei längeren wird selten per regex auf ^ und $ geprüft sondern meist mit split gearbeitet. comment ist völlig unkritisch. mibs auch. readngsGroup ist angepasst. meine anderen module prüfe ich uns ziehe sie nach. auf die schnelle fällt mir nur noch devStateIcon ein.  außerdem bekommt man die newline ja nicht automatisch sondern muss sie erst mit einem textField-long freischalten.

das schaut gut aus. genau so soll es sein. die \ siehst du nur im config file. bei allen anderen ausgaben sind sie transparent und treten nur als zeilenumbruch in erscheinung.

gruss
  andre
« Letzte Änderung: 17 Oktober 2015, 23:16:50 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #9 am: 17 Oktober 2015, 23:23:49 »
Auf die \ kommts (mir) zwar nicht an, allerdings bei einem mehrzeiligen notify seh ich sie in der config:

search result for: ntfy_Tuerklingel in version: 0
--------------------------------------------------------------------------------
define ntfy_Tuerklingel notify ^og_flur_sci_klingel:\s*closed.* {\
my $minDelay = 10;;\
    \
if ( time - ReadingsVal($SELF,'lastExecution',0) > $minDelay ) {\
fhem("set Sonos_Kueche,Sonos_Keller,Sonos_Bad,Sonos_Schlafzimmer Speak 48 de |doorbell| ");;\
CommandSetReading(undef, "$SELF lastExecution ". time);;\
}\
}\

Bei mehrzeiligen Attributen wie im letzten Post zu sehen nicht ;)

Gruß
  Claudiu

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #10 am: 18 Oktober 2015, 00:23:29 »
dann muss betateilchen was dazu sagen. ich habe keine idee warum sie bei einer normalen ausgabe erscheinen. ausser sie werden absichtlich hinzugefügt. dann müsste das für die attribute auch gemacht werden. im config file sind sie jedenfalls da.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20459
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #11 am: 18 Oktober 2015, 12:14:25 »
Habs eingecheckt. Weiterhin habe im telnet Modul die mehrzeilige Eingabe gefixt (\ entfernt), und das comment-Attribut auf textField-long gesetzt.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15910
  • s/fhem\.cfg/configDB/g
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #12 am: 18 Oktober 2015, 16:51:49 »
dann muss betateilchen was dazu sagen.

ganz einfach: weil es bisher keine mehrzeiligen Attribute gab und deshalb auch keine Behandlung von newlines nötig war.

@rapster: ist das nur ein Anzeigeproblem oder gibt es irgendwelche Fehler in der Nutzung der neuen mehrzeiligen Attribute?
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #13 am: 18 Oktober 2015, 17:00:31 »
anders formuliert: die db sollte newline doch eigentlich transparent handhaben da sie nicht zeilenweise arbeitet. wo kommen die \ an den zeilenenden  der DEF anzeige oben her? sie erfüllen da ja keinen zweck.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #14 am: 18 Oktober 2015, 17:27:24 »
@rapster: ist das nur ein Anzeigeproblem oder gibt es irgendwelche Fehler in der Nutzung der neuen mehrzeiligen Attribute?

Das betrifft lediglich die Anzeige, habe mittlerweile mehrere Sachen ohne Probleme auf multi line umgestellt.

Gruß
  Claudiu

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15910
  • s/fhem\.cfg/configDB/g
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #15 am: 18 Oktober 2015, 20:53:27 »
sie erfüllen da ja keinen zweck.

Die Umsetzung dieser Zeilen in die configDB waren bei der Entwicklung die aufäwndigste Aufgabe überhaupt. Zum einen unterscheidet fhem.pl nicht, ob die Zeilen aus fhem.cfg oder aus configDB kommen, zum anderen sollten die Zeilen im DEF-Editorfenster bearbeitbar sein und immer exakt so aussehen, wie der Benutzer sie eingebeben hat.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15910
  • s/fhem\.cfg/configDB/g
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #16 am: 18 Oktober 2015, 20:54:33 »
Das betrifft lediglich die Anzeige,

Ok, also sehe ich erstmal keinen Handlungsbedarf.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #17 am: 18 Oktober 2015, 21:12:31 »
sorry. aber vielleicht stehe ich gerade auf dem schlauch:

wenn es eine DEF in fhem gibt die mehrere zeilen umfasst dann ist das perl intern ein string mit ganz normalen \n newline zeichen. da wird nichts maskiert.

wenn man einen solchen string mit newline zeichen in die db steckt und wieder raus holt dann sollten die 1:1 erhalten bleiben. ohne das etwas maskiert wird.

wenn man einen solchen string in ein file schreibt und unverändert wieder einlesen will muss man entweder string längen mit ausgeben oder die newline so maskieren das man sie beim einlesen erkennt und in echte newline zurückverwandeln kann. das liegt aber nur daran das das das neweline zeichen bei den zeilen basierten file operationen eine eigene bedeutung hat.

wenn man dann diesen aus der db zurück geholten string dann an fhem übergibt und das über die gleiche routine wie das einlesen aus einem file macht muss man die echten new line aus der db maskieren und so tun als wären sie aus einem file.

wenn man sie aus der db holt um sie nur anzuzeigen wie bei search dann sollten keine \ auftauchen.

warum ist beim DEF eine sonderbehandlung nötig die bei den attributen nicht nötig ist? beides geht beim einlesen durch die gleiche (file-) schnittstelle.

könnte es sein das der DEF string auch ohne sonderbehandlung auskommt?

nicht falsch verstehen. das soll keine kritik sein. ich möchte es nur verstehen.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #18 am: 19 Oktober 2015, 08:57:22 »
@rudi: wenn man die folgende zeile noch einbaut werden die mehrzeiligen attribute auch in der detail ansicht mehrzeilig dargestellt:

--- 01_FHEMWEB.pm (revision 9534)
+++ 01_FHEMWEB.pm (working copy)
@@ -1021,6 +1021,7 @@
           FW_pH "cmd=list%20TYPE=$val", $val,1;
 
         } else {
+           $val = "<pre>$val</pre>" if($val =~ m/\n/ && $title eq "Attributes");
            FW_pO "<td><div class=\"dval\">".
                    join(",", map { ($_ ne $name && $defs{$_}) ?
                      FW_pH( "detail=$_", $_ ,0,"",1,1) : $_ } split(",",$val)).
« Letzte Änderung: 19 Oktober 2015, 09:01:24 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #19 am: 19 Oktober 2015, 09:50:47 »
Very hübsch :)
+1

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20459
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #20 am: 19 Oktober 2015, 12:03:55 »
Habs eingecheckt.

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #21 am: 03 November 2015, 23:54:05 »
Andre,
kannst du dir bei Gelegenheit auch mal readingsProxy anschauen?
Hier erhalte ich bei multi line Attributen (z.B. bei setFn) immer: ERROR: endless loop detected

Danke und Gruß
  Claudiu

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #22 am: 03 November 2015, 23:56:13 »
die varianten die ich getestet habe gingen.
bitte mach mal ein konkretes beispiel.


sorry. es ist spät. ich hatte readingsGroup gelesen. hab eben eine aktualisierte version von readingsProxy eingecheckt.

gruss
  andre
« Letzte Änderung: 04 November 2015, 00:18:48 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #23 am: 04 November 2015, 00:24:55 »
Allerdings :)

Danke!, schaut auf den ersten Blick gut aus :)

Gruß
  Claudiu

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #24 am: 03 Dezember 2015, 10:30:03 »
Hallo Rudi,

kleiner Wunsch außerhalb der Wunschliste :)

Währe es möglich dass du newline auch in userReading's zulässt?
i.M. stellt das userReading bei newline du Funktion ein.

Und evtl. falls du sowieso schon an der Stelle am basteln bist, den momentanen device-namen in userReading als Variable (z.B. $DEVICE) bereitstellst? EDIT: Augen auf, $name ...

Kann falls gewünscht auch versuchen einen Patch hierfür bereitzustellen.

Gruß
  Claudiu
« Letzte Änderung: 03 Dezember 2015, 10:51:16 von rapster »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #25 am: 03 Dezember 2015, 10:38:19 »
das device bekommst du über $name.

für das newline müsste es reichen in zeile 2432 ein s anzuhängen:while($arg =~ /$regexo/s) {
gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #26 am: 03 Dezember 2015, 10:45:02 »
Hi Andre,

danke!, das scheint zu funktionieren.

@Rudi, kannst du das so übernehmen?

Und zu der anderen Anfrage, $name ist um userreading natürlich das momentane devic (ich hatte es nur mit $NAME & $DEVICE probiert  :-X)

Gruß
  Claudiu

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #27 am: 03 Dezember 2015, 11:00:26 »
wenn die userReadings auf multiline geändert werden sollte man auch gleich auf textField-long umstellen.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20459
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #28 am: 03 Dezember 2015, 15:44:25 »
Habe beide Vorschlaege (regexp/s+textField-long) ohne testen uebernommen.

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #29 am: 28 April 2016, 10:45:24 »
Würde mir multiline (und default textField-long) auch für stateFormat wünschen :-)

Ist i.M. sehr schwierig z.B. mehrere readings in der Raumübersicht als STATE anzeigen zu lassen und alles in eine Zeile zu quetschen.

Gruß
Claudiu

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #30 am: 28 April 2016, 10:47:19 »
ich glaube du kannst <br> verwenden um eine neue zeile anzufangen.

die frage wäre in man \n und <br> automatisch ineinander umwandelt.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #31 am: 28 April 2016, 10:53:21 »
Nene, will nicht in der Raumübersicht mehrere Zeilen haben, sondern in der Textarea wo ich stateFormat festlege  ;)

Kommt immer wieder mal vor das ich da auch mit mehreren if/elsif/else arbeite und das wird dann leider in einer Zeile richtig unübersichtlich   :(

Wenn man das Attribut allerdings i.M. mehrzeilig abspeicher funktioniert es nicht und in STATE landed einfach der code aus dem attr stateFormat.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #32 am: 28 April 2016, 10:57:13 »
achso...

du kannst mit widgetOverride für das attribut stateFormat von textfield auf textfield-long wechseln.

wenn nicht mehr erkannt wird das es perl code ist fehlt bei der regex die darauf prüft vermutlich nur der s modifier. kann aber gerade nicht nachsehen.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #33 am: 28 April 2016, 10:59:53 »
auf textfield-long ist es schon umgestellt, glaube den s-modifier hatte ich an der Stelle schonmal vor paar Monaten ausprobiert, hatte aber nicht geklappt (Oder ich hab die falsche Stelle erwischt  ;D).

btw, der perlSyntaxCheck funktioniert beim stateFormat auch nicht so ganz  :)

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #34 am: 28 April 2016, 11:11:52 »
Ne hast recht, mit "s" scheint es zu funktionieren:

Index: fhem.pl
===================================================================
--- fhem.pl     (Revision 11333)
+++ fhem.pl     (Arbeitskopie)
@@ -3869,7 +3869,7 @@
   if(!$sr) {
     $st = $st->{VAL} if(defined($st));

-  } elsif($sr =~ m/^{(.*)}$/) {
+  } elsif($sr =~ m/^{(.*)}$/s) {
     $st = eval $1;
     if($@) {
       $st = "Error evaluating $name stateFormat: $@";

Kannst du das übernehmen Rudi (und evtl. auf default textField-long ändern und perlSyntaxCheck aktivieren)?

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20459
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #35 am: 28 April 2016, 21:45:16 »
Habs gemacht.

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #36 am: 28 April 2016, 21:52:05 »
Danke, allerdings bei Verwendung von $name:
Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?) at (eval 904) line 3.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20459
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #37 am: 28 April 2016, 22:06:33 »
Ist $name als gueltige stateFormat Variable irgendwo dokumentiert?
Habs jetzt aber zu perlSyntaxCheck hinzugefuegt.

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 924
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #38 am: 28 April 2016, 22:14:35 »
(noch?) Nicht unter dem Attribut selber, in der Commandref finden sich allerdings mehrere Beispiele wo in stateFormat $name verwendet wird.

Scheint nun zu funktionieren, Danke  :)

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #39 am: 24 April 2019, 23:26:50 »
Guten Abend,
ich muss dieses Thema nocheinmal "erwecken".

Wieso ist es nicht gewünscht Attribute mehrzeilig darzustellen wenn der Bildschirm nicht ausreicht  ???

1) Wenn  man mit dem userattr rumspielt oder dies verwendet, so kommt schnell mal der Bildschirm an seine Grenzen. Das 2 zeilig darstellen funktioniert nicht, da die Liste dann intern "zerstört" wird.
2) Das Attr comment wäre hilfreich wenn es ebenso nach dem Bildschirmende umbricht.

MfG
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19110
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #40 am: 24 April 2019, 23:52:17 »
mehrzeilige attribute sind seit langem möglich. allerdings muss man das beim auswerten eines attributs auch erlauben/berücksichtigen.

1. das müsste man einfach nur in der auswertung zulassen.

2. hier sind zeilenumbrüche kein problem. damit es handlicher wird kannst du über widgetOverride textField-long für das comment attribut aktivieren 
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20233
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #41 am: 25 April 2019, 00:25:32 »
Guten Abend,
ich muss dieses Thema nocheinmal "erwecken".

Wieso ist es nicht gewünscht Attribute mehrzeilig darzustellen wenn der Bildschirm nicht ausreicht  ???

1) Wenn  man mit dem userattr rumspielt oder dies verwendet, so kommt schnell mal der Bildschirm an seine Grenzen. Das 2 zeilig darstellen funktioniert nicht, da die Liste dann intern "zerstört" wird.
2) Das Attr comment wäre hilfreich wenn es ebenso nach dem Bildschirmende umbricht.

MfG

Oder übersehe ich da was oder habe es falsch verstanden?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #42 am: 25 April 2019, 06:52:47 »
Hallo CoolTux,
genau solch eine Darstellung würde ich haben wollen bei dem Attribut userattr.

Alle versuche, dort es zu erhalten schlug fehl. Entweder die Daratellung ist richtig aber die dadurch zusätzliche Attr Liste wird falsch dargestellt.

Wo muss ich eine Anpassung diesbezüglich vornehmen?


Gesendet von iPhone mit Tapatalk Pro
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20233
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #43 am: 25 April 2019, 07:02:34 »
Gar nicht. Also zu mindest mit nicht bewusst.
Es kann/wird wenn dann am DarkStyle liegen. Ich habe bewusst jedenfalls nichts dafür getan.
DieSeite habe ich übrigens über ein 9Zoll Tablet aufgerufen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #44 am: 25 April 2019, 07:10:13 »
Es ist natürlich sehr schade wenn es im Darkstyle klappt und beim Standard Style nicht :( :(

Das es Anpassungen im Style wären, vermutete ich schon. Man müsste ja nur den Ansichtsbereich begrenzen lassen und somit den Umbruch im div „erzwingen“.

Wäre sehr schön wenn man dafür eine Lösung bzw. Vorschlag zur Lösung erhalten kann um diesen vorzuschlagen.

Ich sehe keinen wirklichen Sinn dahinter  wenn man den Monitor scrollen muss jedesmal. Wie denken die anderen denn darüber?



Gesendet von iPhone mit Tapatalk Pro
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20459
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #45 am: 25 April 2019, 08:50:49 »
Zitat
Es ist natürlich sehr schade wenn es im Darkstyle klappt und beim Standard Style nicht
Bitte keine ungeprueften Sachen verbreiten.

userattr an sich hat kein Problem mit Newline (die FHEMWEB Eingabe kann man mit "attr XX widgetOverride userattr:textField-long" aktivieren), unabhaengig vom Style, man kann die so definierten Attribute setzen, speichern, etc.

Leider auch unabhaengig vom Style reagiert FHEMWEB falsch, wenn man so definierte Attribute in der Detailansicht setzen will: je nach Vorgeschichte wird eine andere/falsche input-Methode eingeblendet.

Ich habe das jetzt gefixt, FHEM-update ist verfuegbar morgen ab 8.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #46 am: 25 April 2019, 16:31:47 »
Hallo,
danke @Rudi und dann werde ich morgen erstmal testen bevor hier die endgültige Aussage erfolgt.

Grüße


Gesendet von iPhone mit Tapatalk Pro
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #47 am: 26 April 2019, 17:00:34 »
Hallo,

ich habe mich nun noch einmal nach der Anpassung von @Rudi damit beschäftigt.
Meines Erachtens liegt hier ein Missverständnis vor.

Die von @Rudi gefixte Variante mit
Zitat
(die FHEMWEB Eingabe kann man mit "attr XX widgetOverride userattr:textField-long" aktivieren),
funktioniert.

Ich meinte es wie folgt, wenn das Einzelne userattr mit einem neuen Attrib versehen ist und dazu sehr viele Werte, so das es über den Bildschirm hinausgeht, so muss man immer scrollen weil kein Zeilenumbruch möglich ist. Ich habe die Bilder angehangen.  :D

Im letzten Bild seht Ihr, wie das einzelne Attribut "verrissen" wird wennn man einen Umbruch hinzufügen möchte für die Darstellung.

- Anlage Bild 1 + 2 scrollen beim Bildschirm
- Anlage Bild 3 - wünscchenswert
- Anlage Bild 4 - Attributwerte "zerrissen"

@CoolTux
bei dir sind es jeweils andere Attribute und bei mir ist es nur eins mit sehr vielen Werten.
« Letzte Änderung: 26 April 2019, 17:03:25 von HomeAuto_User »
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20233
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #48 am: 26 April 2019, 17:07:27 »
Ah verstehe. Allerdings glaube ich nicht das sowas in der Länge oft vor kommt, oder?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #49 am: 26 April 2019, 17:14:25 »
Ah verstehe. Allerdings glaube ich nicht das sowas in der Länge oft vor kommt, oder?

Das weiß ich nicht einzuschätzen.

Das Erscheinungsbild zieht sich aber auch weiter wenn ein Internal sehr lang ist.
Somit ist es ein "globales Problem" was an einigen Stellen auftreten kann.

Die Darstellung von Listen oder mehrere Einträge mit langen Namen werden somit immer wieder auf "sehr viele Monitore" gezogen und beim scrollen verliert man die linke Bildschirmseite.

Im Anhang ein weiteres Auftreten beim SIGNALduino Device Bsp.


PS: beim Comment geht das "Dummerweise" aber nicht beim userattr.
« Letzte Änderung: 26 April 2019, 17:19:39 von HomeAuto_User »
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #50 am: 03 Mai 2019, 21:38:37 »
Hallo, gibt es bezüglich der Thematik Ideen um es zu lösen? Liebe Grüße


Gesendet von iPhone mit Tapatalk Pro
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20459
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #51 am: 04 Mai 2019, 15:16:54 »
Mir fallen CSS Attribute ein, die einen Umbruch an definierten Stellen duchrfuehren.
Hat leider in anderen Faellen nicht die gewuenschte Wirkung.
Man kann damit selbst experimentieren, ohne Perl oder JavaScript anfassen zu muessen.

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #52 am: 04 Mai 2019, 16:32:43 »
Mir fallen CSS Attribute ein, die einen Umbruch an definierten Stellen duchrfuehren.
Hat leider in anderen Faellen nicht die gewuenschte Wirkung.
Man kann damit selbst experimentieren, ohne Perl oder JavaScript anfassen zu muessen.

Hallo, welche CSS Einstellung wirkt dort ohne das ich diese überall durchteste ? Gibt es eine „Beschreibung“ welcher Screen mit welcher CSS beeinflusst wird?

Du hattest geschrieben, das „Hat leider in anderen Faellen nicht die gewuenschte Wirkung.“ was meinst du damit oder welche bekannten „Probleme“ ergeben sich da?


Gesendet von iPhone mit Tapatalk Pro
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20459
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #53 am: 04 Mai 2019, 17:25:49 »
Zitat
weelche bekannten „Probleme“ ergeben sich da?
Schaut haesslich aus.

Offline HomeAuto_User

  • Developer
  • Full Member
  • ****
  • Beiträge: 468
Antw:vorschlag: newline in attribut werten zulassen
« Antwort #54 am: 05 Mai 2019, 23:00:46 »
Schaut haesslich aus.

Hallo, diesbezüglich kann ich mir kein Urteil bisher leisten.
Es sieht aber auch sehr unschön aus, wenn der Bildschirm automatisch aufgrund von einer Zeile komplett in die Länge gezogen wird.
--> Dadurch wird Beispielweise auch der oberere Teil wenn man Links zum anklicken hat, automatisch auf den Bildschirm gezerrt und man muss IMMER erst scrollen --> das nervt natürlich.

Wieso begrenzt man die Ansicht nicht auf den Bildschirm und bei einer Überschreitung bricht man diese um?
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: 3x FHT 80b | 5x FHT 80 TF-2 | 2x S300TH | 1x WS7000-20 | 5x "Hideki" | THR128 und andere ;-)

 

decade-submarginal