Hi!
Ich brauchte für mich die Möglichkeit, aus Werten, die mir das Backend liefert,
andere Werte zu machen um sie anzeigen zu können.
In meinem Fall sind das die Stufen der Lüftungsanlage, die ich per Analogaktor steuere.
Senden muss ich Werte zwischen 0 und 255 und die kommen auch als Status vom Aktor zurück.
Anzeigen wollte ich aber "Stufe 1 bis 8". Ausrechnen ging nicht, so dass ich mir ein
klitzekleines Widget gebaut habe, das mir das abnimmt.
Ich hoffe, so etwas gibt es noch nicht und dass jemand ausser mir das auch
benötigen kann.
Das Widget benötigt 4 Parameter.
1. eine eindeutige ID
2. ein einzelnes Item / GAD
3. ein Eingangswerte Array
4. ein Ausgangswerte Array
Eingangswerte und Ausgangswerte Array müssen die gleiche Anzahl Zellen beinhalten.
Das Widget fragt die GAD nach einem Wert ab, geht das Eingangswerte Array durch und zeigt,
sobald der Returnwert der GAD gefunden wird, das entsprechende Feld aus dem Ausgangswerte
Array an.
Beispiel:
Eingangswerte: 12,45,72,81,86
Ausgangswerte: A,B,C,D,E
Wert der GAD: 72
ausgegeben wird: C
Das Widget:
Funktion für die "visu.js"
Einbau:
Bei Gefallen bitte in das nächste Release mit aufnehmen.
Bye
Rhaegar
Ich brauchte für mich die Möglichkeit, aus Werten, die mir das Backend liefert,
andere Werte zu machen um sie anzeigen zu können.
In meinem Fall sind das die Stufen der Lüftungsanlage, die ich per Analogaktor steuere.
Senden muss ich Werte zwischen 0 und 255 und die kommen auch als Status vom Aktor zurück.
Anzeigen wollte ich aber "Stufe 1 bis 8". Ausrechnen ging nicht, so dass ich mir ein
klitzekleines Widget gebaut habe, das mir das abnimmt.
Ich hoffe, so etwas gibt es noch nicht und dass jemand ausser mir das auch
benötigen kann.
Das Widget benötigt 4 Parameter.
1. eine eindeutige ID
2. ein einzelnes Item / GAD
3. ein Eingangswerte Array
4. ein Ausgangswerte Array
Eingangswerte und Ausgangswerte Array müssen die gleiche Anzahl Zellen beinhalten.
Das Widget fragt die GAD nach einem Wert ab, geht das Eingangswerte Array durch und zeigt,
sobald der Returnwert der GAD gefunden wird, das entsprechende Feld aus dem Ausgangswerte
Array an.
Beispiel:
Eingangswerte: 12,45,72,81,86
Ausgangswerte: A,B,C,D,E
Wert der GAD: 72
ausgegeben wird: C
Das Widget:
Code:
/** * displays a value in dependence of a other value * * @param unique id for this widget * @param gad/item * @param array of input values * @param array of output values * * @see misc/fundamentals#Array-Form * @author Raik Alber */ {% macro showvalue(id, gad, valuein, valueout) %} <span id="{{ uid(page, id) }}" data-item="{{ gad }}" class="text" data-widget="basic.showvalue" data-valuein="{{ implode(valuein) }}" data-valueout="{{ implode(valueout) }}">---</span> {% endmacro %}
Code:
// ----- basic.showvalue ---------------------------------------------------------- $(document).delegate('[data-widget="basic.showvalue"]', { 'update': function (event, response) { var valuein = $(this).attr('data-valuein').split(','); var valueout = $(this).attr('data-valueout').split(','); var toDisplay = null; for ( var counter = 0; counter < valuein.length; counter++) { if (valuein[counter] == response[0]) { toDisplay = valueout[counter]; } } $("#" + this.id).html(toDisplay); } });
Code:
{% import "widgets/widget_showvalue.html" as import %} Aktuelle Stufe {{ import.showvalue('luestuf', 'hwr.lueftung.stufe_status', ['51','77','102','128','153','179',204,'250'],['1','2','3','4','5','6','7','8'] ) }}
Bye
Rhaegar