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

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15972
  • 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.
-----------------------
Der Hamburg-Stammtisch am 14.06.2019 fällt aus!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15972
  • 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.
-----------------------
Der Hamburg-Stammtisch am 14.06.2019 fällt aus!

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19265
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: 19265
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: 20651
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: 19265
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: 19265
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: 19265
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: 20651
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

 

decade-submarginal