Ich will euch hier ein paar meiner Hacks für die Autogeneration vorstellen:
1. In der Navigation fehlte mir eine Option um Einträge wie z.B. Temperatur auf der rechten Seite einzublenden:
Dazu habe ich folgendes Modifiziert:
smarthome.py:
smartVISU:
Anzuwenden ist das ganze dann z.B. so:
Als nächstes kommt ein Hack um z.B. Erdgeschoß als Trennlinie (data-role="list-divider") in der Navigation einzufügen.
Da ist der Code für das sv_nav_aside schon mit drin. Und so wendet man das dann an:
was mir noch so fehlt:
Nämlich dass man in einem "Raum" nicht nur Widgets in den Blöcken haben kann sondern nochmal einen Header mit Widgets um Zentralfunktionen abzulegen... und später evtl. dass man noch eine Übersicht z.B. über alle Beleuchtungen, Rolläden, Temperaturen, usw. hat... und dass man noch bei den Blöcken der Widgets eigenschaften festlegen kann, wie z.B. den Blocktype... und dass er immer den Namen als Block-Überschrift nimmt gefällt mir auch nicht... naja, mal schauen...
1. In der Navigation fehlte mir eine Option um Einträge wie z.B. Temperatur auf der rechten Seite einzublenden:
Dazu habe ich folgendes Modifiziert:
smarthome.py:
Code:
diff --git a/plugins/visu/smartvisu.py b/plugins/visu/smartvisu.py old mode 100755 new mode 100644 index d33824a..aac462d --- a/plugins/visu/smartvisu.py +++ b/plugins/visu/smartvisu.py @@ -92,7 +92,11 @@ def pages(smarthome, directory): img = item.conf['sv_img'] else: img = '' - nav_lis += parse_tpl(tpldir + '/navi.html', [('{{ visu_page }}', item.id()), ('{{ visu_name }}', str(item)), ('{{ visu_img }}', img)]) + if 'sv_nav_aside' in item.conf: + nav_aside = item.conf['sv_nav_aside'] + else: + nav_aside = '' + nav_lis += parse_tpl(tpldir + '/navi.html', [('{{ visu_page }}', item.id()), ('{{ visu_name }}', str(item)), ('{{ visu_img }}', img), ('{{ visu_aside }}', nav_aside), ('item.name', str(item)), ("'item", "'" + item.id()) ]) with open("{0}/{1}.html".format(outdir, item.id()), 'w') as f: f.write(r) nav = parse_tpl(tpldir + '/navigation.html', [('{{ visu_navis }}', nav_lis)])
Code:
Index: pages/base/tpl/navi.html =================================================================== --- pages/base/tpl/navi.html (Revision 329) +++ pages/base/tpl/navi.html (Arbeitskopie) @@ -1,6 +1,7 @@ <li data-icon="false"> <a href="index.php?page={{ visu_page }}"> <img class="icon" src="{{ icon0 }}{{ visu_img }}"/><h3>{{ visu_name }}</h3> + <div class="ui-li-aside">{{ visu_aside }}</div> </a> </li>
Code:
[eg] [[flur]] name = Flur sv_page = room sv_img = scene_stairs.png sv_nav_aside = "{{ basic.float('item', 'eg.flur.temperature', '°C') }}"
Code:
diff --git a/plugins/visu/smartvisu.py b/plugins/visu/smartvisu.py old mode 100755 new mode 100644 index d33824a..58f50a5 --- a/plugins/visu/smartvisu.py +++ b/plugins/visu/smartvisu.py @@ -87,14 +87,28 @@ def pages(smarthome, directory): except Exception, e: logger.warning("Could not delete file {0}: {1}".format(fp, e)) for item in smarthome.find_items('sv_page'): - r = room(smarthome, item, tpldir) - if 'sv_img' in item.conf: - img = item.conf['sv_img'] - else: - img = '' - nav_lis += parse_tpl(tpldir + '/navi.html', [('{{ visu_page }}', item.id()), ('{{ visu_name }}', str(item)), ('{{ visu_img }}', img)]) - with open("{0}/{1}.html".format(outdir, item.id()), 'w') as f: - f.write(r) + if item.conf['sv_page'] == 'room': + r = room(smarthome, item, tpldir) + if 'sv_img' in item.conf: + img = item.conf['sv_img'] + else: + img = '' + if 'sv_nav_aside' in item.conf: + if isinstance(item.conf['sv_nav_aside'], list): + nav_aside = ', '.join(item.conf['sv_nav_aside']) + else: + nav_aside = item.conf['sv_nav_aside'] + else: + nav_aside = '' + + nav_lis += parse_tpl(tpldir + '/navi.html', [('{{ visu_page }}', item.id()), ('{{ visu_name }}', str(item)), ('{{ visu_img }}', img), ('{{ visu_aside }}', nav_aside), ('item.name', str(item)), ("'item", "'" + item.id()) ]) + + with open("{0}/{1}.html".format(outdir, item.id()), 'w') as f: + f.write(r) + + elif item.conf['sv_page'] == 'seperator': + nav_lis += '<li data-role="list-divider">' + str(item) + '</li>\n' + nav = parse_tpl(tpldir + '/navigation.html', [('{{ visu_navis }}', nav_lis)]) with open(outdir + '/navigation.html', 'w') as f: f.write(nav)
Code:
[eg] [[eg-sep]] name = Erdgeschoß sv_page = seperator [[flur]] name = Flur sv_page = room sv_img = scene_stairs.png sv_nav_aside = "{{ basic.float('item', 'eg.flur.temperature', '°C') }}"
Nämlich dass man in einem "Raum" nicht nur Widgets in den Blöcken haben kann sondern nochmal einen Header mit Widgets um Zentralfunktionen abzulegen... und später evtl. dass man noch eine Übersicht z.B. über alle Beleuchtungen, Rolläden, Temperaturen, usw. hat... und dass man noch bei den Blöcken der Widgets eigenschaften festlegen kann, wie z.B. den Blocktype... und dass er immer den Namen als Block-Überschrift nimmt gefällt mir auch nicht... naja, mal schauen...

Kommentar