FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: enno am 25 April 2021, 10:21:16

Titel: [gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: enno am 25 April 2021, 10:21:16
Moin moin,

ich hole mir täglich die RKI Zahlen wie hier beschrieben: https://forum.fhem.de/index.php?topic=113798.0
Die Darstellung für Hannover sieht dann so aus:
defmod RKI_H DOIF ##
attr RKI_H uiTable {package ui_Table;;}\
card ([RKI7:Region_Hannover:col24],"7-Tage-Inzidenz Hannover","air",50,160,120,0,undef,undef,0,130,1,50)


Frage: Kann ich das ganze auch als devStateIcon definieren? Meine Versuche gehen leider schief, da ich keine Idee habe wie ich das mit ReadingsVal kombinieren kann.

attr RKI_H devStateIcon {ui_Table::card(ReadingsVal("RKI7","Region_Hannover",0,"col24"),"7-Tage-Inzidenz Hannover","air",50,160,120,0,undef,undef,0,130,1,50)}

Über Tips würde ich mir freuen.

Gruss
  Enno
Titel: Antw:DOIF Format für ui_Table card im devStateIcon
Beitrag von: Damian am 25 April 2021, 12:52:09
Das geht direkt nicht, da [RKI7:Region_Hannover:col24] nicht einem ReadingsVal entspricht. Die "col"-Syntax initiiert eine Menge Sachen in einem DOIF, um die Daten zu sammeln und für die card-Funktion aufzubereiten. Es wird kein Wert zurückgegeben, sondern eine Referenz auf eine hash-Struktur.

Man kann es aber recht einfach auf indirektem Wege schaffen, card-Funktionalität in einem devStateIcon unterzubringen.

Zur Vorgehensweise am Beispiel der Temperatur eines Aussensensors.

Zu erst wird ein Collector-DOIF gebaut, der die Daten des Sensors sammelt und die Referenz in einem Reading ablegt:

defmod di_collect_data DOIF {\
set_Reading ("temperature",[Aussensensor:temperature:col1],1);;\
## hier könnten noch weitere set_Reading-Befehle folgen für weitere Device-Reading-Kombinationen, die man wo anders per card visualisieren möchte
}


Im jeweiligen Device wird dann nur noch das passende devStateIcon auf das entsprechende Reading des Collectors mit der Referenz definiert:

defmod Aussensensor CUL_WS 5
attr Aussensensor devStateIcon {ui_Table::card(ReadingsVal("di_collect_data","temperature",""),"Außentemperatur","temp_outside",-10,30,undef,undef,"°C",\&ui_Table::temp_hue)}




Titel: Antw:DOIF Format für ui_Table card im devStateIcon
Beitrag von: enno am 25 April 2021, 17:56:52
Moin Damian,

Danke! Hat geklappt:
defmod di_RKI DOIF {set_Reading ("Hannover",[RKI7:Region_Hannover:col24],1);;;;}
attr di_RKI devStateIcon {ui_Table::card(ReadingsVal("di_RKI","Hannover",""),"7-Tage-Inzidenz Hannover","air",50,160,120,0,undef,undef,0,130,1,50);;;;}


So kann ich das Ganze in meinen Floorplan einbauen.

Gruss
  Enno
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: Damian am 25 April 2021, 18:10:03
Schön, ich habe die Idee aufgegriffen und ein Beispiel im DOIF-Device hier gepostet: https://forum.fhem.de/index.php/topic,113798.msg1152222.html#msg1152222
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: enno am 11 Mai 2021, 17:24:57
Moin Damian,

Wenn ich FHEM nach einem Update neu starte, habe ich die Fehlermeldungen im Log:

2021.05.11 17:17:59 1: devStateIcon RKI7: Can't use string ("HASH(0x563ab93d56f8)") as a HASH ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 4534.

Wenn ich das Reading im DOIF lösche und neu anlege ist die Fehlermeldung weg aber auch die Vergangenheitsdaten. Hast du dafür auch noch einen Trick auf Lager?

Gruss
  Enno
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: Damian am 11 Mai 2021, 19:21:56
ja, es gibt da ein Problem. Die Auswertung der gespeicherten Daten muss erst erfolgen, wenn das System hochgefahren ist und die Readings mit den gespeicherten Daten geladen sind, das ist in dieser Konstellation nicht der Fall. Ich muss mir da für diesen Fall noch etwas überlegen.
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: Damian am 11 Mai 2021, 22:24:25
Teste mal hier: https://forum.fhem.de/index.php/topic,121004.msg1155839.html#msg1155839
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: Damian am 12 Mai 2021, 19:54:01
Ich habe die aktuelle Version aus dem Post mit Floorplan getestet. Es funktioniert über uiState, wie erhofft. Die Grafik wird sauber dargestellt und übersteht einen Neustart mit allen Daten, wenn man vor dem Neustart ein save ausgeführt hat.
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: ToKa am 13 Mai 2021, 17:23:44
Hallo Damian,

ich habe das jetzt bei mir mal ausprobiert und das DOIF mit dem devStateIcon nachgebaut, echt cool!

Kann man das auch mit mehreren "cards" machen? Und wenn ja, wie sieht dann die Syntax aus?

VG
Torsten
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: Damian am 13 Mai 2021, 18:32:18
Zitat von: ToKa am 13 Mai 2021, 17:23:44
Hallo Damian,

ich habe das jetzt bei mir mal ausprobiert und das DOIF mit dem devStateIcon nachgebaut, echt cool!

Kann man das auch mit mehreren "cards" machen? Und wenn ja, wie sieht dann die Syntax aus?

VG
Torsten

Mit devStateIcon wirst du keinen Spaß mit cards auf Dauer haben, spätestens nach dem Neustart funktioniert es mit card nicht mehr, du musst die neue Funktionalität über uiState nutzen: https://forum.fhem.de/index.php/topic,121004.0.html

Dort kannst du so viele cards reinpacken wie du willst.
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: ToKa am 13 Mai 2021, 18:50:32
Super, das ist ja noch viel besser.
Titel: Antw:[gelöst] DOIF Format für ui_Table card im devStateIcon
Beitrag von: enno am 17 Mai 2021, 15:05:35
Moin Damian,

habe die neue Version bei mir eingebaut. Funktioniert perfekt. Vielen Dank!

Gruss
  Enno