Hallo,
zur Information.
Meine KNX-Steuerung läuft auf einem EIBPC. Über EIBStudio ist eine Oberfläche gestaltet. Für meine Heizung gebe ich die Temperaturen der Räume und die Schaltzeiten (Komfort, Abwesend und Nacht) mit Start- und Endezeiten vor. Die Steurung und die Remanentsicherung erfolgt im EibPc.
Die Darstellung der Temperaturverläufe ict hie leider mangelhaft, deshalb habe ich Seiten mit Plots in smartvisu erstellt.
Heranch auch die veränderbaren Vorbabetemperaturen der einzelnen Räume ergänzt. Jetzt wollte ich auch noch die Schaltzeiten der einzelnen Räume ergänzen, dazu habe ich ein Makro(Widget) gebastelt.
Leider scheitere ich hier und brauche Hilfe.
Bild 1 zeigt in etwas das Wuschaussehen der Zeile an (+/- Button für Stunde und Minute, dazwichen die Anzege der gewünchten Zeit)
Bild2 zeigt meinen "Erfolg". Leider werden Zeitanzeige und die Zeiteingabe angezeigt, eine Redurierung auf ein Zeitfeld ist mir nicht gelungen.
Schaltfunktionen , KNX-Übergabge und Rückgabe über KNX/EIBPC+remanentspeicher klappen.
Wo liegt mein Denkfehler im Widget?
Gibt es eine Lösung zur Zeiteingabe?
Benötigt werden hh und mm als Integer(u08) zur Übergabe.
Sicherlich kann man die Zeitanzeige noch optimiere( 10:07 statt 10:7) oder Logikfunctioen einfügen( z.B 10:59 + 1Min nicht 10:60 sondern 11:00 )
Aber Schritt für Schritt, sollte es schon etwas geben, bitte sagt mir wie und wo!
Für jeden Hinweis bin ich dankbar!
Grüße
Wolfgang
Die Conf-Datei
Mein Widget-Versuch
zur Information.
Meine KNX-Steuerung läuft auf einem EIBPC. Über EIBStudio ist eine Oberfläche gestaltet. Für meine Heizung gebe ich die Temperaturen der Räume und die Schaltzeiten (Komfort, Abwesend und Nacht) mit Start- und Endezeiten vor. Die Steurung und die Remanentsicherung erfolgt im EibPc.
Die Darstellung der Temperaturverläufe ict hie leider mangelhaft, deshalb habe ich Seiten mit Plots in smartvisu erstellt.
Heranch auch die veränderbaren Vorbabetemperaturen der einzelnen Räume ergänzt. Jetzt wollte ich auch noch die Schaltzeiten der einzelnen Räume ergänzen, dazu habe ich ein Makro(Widget) gebastelt.
Leider scheitere ich hier und brauche Hilfe.
Bild 1 zeigt in etwas das Wuschaussehen der Zeile an (+/- Button für Stunde und Minute, dazwichen die Anzege der gewünchten Zeit)
Bild2 zeigt meinen "Erfolg". Leider werden Zeitanzeige und die Zeiteingabe angezeigt, eine Redurierung auf ein Zeitfeld ist mir nicht gelungen.
Schaltfunktionen , KNX-Übergabge und Rückgabe über KNX/EIBPC+remanentspeicher klappen.
Wo liegt mein Denkfehler im Widget?
Gibt es eine Lösung zur Zeiteingabe?
Benötigt werden hh und mm als Integer(u08) zur Übergabe.
Sicherlich kann man die Zeitanzeige noch optimiere( 10:07 statt 10:7) oder Logikfunctioen einfügen( z.B 10:59 + 1Min nicht 10:60 sondern 11:00 )
Aber Schritt für Schritt, sollte es schon etwas geben, bitte sagt mir wie und wo!
Für jeden Hinweis bin ich dankbar!
Grüße
Wolfgang
Die Conf-Datei
Code:
[[[heizung]]]
name = Temperaturen Bad
[[[[ist]]]]
type = num
sqlite = yes
# sv_widget = {{ device.rtr('item', 'item.name', 'item.ist', 'item.soll', 'item.komfort', 'item.nacht', 'item.frost', 'item.status') }} | {{ plot.period('item-plot', 'item', 'avg') }}
visu_acl = rw
knx_dpt = 9
knx_cache = 4/1/6
[[[[soll]]]]
type = num
visu_acl = rw
sqlite = yes
knx_dpt = 9
knx_cache = 2/1/109
[[[[modus_komfort]]]]
type = bool
visu_acl = rw
knx_dpt = 1
knx_cache = 2/1/113
knx_send =2/1/113
[[[[modus_nacht]]]]
type = bool
visu_acl = rw
knx_dpt = 1
knx_cache = 2/1/114
knx_send = 2/1/114
[[[[modus_frost]]]]
type = bool
visu_acl = rw
knx_dpt = 1
knx_cache = 2/1/115
knx_send = 2/1/115
[[[[stellgroesse]]]]
type = num
visu_acl = rw
sqlite = yes
knx_dpt = 5.001
eval=round(value,2)
knx_cache = 2/1/122
[[[[status]]]]
type = bool
visu_acl = rw
sqlite = yes
knx_dpt = 1
knx_cache = 2/1/47
[[[[basissoll_frost]]]]
type = num
visu_acl = rw
knx_dpt = 9
knx_cache = 2/1/160
knx_send = 2/1/160
[[[[basissoll_komfort]]]]
type = num
visu_acl = rw
knx_dpt = 9
knx_cache = 2/1/163
knx_send = 2/1/163
[[[[basissoll_standby]]]]
type = num
visu_acl = rw
knx_dpt = 9
knx_cache = 2/1/162
knx_send = 2/1/162
[[[[basissoll_nacht]]]]
type = num
visu_acl = rw
knx_dpt = 9
knx_cache = 2/1/161
knx_send = 2/1/161
[[[[stundek1anf]]]]
type = num
enforce_updates = yes
visu_acl = rw
knx_dpt = 5
knx_cache = 2/5/0
knx_send = 2/5/0
[[[[stundek1anfplus]]]]
type = num
visu_acl = rw
enforce_updates = yes
eval = sh.og.bad.heizung.stundek1anf(sh.og.bad.heizung.stundek1anf()+1)
[[[[stundek1anfminus]]]]
type = num
visu_acl = rw
enforce_updates = yes
eval = sh.og.heizung.stundek1anf(sh.og.bad.heizung.stundek1anf()-1)
[[[[minutek1anf]]]]
type = num
enforce_updates = yes
visu_acl = rw
knx_dpt = 5
knx_cache = 2/5/1
knx_send = 2/5/1
[[[[minutek1anfplus]]]]
type = num
visu_acl = rw
enforce_updates = yes
eval = sh.og.bad.heizung.minutek1anf(sh.og.bad.heizung.minutek1anf()+1)
[[[[minutek1anfminus]]]]
type = num
visu_acl = rw
enforce_updates = yes
eval = sh.og.heizung.minutek1anf(sh.og.bad.heizung.minutek1anf()-1)
[[[[stundek1end]]]]
type = num
enforce_updates = yes
visu_acl = rw
knx_dpt = 5
knx_cache = 2/5/2
knx_send = 2/5/2
[[[[stundek1endplus]]]]
type = num
visu_acl = rw
enforce_updates = yes
eval = sh.og.bad.heizung.stundek1end(sh.og.bad.heizung.stundek1end()+1)
[[[[stundek1endminus]]]]
type = num
visu_acl = rw
enforce_updates = yes
eval = sh.og.heizung.stundek1end(sh.og.bad.heizung.stundek1end()-1)
[[[[minutek1end]]]]
type = num
enforce_updates = yes
visu_acl = rw
knx_dpt = 5
knx_cache = 2/5/3
knx_send = 2/5/3
[[[[minutek1endplus]]]]
type = num
visu_acl = rw
enforce_updates = yes
eval = sh.og.bad.heizung.minutek1end(sh.og.bad.heizung.minutek1end()+1)
[[[[minutek1endminus]]]]
type = num
visu_acl = rw
enforce_updates = yes
eval = sh.og.heizung.minutek1end(sh.og.bad.heizung.minutek1end()-1)
Code:
/**
* Small TimeSet (Uhrzeit setzen) widges in /smartvisu wird genommen
*
* @param unique id for this widget
* @param name of the TimeSet
* @param a gad/item for the actual htime
* @param a gad/item for the set htime
* @param a gad/item for the actual mtime
* @param a gad/item for the set mtime
* @param step for plus/minus buttons (optional, default 1.0°)
*/
{% macro uhrzeit(id, txt, gad_actualh, gad_seth, gad_actualm, gad_setm, step) %}
{% import "basic.html" as basic %}
{% set uid = uid(page, id) %}
/** Design */
<div id="{{ uid }}" class="uhrzeit">
<table style="width:100%; text-align: left;">
<tr>
<th width="30%">{% if txt %} {{ txt }} {% endif %}</th>
<td width="8%">
{% if gad_seth %}
{{ basic.button(id~'minush', '', '', 'minus', '', 'micro') }}
{% endif %}
</td>
<td width="8%">
{% if gad_seth %}
{{ basic.button(id~'plush', '', '', 'plus', '', 'micro') }}
{% endif %}
</td>
<td width="6%"><div class="temph">{{ basic.float(id~'actualh', gad_actualh, ' :') }}</div></td>
<td width="10%"><div class="tempm">{{ basic.float(id~'actualm', gad_actualm, 'Uhr' ) }}</div></td>
<td width="8%">
{% if gad_setm %}
{{ basic.button(id~'minusm', '', '', 'minus', '', 'micro') }}
{% endif %}
</td>
<td width="8%">
{% if gad_setm %}
{{ basic.button(id~'plusm', '', '', 'plus', '', 'micro') }}
{% endif %}
</td>
<td width="8%"><div class="temph">{{ basic.float(id~'seth', gad_seth, 'h') }}</div></td>
<td width="8%"><div class="tempm">{{ basic.float(id~'setm', gad_setm, 'm') }}</div></td>
</tr>
</table>
{% if gad_seth %}
/** Events */
<script type="text/javascript">
// plus / minus Stunde
$("#{{ uid~'minush' }}").unbind('click').bind('click', function(){
var temph = (Math.round((parseFloat($("#{{ uid~'seth' }}").html().replace(',','.')) - {{ step|default(0.5) }}) * 10) / 10).toFixed(1);
$("#{{ uid~'seth' }}").html(temph + ' h');
io.write("{{ gad_seth }}", temph);
});
$("#{{ uid~'plush' }}").unbind('click').bind('click', function(){
var temph = (Math.round((parseFloat($("#{{ uid~'seth' }}").html().replace(',','.')) + {{ step|default(0.5) }}) * 10) / 10).toFixed(1);
$("#{{ uid~'seth' }}").html(temph + ' h');
io.write("{{ gad_seth }}", temph);
});
</script>
{% endif %}
{% if gad_seth %}
/** Events */
<script type="text/javascript">
// plus / minus Minute
$("#{{ uid~'minusm' }}").unbind('click').bind('click', function(){
var tempm = (Math.round((parseFloat($("#{{ uid~'setm' }}").html().replace(',','.')) - {{ step|default(0.5) }}) * 10) / 10).toFixed(1);
$("#{{ uid~'setm' }}").html(tempm + ' m');
io.write("{{ gad_setm }}", tempm);
});
$("#{{ uid~'plusm' }}").unbind('click').bind('click', function(){
var tempm = (Math.round((parseFloat($("#{{ uid~'setm' }}").html().replace(',','.')) + {{ step|default(0.5) }}) * 10) / 10).toFixed(1);
$("#{{ uid~'setm' }}").html(tempm + ' m');
io.write("{{ gad_setm }}", tempm);
});
</script>
{% endif %}
</div>


Kommentar