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