Hallo zusamen,
ich lese über HTTPMOD von einer internen Webseite (Weboberfläche meines Access Ppoint) den HTTP-Status Code aus.
Das klappt (dank der Hilfe der Community) auch prima.
Via stateformat hole ich mir den Wert als STATE. Klappt auch soweit.
Der OK Wert von 200 wird unter STATE angezeigt.
Jetzt möchte ich für z.B. Dashboard Anzeige Icons, anstatt des Zahlenwerts anzeigen.
Das müsste aber etwas sein, was sagt:
"Wenn Wert = 200, dann ICON1, wenn Wert nicht gleich 200, dann Icon2"
Denn ausser dem einen positiven Wert 200, der alles ok zeigt, sind alle anderen Werte als "nicht ok" anzusehen.
Mein Ansatz war, dass devStateIcon abhängig vom ausgelesenen Wert (entweder via ReadingsVal oder STATE) zu setzen.
Habe da jetzt schon sehr viel rumprobiert und nichts klappt.
Ich bitte um Hilfe. :)
Weiss jemand, wie ich das löse ?
Unten der Auszug dazu aus meiner fhem.cfg:
define AccessPoint HTTPMOD http://192.168.178.103/index.asp 60
attr AccessPoint userattr reading01Name reading01Regex
attr AccessPoint reading01Name retcode
attr AccessPoint reading01Regex HTTP/1.0 ([\d]+)
attr AccessPoint stateFormat retcode
attr AccessPoint devStateIcon { if(ReadingsVal("AccessPoint","retcode",404) == 200) { 'WLAN_Status.1'} elsif (ReadingsVal("AccessPoint","retcode",404) != 200) { 'WLAN_Status.0'} }
Danke euch schon mal vielmals!
Ich Depp...
Wenn man mal weiss, dass man regex auch direkt nutzen kann, dann klappt es auch recht einfach.
So klappt es jetzt:
attr AccessPoint devStateIcon 200:WLAN_Status.1 \d+:WLAN_Status.0
Bei Wert 200 Icon WLAN_Status_1.
Bei allen anderen Werten einer beliebigen Zahl kommt das Icon WLAN_Status.0
Ich wusste nicht, dass scheinbar die Liste der Icons "durchgearbeitet" wird. Denn eigentlich beinhaltet \d+ ja auch den Wert 200.
Problem gelöst. Juhu.