Hallo,
ich versuche aktuell, alle Readings eines Devices dynamisch im FTUI zu laden. Bei dem Gerät handelt es sich um ein HTTPMOD-Gerät, welches von einem Webdienst Aktienkurse abruft. Zurückgeliefert wird dort ein JSON im folgenden Format:
{
"stocks": {
"US0378331005": {
"name": "Apple",
"change_absolute": 3.67,
"change_percent": 2.8086,
"price": 134.34
},
"DE0007100000": {
"name": "Daimler",
"change_absolute": 0.26,
"change_percent": 0.5266,
"price": 49.635
}
}
}
HTTPMOD legt dann dementsprechend Readings nach dem Format stocks_ISIN_key an, was ja auch okay ist. Mein Problem ist jetzt, dass die Menge der zurückgelieferten Aktien variiert, weswegen ich gern ein FTUI-Modul entwickeln würde, was auf Basis aller Readings eine Tabelle baut. Im Widget-Tutorial ( https://wiki.fhem.de/wiki/FTUI_eigene_Widgets_-_Beispiel ) habe ich allerdings nur gesehen, wie ich ein bestimmtes Reading abonnieren kann, nicht wie ich alle abonnieren kann. ".*" hat bei mir leider nicht funktioniert. Gibt es für mein Problem eine Lösung?
Beste Grüße
Yannik
Hi,
zumindest geht das, wenn die Seite neu geladen wird (inoffiziell auch zwischendurch, siehe https://forum.fhem.de/index.php/topic,95801.0.html).
Also in init_attr holst Du Dir aus FHEM alle Readings des Device. Das geht z.B. mit einem entsprechenden jsonlist2-Aufruf. Die Readings packst Du dann in ein Javascript-Array (getArray im coding) und machst dann sowas:
elem.data('get',getArray);
me.addReading(elem,'get');
Die Methode addReading kann mit Arrays umgehen.
Gruß,
Thorsten