Fehler in 02_RSS

Begonnen von Alexander Bauer, 06 März 2013, 23:24:57

Vorheriges Thema - Nächstes Thema

Alexander Bauer

Hallo,

heute einmal das Update durchgeführt und FHEM will nicht

Can't call method "width" on an undefined value at ./FHEM/02_RSS.pm line 204.
Can't call method "jpeg" on an undefined value at ./FHEM/02_RSS.pm line 450.

Zurück auf ein Backup von 10. Februar und das RSS Modul führt nicht zum Abbruch von FHEM.

Wo soll ich weitersuchen?
--

Fhem auf Cubietruck mit Debian Wheezy und Homematic und 1-Wire

Dr. Boris Neubert

Hallo Amatic,
Zitat von: Amatic schrieb am Mi, 06 März 2013 23:24heute einmal das Update durchgeführt und FHEM will nicht

Can't call method "width" on an undefined value at ./FHEM/02_RSS.pm line 204.
Can't call method "jpeg" on an undefined value at ./FHEM/02_RSS.pm line 450.


ich hatte RSS am 24.02. überarbeitet. Hintergrundbilder, die bereits im Format des Bilderrahmens sind, werden daraufhin nicht noch skaliert. Ich habe die Funktionsfähigkeit bei mir mit Bildern passender und nicht passender Größe erfolgreich getestet.

Wenn Du eine Lösung willst, dann poste bitte
- die Definition des RSS-Geräts mit allen zugehörigen Attributen
- ein minimales Layout, mit dem sich der Fehler nachstellen läßt.

Wenn die Erstellung des Bildes fehlschlägt, wird außerdem von Perl eine Warnung geschrieben. Am besten startest Du fhem.pl daher einmal auf der Konsole, um Dir anzusehen, ob zusätzliche Meldungen kommen.

Viele Grüße
Boris

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Alexander Bauer

Hallo Boris,

danke für die Tips. In der fhem.cfg steht jetzt nur noch:


attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd none
attr global sendStatistics 1
attr global statefile ./log/fhem.save
attr global userattr devStateIcon icon webCmd
attr global verbose 5

#
# pgm2 / autocreate configfile. Take a look at the other examples for more.
#

define WEB FHEMWEB 8083 global

define WEBphone FHEMWEB 8084 global
attr WEBphone smallscreen 1


define FrameRSS RSS jpg 192.168.178.37 /opt/fhem/layout
attr FrameRSS bg /usr/share/pictures
attr FrameRSS size 960x690
attr FrameRSS tmin 1



Das Layout ist wie folgt:


font /usr/share/fonts/truetype/msttcorefonts/arial.ttf # must be a TrueType font
rgb ffffff # HTML color notation, RGB
pt 120 # font size in points
time 0 125
#pt 60
#seconds 400 125 colon



Folgende Fehlermeldungen erscheinen auf der Console von der fhem.pl gestartet wurde:
root@debian:/opt/fhem# ./fhem.pl ./fhem.cfg
root@debian:/opt/fhem# Can't call method "width" on an undefined value at ./FHEM/02_RSS.pm line 204.
Can't call method "jpeg" on an undefined value at ./FHEM/02_RSS.pm line 450.


Das fhem.log ist wie folgt:
root@debian:/opt/fhem# less log/fhem-2013-03.log
2013.03.07 20:45:22 1: Including ./fhem.cfg
2013.03.07 20:45:22 5: Cmd: >attr global autoload_undefined_devices 1<
2013.03.07 20:45:22 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2013.03.07 20:45:22 5: Cmd: >attr global modpath .<
2013.03.07 20:45:22 5: Loading ./FHEM/99_SUNRISE_EL.pm
2013.03.07 20:45:23 5: Loading ./FHEM/99_Utils.pm
2013.03.07 20:45:23 5: Loading ./FHEM/99_XmlList.pm
2013.03.07 20:45:23 5: Cmd: >attr global motd none<
2013.03.07 20:45:23 5: Cmd: >attr global sendStatistics 1<
2013.03.07 20:45:23 5: Cmd: >attr global statefile ./log/fhem.save<
2013.03.07 20:45:23 5: Cmd: >attr global userattr devStateIcon icon webCmd<
2013.03.07 20:45:23 5: Cmd: >attr global verbose 5<
2013.03.07 20:45:23 5: Cmd: >define WEB FHEMWEB 8083 global<
2013.03.07 20:45:23 5: Loading ./FHEM/01_FHEMWEB.pm
2013.03.07 20:45:23 3: WEB: port 8083 opened
2013.03.07 20:45:23 5: Cmd: >define WEBphone FHEMWEB 8084 global<
2013.03.07 20:45:23 3: WEBphone: port 8084 opened
2013.03.07 20:45:23 5: Cmd: >attr WEBphone smallscreen 1<
2013.03.07 20:45:23 3: WEBphone: attribute smallscreen deprecated, converted to stylesheetPrefix
2013.03.07 20:45:23 5: Cmd: >define FrameRSS RSS jpg 192.168.178.37 /opt/fhem/layout<
2013.03.07 20:45:23 5: Loading ./FHEM/02_RSS.pm
2013.03.07 20:45:23 5: Cmd: >attr FrameRSS bg /usr/share/pictures<
2013.03.07 20:45:23 5: Cmd: >attr FrameRSS size 960x690<
2013.03.07 20:45:23 5: Cmd: >attr FrameRSS tmin 1<
2013.03.07 20:45:23 1: configfile: WEBphone: attribute smallscreen deprecated, converted to stylesheetPrefix
2013.03.07 20:45:23 5: Interface "interface": readings "", getters "", setters ""
2013.03.07 20:45:23 5: Interface "switch": readings "onoff", getters "onoff", setters ""
2013.03.07 20:45:23 5: Interface "switch_active": readings "onoff", getters "onoff", setters ""
2013.03.07 20:45:23 5: Interface "switch_passive": readings "onoff", getters "onoff", setters "on:off"
2013.03.07 20:45:23 5: Interface "dimmer": readings "onoff:level", getters "onoff:level", setters "on:off:dimto:dimup:dimdown"
2013.03.07 20:45:23 5: Interface "temperature": readings "temperature", getters "temperature", setters ""
2013.03.07 20:45:23 5: Interface "humidity": readings "humidity", getters "humidity", setters ""
2013.03.07 20:45:23 5: Interface "wind": readings "wind", getters "wind", setters ""
2013.03.07 20:45:23 5: Interface "power": readings "power:maxPower:energy", getters "power:maxPower:energy", setters ""
2013.03.07 20:45:23 5: Triggering global (1 changes)
2013.03.07 20:45:23 5: Notify loop for global INITIALIZED
2013.03.07 20:45:23 0: Server started with 4 defined entities (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2852 2013-03-04 19:58:34Z rudolfkoenig $, pid 1971)
2013.03.07 20:45:32 4: Connection accepted from FHEMWEB:192.168.178.36:49285
2013.03.07 20:45:32 4: Connection accepted from FHEMWEB:192.168.178.36:49286
2013.03.07 20:45:32 5: Loading ./FHEM/98_SVG.pm
2013.03.07 20:45:32 4: HTTP FHEMWEB:192.168.178.36:49286 GET /fhem/rss/FrameRSS.jpg
--

Fhem auf Cubietruck mit Debian Wheezy und Homematic und 1-Wire

Dr. Boris Neubert

Zitat von: Alexander Bauer schrieb am Do, 07 März 2013 20:51Hallo Boris,

danke für die Tips.

Danke für die ausführlichen Logs.

Ich sehe noch nicht, woran es bei Dir liegen könnte. Ich poste am Wochenende mal eine Version von 02_RSS.pm mit ganz vielen detaillierten Debug-Meldungen. Wenn Du diese einsetzt, kommen wir der Ursache vielleicht auf die Schliche.

Noch zwei Fragen:
- Die Hintergrundbilder sind nicht in der Größe des Rahmens (andere Pixelbreite/-höhe)?
- Was gibt Dir dpkg -l|grep libgd aus?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Alexander Bauer

Hallo Boris,

anbei die Ausgabe wegen dem der libgd

root@debian:/opt/fhem/FHEM# dpkg -l|grep libgd
ii  libgd-gd2-perl                         1:2.39-2+b1                  Perl module wrapper for libgd - gd2 variant
ii  libgd-graph-perl                       1.44-3                       Graph Plotting Module for Perl 5
ii  libgd-text-perl                        0.86-5                       Text utilities for use with GD
ii  libgd-tools                            2.0.36~rc1~dfsg-5            GD command line tools and example code
ii  libgd2-xpm                             2.0.36~rc1~dfsg-5            GD Graphics Library version 2
ii  libgdbm3                               1.8.3-9                      GNU dbm database routines (runtime version)


Daran lag es aber nicht. Die Ursache sind die Bilder bzw. das der Pfad nicht existierte. Der vorherigen Version war das wohl egal,
hab wohl beim umzug der fhem Umgebung die Hintergrundbilder nicht mitgenommen. Nun liegen die Bilder innerhalb von opt/fhem und dann
passiert das nimmer.

Vielen Dank für die Hilfe sowie den Einsatz für fhem.
--

Fhem auf Cubietruck mit Debian Wheezy und Homematic und 1-Wire

Dr. Boris Neubert

Zitat von: Alexander Bauer schrieb am Do, 07 März 2013 22:13Daran lag es aber nicht. Die Ursache sind die Bilder bzw. das der Pfad nicht existierte. Der vorherigen Version war das wohl egal,
hab wohl beim umzug der fhem Umgebung die Hintergrundbilder nicht mitgenommen. Nun liegen die Bilder innerhalb von opt/fhem und dann
passiert das nimmer.

Danke fürs rechtzeitige Bescheidsagen. Ich schaue mir dennoch mal an, ob ich nichtexistente Pfade abfangen soll.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

nur mal so nebenbei angemerkt: Seit 5.4 sorgt die 02_RSS.pm auch bei mir grundsätzlich dafür, beim Aufruf des RSS-Feeds den gesamten FHEM Server zum Absturz zu bringen. Nach jedem Update (auch gestern wieder) muss ich diese Datei durch eine Version aus 5.3 ersetzen, die völlig problemlos funktioniert. Einen Zusammenhang mit Hintergrundbildern konnte ich nicht feststellen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Alexander Bauer

Hallo,

auf welche Version gehts Du zurück?

Zum Ausschließen eines Moduls vom Update gibt es laut Command.ref den
folgenden Befehl

exclude_from_update
Contains a space separated list of file which will be excluded by an update. This Attribute is used by the update command.
Example:

    attr global exclude_from_update 21_OWTEMP.pm temp4hum4.gplot FS20.on.png FS20.off.png

Ciao

PS PM ist ausgeschaltet
--

Fhem auf Cubietruck mit Debian Wheezy und Homematic und 1-Wire

betateilchen

Danke für den Tipp mit dem exclude - ich hatte das bisher mit chown gelöst, damit fhem die Dateien beim Update einfach nicht mehr überschreiben darf :)

Welche Version bei mir genau funktioniert, muss ich nachschauen, wenn ich wieder zu Hause bin, das wird aber erst Sonntagabend oder Montagmorgen sein.

Offtopic: Wen es interessiert: Ich habe meine 02_RSS.pm um eine Funktion zum Linienzeichnen ergänzt und das in Codeschnipsel gepostet.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Zitat von: betateilchen schrieb am Do, 13 Juni 2013 11:25nur mal so nebenbei angemerkt: Seit 5.4 sorgt die 02_RSS.pm auch bei mir grundsätzlich dafür, beim Aufruf des RSS-Feeds den gesamten FHEM Server zum Absturz zu bringen. Nach jedem Update (auch gestern wieder) muss ich diese Datei durch eine Version aus 5.3 ersetzen, die völlig problemlos funktioniert. Einen Zusammenhang mit Hintergrundbildern konnte ich nicht feststellen.

nur mal so nebenbei gefragt: welche Revision hat die bei Dir funktionierende Version von 02_RSS.pm (siehe Kopf der Datei:

# $Id: 02_RSS.pm 2793 2013-02-24 08:47:30Z borisneubert $

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

nur mal so nebenbei geantwortet:

Zitat von: betateilchen schrieb am Fr, 14 Juni 2013 09:26Welche Version bei mir genau funktioniert, muss ich nachschauen, wenn ich wieder zu Hause bin, das wird aber erst Sonntagabend oder Montagmorgen sein.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

da steht nix...



     1 #
     2 #
     3 # 02_RSS.pm
     4 # written by Dr. Boris Neubert 2012-03-24
     5 # e-mail: omega at online dot de
     6 #
     7 ##############################################
     8 # $Id  $
     9


Wenn ich die aktuelle 02_RSS.pm verwende, passiert folgendes:

# $Id: 02_RSS.pm 2793 2013-02-24 08:47:30Z borisneubert $


Can't call method "colorResolve" on an undefined value at ./FHEM/02_RSS.pm line 213.
Can't call method "jpeg" on an undefined value at ./FHEM/02_RSS.pm line 450.


Und hier noch meine RSS-Definition inkl. Layout:

Internals:
   DEF        jpg rasp-fhem /opt/fhem_add/rss_layout
   NAME       FHEMRSS
   NR         69
   STATE      FHEMRSS
   TYPE       RSS
   Fhem:
     filename   /opt/fhem_add/rss_layout
     hostname   rasp-fhem
     layout     font /usr/share/fonts/truetype/msttcorefonts/arial.ttf

pt 24
rgb ffffff
date  30 50
time 700 50


     style      jpg
Attributes:
   room       97_RSS
   size       800x600


Diese 5 Zeilen in der Layout Datei reichen bereits, um FHEM komplett zum Absturz zu bringen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Dr. Boris Neubert schrieb am Fr, 14 Juni 2013 21:09nur mal so nebenbei gefragt: welche Revision hat die bei Dir funktionierende Version von 02_RSS.pm (siehe Kopf der Datei:

Hallo Boris,

wie schon geschrieben, in der von mir verwendeten 02_RSS.pm steht keine ID drin.

Ich habe jetzt mal anhand des SVN verglichen und die Dateiversion, die bei mir problemlos läuft, ist die 02_RSS.pm (ohne ID) aus FHEM 5.3 Ursprünglich hatte ich für einen ersten Test das 5.3 Debian Paket runtergeladen und nach dem Produktivstart hier mit 5.4 die Datei aus dem glücklicherweise noch vorhandenen "alten" Paket verwendet, da die 5.4 Version von 02_RSS nicht mehr funktionierte.

Viele Grüße
Udo


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Alexander Bauer

Hallo Betateilchen,

Deine Layout Datei sieht so aus ?

font /usr/share/fonts/truetype/msttcorefonts/arial.ttf

pt 24
rgb ffffff
date  30 50
time 700 50


Ich habe gleiches in der Layout Datei (und noch mehr) und mit obiger fhem.cfg funktioniert die aktuelle Version.
--

Fhem auf Cubietruck mit Debian Wheezy und Homematic und 1-Wire

betateilchen

Das Layout sieht so aus, ja.

Es ist aber nicht das "wirkliche" Layout (da steht viel mehr drin) sondern ein möglichst einfaches Test-Layout für die Fehlersuche, das bei mir mit der aktuellen 02_RSS.pm eben NICHT funktioniert, wohl aber mit der alten. (und mit der alten Version funktioniert auch das komplette Layout völlig problemlos)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Zitat von: betateilchen schrieb am Mo, 17 Juni 2013 13:32Das Layout sieht so aus, ja.

Es ist aber nicht das "wirkliche" Layout (da steht viel mehr drin) sondern ein möglichst einfaches Test-Layout für die Fehlersuche, das bei mir mit der aktuellen 02_RSS.pm eben NICHT funktioniert, wohl aber mit der alten. (und mit der alten Version funktioniert auch das komplette Layout völlig problemlos)

Ich vermute, daß es am fehlenden Hintergrundbild liegt. Kannst Du bitte mal mit Bild versuchen?

Danke
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Guten Abend,

das Hintergrundbild macht keinen Unterschied:


Can't call method "colorResolve" on an undefined value at ./FHEM/02_RSS.pm line 213.
Can't call method "jpeg" on an undefined value at ./FHEM/02_RSS.pm line 450.
Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 116.


Lediglich die Zeile mit dem Blocking ist hinzugekommen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Zitat von: betateilchen schrieb am Mo, 17 Juni 2013 23:08Guten Abend,

das Hintergrundbild macht keinen Unterschied:


Can't call method "colorResolve" on an undefined value at ./FHEM/02_RSS.pm line 213.
Can't call method "jpeg" on an undefined value at ./FHEM/02_RSS.pm line 450.
Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 116.


Lediglich die Zeile mit dem Blocking ist hinzugekommen.

Danke für die Info. Ich schaue es mir demnnächst an.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Hallo Boris,

danke für Deine Unterstützung.

Mach Dir keinen Streß deswegen, denn ich sag mal so: ich verwende einfach die alte Version weiter, die tut alles, so wie ich es mir vorstelle und mit der kann ich sogar meine heißgeliebten Linien zeichnen :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Hallo Boris,

ich glaube, Du hast einfach die Sprungmarke SKIPBG an die falsche Stelle gesetzt, deshalb existiert bei nicht definiertem Background gar kein GD-Objekt, in welches das Layout geschrieben werden und das dann zurückgeliefert werden kann.

Durch geschicktes Umstellen im Code läuft das Modul jetzt bei mir ohne Backgrouddefinition, ich habe aber noch nicht getestet, ob es auch mit BG noch funktioniert. Vielleicht befasse ich mich heute abend noch einmal damit.

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Ich habe mal ein diff erstellt (da ist auch meine Lieblingsfunktion Linienzeichnen schon mit drin) mit der Bitte um wohlwollende Prüfung :)

Viele Grüße
Udo

Linienzeichnen: Link
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

so... Feierabend... endlich zu Hause und Zeit zum Testen.

Zu testen sind m.E. Fälle:

1. Attribut bg nicht definiert => getestet, funktioniert nun (hat vorher bei mir zum Absturz von fhem geführt)
2. Attribut bg definiert, aber Verzeichnis nicht existent => getestet, funktioniert
3. Attribut bg definiert, Verzeichnis existent, aber leer => getestet, funktioniert
4. Attribut bg definiert, Verzeichnis existent, enthält Hintergrundbild in passender Größe (kein resize notwendig) => getestet, funktioniert
5. Attribut bg definiert, Verzeichnis existent, enthält Hintergrundbild in anderer Größe (resize notwendig) => getestet, funktioniert


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Zitat von: betateilchen schrieb am Mo, 29 Juli 2013 19:08Zu testen sind m.E. Fälle:

Danke! Ich liebe systematisch getestete Patches!

Gepatcht, geprüft, dokumentiert und eingecheckt. Morgen per Update verfügbar.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Hallo Boris,

nix zu danken, war ja auch in meinem eigenen Interesse :)

Was mir in dem Modul noch sehr gut gefallen würde: wenn man das "rgb" evaluieren könnte, sodass die Farbe für das nächste item per { irgendwelcheAbhängigkeiten } dynamisch festgelegt werden kann.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Zitat von: betateilchen schrieb am Mo, 29 Juli 2013 20:32Hallo Boris,

nix zu danken, war ja auch in meinem eigenen Interesse :)

Was mir in dem Modul noch sehr gut gefallen würde: wenn man das "rgb" evaluieren könnte, sodass die Farbe für das nächste item per { irgendwelcheAbhängigkeiten } dynamisch festgelegt werden kann.

Ungetestet: versuche doch  bitte mal in
          if($cmd eq "rgb") {
            $params{rgb}= $def;
          }
das $def durch AnalyzePerlCommand(undef, $def)
zu ersetzen.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Hallo Boris,

das funktioniert grundsätzlich, ist aber nur bedingt abwärtskompatibel,


das funktioniert alles korrekt:

rgb { return "7F7F7F"; } # grau
rgb { "00FF00" } # grün
rgb "00FFFF" # türkis

aber das funktioniert nicht mehr:

rgb ffffff # weiss



Ich habe das bei mir jetzt mal so eingebaut und die Layouts geändert. Mit den zusätzlichen Anführungszeichen kann ich leben :)
Eine tatsächliche Evaluierung mache ich morgen. Aber grundsätzlich gehe ich davon aus, dass es so funktioniert.

Viele Grüße
Udo

-------------------------------

edit: es funktioniert :)

rgb { if(ReadingsVal("out_Balkon", "temperature", "n/a") < 23.7) {"00FF00"} else {"FF0000"} }

(http://up.picr.de/15339474ow.png)

(http://up.picr.de/15339475gc.png)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

So funktioniert es auch abwärtskompatibel:


          if($cmd eq "rgb") {
            $def= "\"$def\"" if(length($def) == 6 && $def =~ /[[:xdigit:]]{6}/);
            $params{rgb}= AnalyzePerlCommand(undef, $def);


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Hallo Boris,

bin gerade auf ein "kleines" Problem in der RSS-Generierung gestoßen.

Folgende Einträge in der Layout-Datei


text 220 260 {if(ReadingsVal("gds","a_valid","")){"gültig von: ".ReadingsVal("gds","a_onset","?")." bis: ".ReadingsVal("gds","a_expires","?")}}
text 220 300 { "gültig von: bla" }


liefern diese Ausgabe:


(siehe Anhang / see attachement)


Wird ein Text mit Umlauten "direkt" übergeben, wird der Text ("gültig von: bla") absolut korrekt im RSS dargestellt.
Wird der Text über eine Perl-Evaluierung zurückgeliefert, werden Umlaute falsch dargestellt.

Wen oder was kann man dafür verantwortlich machen?

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Hallo Udo,

Zitat von: betateilchen schrieb am So, 25 August 2013 21:44Folgende Einträge in der Layout-Datei


text 220 260 {if(ReadingsVal("gds","a_valid","")){"gültig von: ".ReadingsVal("gds","a_onset","?")." bis: ".ReadingsVal("gds","a_expires","?")}}
text 220 300 { "gültig von: bla" }


Wird ein Text mit Umlauten "direkt" übergeben, wird der Text ("gültig von: bla") absolut korrekt im RSS dargestellt.
Wird der Text über eine Perl-Evaluierung zurückgeliefert, werden Umlaute falsch dargestellt.

In beiden Fällen wird alles ab dem vierten Token durch AnalyzePerlCommand gefüttert (siehe fhem.pl), was im wesentlichen eval darauf losläßt und das Ergebnis oder die Fehlermeldung zurückliefert. Ich würde an Deiner Stelle in fhem.pl mit dem Debugging ansetzen, zunächst aber prüfen, ob nicht einfach nur die ü in derselben Datei unterschiedlich kodiert sind. Kann zwar eigentlich nicht sein, aber wer weiß...

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

CQuadrat

Gibt es dazu einen Workaround?

Das Problem scheint noch zu bestehen.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

CQuadrat

Habe einen Workaround gefunden:


text 5 60 { my $text=ReadingsVal('Wetterdienst','a_headline','Keine Warnung'); $text = decode('utf-8',$text); return $text }


Dann werden die Umlaute korrekt angezeigt.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

betateilchen

Vom 26.08.2013 bis 18.12.2014 ist eine sehr lange Zeit.

Ich denke nicht, dass das Problem mit den Umlauten tatsächlich immer noch besteht. Bei mir sind jedenfalls schon sehr lange alle Umlaute korrekt dargestellt, sonst wäre dieser Thread nicht so lange in der Versenkung verschwunden.

Die Konvertierung von UTF8 ist schon lange (nicht nur aufgrund der aufgetretenen Problematik in RSS) Bestandteil von fhem und steht mit der Funktion utf8ToLatin1() in der fhem.pl zur Verfügung:

text .50 425 { utf8ToLatin1(ReadingsVal("gds","a_headline","")) }

Das wurde meines Wissens auch schon an anderer Stelle im Forum so vorgeschlagen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CQuadrat

Ohne Workaround ist das bei mir noch so.

Update war gestern.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

betateilchen

Nochmal: ich kann mir nicht vorstellen, dass Dein Problem noch besteht, wenn Du die Konvertierung mit ut8ToLatin1() machst, so wie ich das beschrieben habe.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!