FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: TWART016 am 17 November 2017, 21:48:21

Titel: mehrere Werte in stateFormat
Beitrag von: TWART016 am 17 November 2017, 21:48:21
Hallo,

ich habe derzeit eine Abfrage im stateFormat. Jetzt würde ich noch ein $state, sowie einen Text "Status" hinzfügen. Wie muss da die Syntax aussehen?
Ziel: "Status:" {Abfrage} $state

{  if (ReadingsVal($name,'playStatus','') eq 'playing')
  {
  ReadingsVal($name,'playStatus','')
  }
  else
  {
    "paused"
  }}



Gruß
TWART016
Titel: Antw:mehrere Werte in stateFormat
Beitrag von: Wetterhexe am 18 November 2017, 09:39:13
Du brauchst die Einzelteile nur mit Punkten zusammenhängen. Fixtexte kommen in Hochkommas:

{"Helligkeit: " . ReadingsVal("VZbewegungsmelder","brightness",0) . ", state:" . ReadingsVal("VZbewegungsmelder","state","???")}
Titel: Antw:mehrere Werte in stateFormat
Beitrag von: TWART016 am 18 November 2017, 11:25:35
Das funktioniert schon mal
{"Status: " . ReadingsVal("$name","state",0)}
Kann ich hier auch anstatt des Textes von state das Icon anzeigen lassen?

Wie muss ich die IF Abfrage einbauen? Wenn ich das mit dem Punkt mache, kommt beim speichern der Fehler.
syntax error at (eval 317134) line 1, near ". if"
Titel: Antw:mehrere Werte in stateFormat
Beitrag von: Wetterhexe am 18 November 2017, 12:04:43
ZitatKann ich hier auch anstatt des Textes von state das Icon anzeigen lassen?
ich glaube nicht. icons gehen nur im icon bzw. devStateIcon

ZitatWie muss ich die IF Abfrage einbauen? Wenn ich das mit dem Punkt mache, kommt beim speichern der Fehler.
du mußt den Text innerhalb der if/else Zweige bauen, nicht umgekehrt
Titel: Antw:mehrere Werte in stateFormat
Beitrag von: TWART016 am 18 November 2017, 12:32:18
Zitat von: Wetterhexe am 18 November 2017, 12:04:43
ich glaube nicht. icons gehen nur im icon bzw. devStateIcon
Außerhalb der Perl Funktion wird das Icon mit state angezeigt.

Zitat von: Wetterhexe am 18 November 2017, 12:04:43
du mußt den Text innerhalb der if/else Zweige bauen, nicht umgekehrt
{if (ReadingsVal($name,'playStatus','') eq 'playing')
  {
     "      " ."Status: ".ReadingsVal($name,'playStatus','') ."       " .ReadingsVal("$name","state",0) ."       "
  }
  else
  {
    "      " ."Status: "."paused"."       " .ReadingsVal("$name","state",0) ."       "
  }}

Funktioniert. Kann man anstatt der vielen Leerzeichen mit    einen Tab machen oder die Werte anders formatieren?