probleme mit umlauten z.b. in raum namen

Begonnen von justme1968, 12 Februar 2014, 17:00:19

Vorheriges Thema - Nächstes Thema

justme1968

ich habe gerade versucht rauszufinden warum longpoll nicht mehr mit einer readingsGroup in der raum übersicht geht und dabei bemerkt das es am umlaut im raum namen (Übersicht) liegt.

das problem ist das das matchen mit \b$re\b in devspec2array nicht das erwartete tut wenn im $re ein umlaut enthalten ist:my $val = "ä,a,ä,a";                   
                                       
print "match a\n", if( $val =~ m/\ba\b/ );
print "match ä\n", if( $val =~ m/\bä\b/ );

funktioniert nicht wie erwartet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

In fhem.pl fehlt "use utf8;".
Bei mir scheint es zu tun, auf einem FB auch, da sie aber evtl. ungewollte Konsequenzen hat, wuerde ich gerne von Dir auch ein "ok" hoeren, bevor ich sie einchecke.
Und danach muessen wir die Ohren offen halten fuer Fehlermeldungen :)

justme1968

nein. leider ist es nicht so einfach.

use utf8; bewirkt das das encoding des quelltextes auf utf8 gestellt wird. deshalb geht dann auch das drei zeilen beispiel weil da die umlaute im quelltext stehen.

das umschalten der semantik für die regex geht aber anders. gefunden habe ich:

- use encoding 'utf8'; -> dann geht das matchen wie es soll. aber leider funktioniert die ausgabe in telnet und log file nicht mehr. fhemweb stürzt komplett ab wenn man ein umlaut eingibt.

- use locale ':not_characters'; -> tut nichts

- use locale;setlocale(LC_CTYPE,"de_DE"); -> tut nichts

- use feature 'unicode_strings'; -> das klingt eigentlich nach dem richtigen. es scheint gar nichts zu tun.


ich bin gerade etwas ratlos...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

noch ein bischen gelesen und probiert.

es scheint keine lösung zu geben die es erlaubt das \b plattform und perl versions unabhängig zu verwenden zumal es auch noch einen mehrfach referenzierten utf8 bug in perl versionen < 5.12 gibt der alle zeichen zwischen 128 und 255 con der korrekten  behandlung ausnimmt.

mir fällt nur ein auf \b zu verzichten und es zu fuss mit zeilenanfang, zeilenanfang und komma zu behandeln. zumindest dort wo umlaute erlaubt sind.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Danke fuer die Forschung, ich habe folgendes in fhem.pl geaendert und eingecheckt:

-        my $lre = ($n eq "room" ? "\\b$re\\b" : "^$re\$");
+        my $lre = ($n eq "room" ? "(^|,)$re(,|\$)" : "^$re\$");



justme1968

longpoll geht im raum Unsorted mal wieder nicht.

beim debuggen bin ich wieder über das alte problem hier gestolpert. die lösung mit den gruppen und explizit behandeln von zeilenanfang, zeilenanfang und komma per oder funktioniert natürlich nicht wenn die bedingung negiert ist wie beim raum Unsorted der über room!=.* behandelt wird.

man könnte das jetzt auf die schnelle fixen und einen sonderbehandlung für room!=.* einbauen aber vielleicht hat du ja noch eine bessere idee...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Zitatlongpoll geht im raum Unsorted mal wieder nicht.
Ich frage mich, ob das wirklich so tragisch ist.

justme1968

#7
ja :)

es ist zumindest inkonsistent und es verdeckt öfter mal andere probleme bzw. lässt einen beim testen ein problem sehen das dann doch nicht am device liegt sondern daran das Unsorted nicht richtig funktioniert. z.b. grade hier: http://forum.fhem.de/index.php/topic,22753.msg161704.html#msg161704 passiert.

wie wäre eine grosse überschrift im raum unsorted:
ZitatAchtung: hier funktioniert longpoll nicht!
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig


justme1968

dann fällt es dir sicher leicht zwischen den beiden angehängten möglichkeiten zu wählen :)

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

ich bin bisher nie davon ausgegangen, dass longpoll im room unsorted überhaupt funktionieren sollte  ???
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

es gibt keinen grund das es das nicht sollte und bis her hat ein nicht funktionieren fast immer auf ein problem an anderer stelle hingedeutet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

der eigentliche fix ist übrigen oben auch dabei.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig