FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: micomat am 20 September 2014, 09:05:40

Titel: readingsVal mit myUtils weiter bearbeiten
Beitrag von: micomat am 20 September 2014, 09:05:40
Hallo,

fuer eine Anzeige auf dem in "CodeSchnipsel" gezeigten KindleDisplay hole ich mir div. readingsVal.
Leider stehen die Readings nun auf englisch dort. Kann ich die Readings irgendwie per sprintf oder was auch immer weiter bearbeiten?

So siet die Abfrage derzeit aus:
ReadingsVal("Mythz","pOpMode","0")

Zurueckgegeben wird hier jetzt beispielsweise "automatic" oder "setback" was ich gerne in "Automatik" oder "Absenkbetrieb" aendern wuerde.

Bin dankbar fuer Tips :)

Gruß
Markus
Titel: Antw:readingsVal mit sprintf weiter bearbeiten
Beitrag von: betateilchen am 20 September 2014, 10:22:58
schonmal mit eventMap probiert?

Ansonsten musst Du die Konvertierung in eine Funktion in deiner 99_myUtils packen und für die Anzeige die Rückgabewerte dieser Funktion verwenden.
Titel: Antw:readingsVal mit sprintf weiter bearbeiten
Beitrag von: micomat am 21 September 2014, 20:22:11
okay, ich hab jetzt meine erste myutils mehr, oder eher weniger erfolgreich erstellt... zwei fragen habe ich:

zum einen kommt beim speichern immer folgende meldung:
Undefined subroutine &main::myUtils_valuechanger_Initialize called at fhem.pl line 1986.

zum anderen: wie komme ich an status1 wieder ran?
ich brauche das ganze in einem "attr", aber mit
attr infodisplay_sz Expr18 { valuechanger ($status1()) }
funktionierts nicht...

package main;
use strict;
use warnings;
use POSIX;

sub
valuechanger
{

  my $status1 = ReadingsVal("HomeStatusSwitch","state","0");
  my $status2 = ReadingsVal("Mythz","pOpMode","0");

  $status1 =~ s/on/Zuhause/;
  $status1 =~ s/off/Abwesend/;
  $status2 =~ s/automatic/Automatik/;
  $status2 =~ s/setback/Absenkung/;
}

1;



danke,
markus
Titel: Antw:readingsVal mit myUtils weiter bearbeiten
Beitrag von: Mario67 am 22 September 2014, 14:54:12
1. Nach dem Einfügen/Editieren der neuen Routine reload 99_myUtils.pm (http://fhem.de/commandref.html#reload (http://fhem.de/commandref.html#reload)) ausführen.

2. Die Werte mit return aus der Funktion zurückgeben (ggf. als Liste; siehe z.B. http://perldoc.perl.org/perlsub.html (http://perldoc.perl.org/perlsub.html))

Gruß,
Mario