Wert auslesen und "übersetzt" in Dummy-Device speichern

Begonnen von Grml, 10 November 2016, 10:50:15

Vorheriges Thema - Nächstes Thema

Grml

Hi zusammen,
ich bin auch noch recht am Anfang und habe noch keine Idee wie ich Folgendes umsetzen kann...

Ich lese ein bestimmtes Attribut eines Devices aus (das Attribut kann 3 verschiedene Stati haben) und gebe das über Tablet UI aus. So weit, so gut.
Nun kam ich auf die Idee, den Wert der auf Englisch ausgegeben wird manuell zu übersetzen und in ein Dummy-Device zu speichern und dann dessen Wert in FTUI auszugeben.

Also quasi:
Wenn DeviceAttribut1 = Car dann DummyAttribut1 = Auto
Wenn DeviceAttribut1 = Bike dann DummyAttribut1 = Fahrrad
Wenn DeviceAttribut1 = Plane dann DummyAttribut1 = Flugzeug

Wie müsste ich denn sowas angehen?

kumue

ich glaube, du suchst so etwas wie eventMap

attr <DEINE_DEVICE> eventMap Car:Auto Bike:Fahrrad Plane:Flugzeug

schau mal in die commandref zu eventMap

Grml

#2
Danke, das klingt im Prinzip eigentlich gut. Aber wird hier dann nicht der Original-Inhalt des Attributs überschrieben?
Mein Gefühl sagt mir, dass das evtl. ungeschickt wäre, weil andere Devices auf den Originalwert zugreifen/angewiesen sind.

Deshalb meine Idee ein Dummy-Device zu füttern, weil es "nur" um die Ausgabe im FTUI geht (Stichwort "WAF" ;-)). Alles andere, "interne", soll weiterhin mit dem Originalwert arbeiten können.

kumue

fällt mir noch readingsProxy ein und dort das eventMap setzen..

Ellert

Du könntest in FHEM auch mit userReadings und Perl-Code arbeiten.
In die Eingabezeile
attr <Device> userReadings auf_deutsch {}

und im DEF-Editor bearbeiten

{
my $val = Value($name);
$val =~ s/Car/Auto/;
$val =~ s/Bike/Rad/;
return $val
}

Grml