Fehler in 02_RSS

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

Vorheriges Thema - Nächstes Thema

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