FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Hofi15 am 11 November 2016, 17:42:16

Titel: Enumeraton für state
Beitrag von: Hofi15 am 11 November 2016, 17:42:16
Hallo,

Ich habe einen Anlagen Status in Form von einer Zahl im State stehen. Nun würde ich gerne den Status in einen Text verwandel. Soweit ich weiß nennt man das enumeration.

Soll heissen 0=Bereit 1=Störung 3=Stop 4=....

Hat jemand eine Idee wie ich das lösen kann?
Danke schon mal für eure Hilfe.
Titel: Antw:Enumeraton für state
Beitrag von: justme1968 am 11 November 2016, 17:44:23
das kommt darauf an wo du das anzeigen willst.

schau dir stateFormat an, oder wenn es ein reading sein soll userReadings.

gruss
  andre
Titel: Antw:Enumeraton für state
Beitrag von: Hofi15 am 11 November 2016, 17:50:54
Danke für die rasche Antwort.
Wie würde das im Stateformat geschrieben werden? Attr Name Stateformat 0:Bereit 1:stoerung usw ?
Titel: Antw:Enumeraton für state
Beitrag von: justme1968 am 11 November 2016, 17:56:12
nein. dazu brauchst du etwas perl code.

aber wenn du namen verwendest die es nicht als icon gibt kannst du es genau so 0:Bereit 1:stoerung ... in devStateIcon eintragen.
Titel: Antw:Enumeraton für state
Beitrag von: Hofi15 am 11 November 2016, 19:04:52
Hallo,

Leider Funktioniert das mit DevStateIcon nicht. Was das stateFormat anbelang so komme ich leider nicht weiter und mit userReading auch nicht.

gibt es nicht etwas wie folgendes?
{sprintf(enum 0=Bereit 1=Störung 3=Stop ,ReadingsVal("DeviceName","state",0))}
Titel: Antw:Enumeraton für state
Beitrag von: Hofi15 am 11 November 2016, 19:20:19
Hallo,

Problem Vorerst gelöst. es funktioniert mit EventMap

attr DevName eventMap 0:Bereit 1:Stoerung 2:.....

Dennoch Danke für die Hilfe und vielleicht hat doch noch jemand eine Idee Bezüglich Enumeration.
Titel: Antw:Enumeraton für state
Beitrag von: justme1968 am 11 November 2016, 19:47:00
es kann sein das das dich das verhalten von devStateIcon bei unbekannten icons geändert hat.

die stateFormat variante würde etwa so aussehen:attr enum stateFormat {my $map={ 0=>'Bereit', 1=>'Stoerung', };; return $map->{ReadingsVal($name,'state','unknown')}}wobei es besser ist den code in 99_myUtils.pm auszulagern und aus stateFormat aufzurufen.

gruss
  andre