main1280x800.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <!--
  5. /* FHEM tablet ui */
  6. /*
  7. * UI builder framework for FHEM
  8. *
  9. * Version: 2.2.*
  10. * URL: https://github.com/knowthelist/fhem-tablet-ui
  11. *
  12. * Copyright (c) 2015-2016 Mario Stephan <mstephan@shared-files.de>
  13. * Under MIT License (http://www.opensource.org/licenses/mit-license.php)
  14. *
  15. * - create a new folder named 'tablet' in /<fhem-path>/www
  16. * - copy all files incl. sub folders into /<fhem-path>/www/tablet
  17. * - add 'define TABLETUI HTTPSRV ftui ./www/tablet Tablet' in fhem.cfg
  18. * - Tadaaa! A new fhem ui in http://<fhem-url>:8083/fhem/tablet/
  19. */
  20. -->
  21. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  22. <meta name="gridster_cols" content="12">
  23. <meta name="gridster_rows" content="12">
  24. <meta name="mobile-web-app-capable" content="yes">
  25. <meta name="apple-mobile-web-app-capable" content="yes">
  26. <meta name="gridster_disable" content="1">
  27. <meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->
  28. <meta name="debug" content="2"> <!-- verbose level 1-6 = output to console;0 = not output -->
  29. <link rel="stylesheet" href="lib/jquery.gridster.min.css" />
  30. <link rel="stylesheet" href="css/fhem-tablet-ui.css" />
  31. <link rel="stylesheet" href="lib/font-awesome.min.css" />
  32. <link rel="stylesheet" href="lib/jquery.toast.min.css" />
  33. <!-- define your personal style here, it wont be overwritten -->
  34. <!-- link rel="stylesheet" href="css/fhem-green-ui.css" / -->
  35. <!-- link rel="stylesheet" href="css/fhem-tablet-ui-user.css" / -->
  36. <link rel="stylesheet" href="css/fhem-tablet-ui-custom_1280.css" />
  37. <script src="../pgm2/jquery.min.js"></script>
  38. <script src="lib/jquery.toast.min.js"></script>
  39. <script src="lib/jquery.gridster.min.js"></script>
  40. <script src="js/fhem-tablet-ui.js" defer></script>
  41. <!-- Um ein 'schönes' Favicon auf dem HomeScreen von Appledevices zu bekommen, muss zu folgendem Trick gegriffen werden:
  42. Die folgenden Zeilen aktivieren. - Die Standardverbindung via https und user cert schlägt beim
  43. Laden des apple touch icons leider fehl - mit diesem Workarround funktioniert es
  44. ERLEDIGT Die Icons wurden auf einen 'öffentlichen Server' - mean ohne client cert verschoben - nun passt es -->
  45. <link rel="apple-touch-icon-precomposed" sizes="120x120" href="https://www.metzner.myhome-server.de/images/myfhemfavico_120x120.png">
  46. <link rel="apple-touch-icon" sizes="120x120" href="https://www.metzner.myhome-server.de/images/myfhemfavico_120x120.png">
  47. <link rel="apple-touch-icon" sizes="144x144" href="https://www.metzner.myhome-server.de/images/myfhemfavico_144x144.png">
  48. <link rel="apple-touch-icon" sizes="152x152" href="https://www.metzner.myhome-server.de/images/myfhemfavico_152x152.png">
  49. <link rel="apple-touch-icon" sizes="167x167" href="https://www.metzner.myhome-server.de/images/myfhemfavico_167x167.png">
  50. <link rel="apple-touch-icon" sizes="180x180" href="https://www.metzner.myhome-server.de/images/myfhemfavico_180x180.png">
  51. <link rel="apple-touch-icon" sizes="512x512" href="https://www.metzner.myhome-server.de/images/myfhemfavico_512x512.png">
  52. <title>FHEM-Dev-UI</title>
  53. </head>
  54. <body>
  55. <div class="gridster">
  56. <ul>
  57. <!--Verbindungen-->
  58. <li data-col="1" data-row="1" data-sizex="4" data-sizey="6" class="fulltransparent">
  59. <header class="fulltransparent">Ihre nächsten Verbindungen</header>
  60. <div class="sheet">
  61. <div class="row-5 bigger left-align">NW-Böbig</div>
  62. <div class="row"
  63. data-template="templates/template_abfahrt.html"
  64. data-parameter='{"paraDev":"HaNW",
  65. "paraTve":"travel_vehicle_nr_1",
  66. "paraPde":"plan_departure_1",
  67. "paraTde":"travel_departure_1",
  68. "paraPdd":"plan_departure_delay_1"}'>
  69. </div>
  70. <div class="row"
  71. data-template="templates/template_abfahrt.html"
  72. data-parameter='{"paraDev":"HaNW",
  73. "paraTve":"travel_vehicle_nr_2",
  74. "paraPde":"plan_departure_2",
  75. "paraTde":"travel_departure_2",
  76. "paraPdd":"plan_departure_delay_2"}'>
  77. </div>
  78. <div class="row"
  79. data-template="templates/template_abfahrt.html"
  80. data-parameter='{"paraDev":"HaNW",
  81. "paraTve":"travel_vehicle_nr_3",
  82. "paraPde":"plan_departure_3",
  83. "paraTde":"travel_departure_3",
  84. "paraPdd":"plan_departure_delay_3"}'>
  85. </div>
  86. <div class="row-5 bigger left-align">Mannheim</div>
  87. <div class="row"
  88. data-template="templates/template_abfahrt.html"
  89. data-parameter='{"paraDev":"HaMA",
  90. "paraTve":"travel_vehicle_nr_1",
  91. "paraPde":"plan_departure_1",
  92. "paraTde":"travel_departure_1",
  93. "paraPdd":"plan_departure_delay_1"}'>
  94. </div>
  95. <div class="row"
  96. data-template="templates/template_abfahrt.html"
  97. data-parameter='{"paraDev":"HaMA",
  98. "paraTve":"travel_vehicle_nr_2",
  99. "paraPde":"plan_departure_2",
  100. "paraTde":"travel_departure_2",
  101. "paraPdd":"plan_departure_delay_2"}'>
  102. </div>
  103. <div class="row"
  104. data-template="templates/template_abfahrt.html"
  105. data-parameter='{"paraDev":"HaMA",
  106. "paraTve":"travel_vehicle_nr_3",
  107. "paraPde":"plan_departure_3",
  108. "paraTde":"travel_departure_3",
  109. "paraPdd":"plan_departure_delay_3"}'>
  110. </div>
  111. </div>
  112. </li>
  113. <!--Kalender-->
  114. <li data-col="5" data-row="1" data-sizex="4" data-sizey="6" class="fulltransparent">
  115. <header class="fulltransparent">Was steht an</header>
  116. <div data-type="calview"
  117. data-device="OurCalendars"
  118. data-get="all"
  119. data-max="10"
  120. data-dateformat="short"
  121. data-timeformat="short"
  122. data-detail='["bdate","timeshort","summary","sourcecolor"]'
  123. data-sourcecolor="yes"
  124. data-detailwidth='["10","20","50"]'
  125. data-class="left-align bold">
  126. </div>
  127. </li>
  128. <!--Sprit-->
  129. <li data-col="9" data-row="1" data-sizex="1" data-sizey="7" class="fulltransparent">
  130. <header class="fulltransparent">Sprit</header>
  131. <div data-type="image"
  132. data-url="./images/real_800x400.png"
  133. data-size="80px">
  134. </div>
  135. <div class="large">
  136. <div data-type="label" data-device="Spritpreise" data-get="prices_51d4b632-a095-1aa0-e100-80009459e03a_e5" class="inline"></div> /
  137. <div data-type="label" data-device="Spritpreise" data-get="prices_51d4b632-a095-1aa0-e100-80009459e03a_diesel" class="inline"></div>
  138. </div>
  139. <div data-type="image"
  140. data-url="./images/avia_500x360.png"
  141. data-size="90px">
  142. </div>
  143. <div class="large">
  144. <div data-type="label" data-device="Spritpreise" data-get="prices_b01f066b-9b21-45c6-a687-00f5fb1a7463_e5" class="inline"></div> /
  145. <div data-type="label" data-device="Spritpreise" data-get="prices_b01f066b-9b21-45c6-a687-00f5fb1a7463_diesel" class="inline"></div>
  146. </div>
  147. <div data-type="image"
  148. data-url="./images/esso_390x276.png"
  149. data-size="90px">
  150. </div>
  151. <div class="large">
  152. <div data-type="label" data-device="Spritpreise" data-get="prices_e935427e-bd37-4daf-979c-b4fe2d112981_e5" class="inline"></div> /
  153. <div data-type="label" data-device="Spritpreise" data-get="prices_e935427e-bd37-4daf-979c-b4fe2d112981_diesel" class="inline"></div>
  154. </div>
  155. <div data-type="image"
  156. data-url="./images/shell_360x360.png"
  157. data-size="90px">
  158. </div>
  159. <div class="large">
  160. <div data-type="label" data-device="Spritpreise" data-get="prices_b48682b4-d344-4bb9-8890-a8504912119d_e5" class="inline"></div> /
  161. <div data-type="label" data-device="Spritpreise" data-get="prices_b48682b4-d344-4bb9-8890-a8504912119d_diesel" class="inline"></div>
  162. </div>
  163. </li>
  164. <!--Müll-->
  165. <li data-col="10" data-row="1" data-sizex="1" data-sizey="7" class="fulltransparent">
  166. <header class="fulltransparent">Müll</header>
  167. <!-- Der Müllbereich kann angeklickt werden und zeigt dann ein Popup mit den anstehenden Leerungsterminen-->
  168. <div data-type="popup"
  169. data-height="400px"
  170. data-width="900px">
  171. <div class="big"
  172. data-type="symbol"
  173. data-background-icon="none"
  174. data-device="myABFALL"
  175. data-get="Rest_days"
  176. data-get-on='["0","1","[2-9]{1}|[0-9]{2}"]'
  177. data-icons='["fa-trash warn fa-spin","fa-trash warn blink","fa-trash warn"]'
  178. data-colors='["gray","gray","gray"]'>
  179. </div>
  180. <div class="big"
  181. data-type="symbol"
  182. data-background-icon="none"
  183. data-device="myABFALL"
  184. data-get="Bio_days"
  185. data-get-on='["0","1","[2-9]{1}|[0-9]{2}"]'
  186. data-icons='["fa-trash warn fa-spin","fa-trash warn blink","fa-trash warn"]'
  187. data-colors='["green","green","green"]'>
  188. </div>
  189. <div class="big"
  190. data-type="symbol"
  191. data-background-icon="none"
  192. data-device="myABFALL"
  193. data-get="Papier_days"
  194. data-get-on='["0","1","[2-9]{1}|[0-9]{2}"]'
  195. data-icons='["fa-trash warn fa-spin","fa-trash warn blink","fa-trash warn"]'
  196. data-colors='["#4747D1","#4747D1","#4747D1"]'>
  197. </div>
  198. <div class="big"
  199. data-type="symbol"
  200. data-background-icon="none"
  201. data-device="myABFALL"
  202. data-get="LVP_days"
  203. data-get-on='["0","1","[2-9]{1}|[0-9]{2}"]'
  204. data-icons='["fs-bag warn fa-spin","fs-bag warn blink","fs-bag warn"]'
  205. data-colors='["#E6E600","#E6E600","#E6E600"]'>
  206. </div>
  207. <div class="big"
  208. data-type="symbol"
  209. data-background-icon="none"
  210. data-device="myABFALL"
  211. data-get="Glas_days"
  212. data-get-on='["0","1","[2-9]{1}|[0-9]{2}"]'
  213. data-icons='["fs-bag warn fa-spin","fs-bag warn blink","fs-bag warn"]'
  214. data-colors='["#FFFFFF","#FFFFFF","#FFFFFF"]'>
  215. </div>
  216. <!-- Popup Dialog für die detailierten Leerungsdaten-->
  217. <div class="dialog bigger bg-popupgreenboard">
  218. <header class="fulltransparent">Müll</header>
  219. <div>Die nächste Leerung findet am
  220. <div data-type="label" data-device="myABFALL" data-get="next_weekday" class="inline"></div>,
  221. <div data-type="label" data-device="myABFALL" data-get="next_date" class="inline"></div> statt.</div>
  222. <div>Es werden dann
  223. <div data-type="label" data-device="myABFALL" data-get="next_text" class="inline"></div>-müll abgeholt.</div>
  224. <div>Restmüll -
  225. <div data-type="label" data-device="myABFALL" data-get="Rest_weekday" class="inline"></div>,
  226. <div data-type="label" data-device="myABFALL" data-get="Rest_date" class="inline"></div></div>
  227. <div>Papiermüll -
  228. <div data-type="label" data-device="myABFALL" data-get="Papier_weekday" class="inline"></div>,
  229. <div data-type="label" data-device="myABFALL" data-get="Papier_date" class="inline"></div></div>
  230. <div>Biomüll -
  231. <div data-type="label" data-device="myABFALL" data-get="Bio_weekday" class="inline"></div>,
  232. <div data-type="label" data-device="myABFALL" data-get="Bio_date" class="inline"></div></div>
  233. <div>Gelber Sack -
  234. <div data-type="label" data-device="myABFALL" data-get="LVP_weekday" class="inline"></div>,
  235. <div data-type="label" data-device="myABFALL" data-get="LVP_date" class="inline"></div></div>
  236. <div>Glas -
  237. <div data-type="label" data-device="myABFALL" data-get="Glas_weekday" class="inline"></div>,
  238. <div data-type="label" data-device="myABFALL" data-get="Glas_date" class="inline"></div></div>
  239. <div>Sondermüll -
  240. <div data-type="label" data-device="myABFALL" data-get="Sondermuell_weekday" class="inline"></div>,
  241. <div data-type="label" data-device="myABFALL" data-get="Sondermuell_date" class="inline"></div></div>
  242. </div>
  243. </div>
  244. </li>
  245. <!--Uhrzeit-->
  246. <li data-col="11" data-row="1" data-sizex="2" data-sizey="2" class="fulltransparent">
  247. <header data-type="clock"
  248. data-format="D, j.M Y"
  249. class="fulltransparent">
  250. </header>
  251. <div data-type="clock"
  252. data-format="H:i"
  253. class="great">
  254. </div>
  255. <!-- div data-type="clock"
  256. data-format="D, j.M Y"
  257. class="bigger">
  258. </div-->
  259. </li>
  260. <li data-col="11" data-row="3" data-sizex="2" data-sizey="5">
  261. <header>EXAMPLE4</header>
  262. <!-- place your widget here -->
  263. </li>
  264. <!--Reisezeiten-->
  265. <li data-col="1" data-row="7" data-sizex="4" data-sizey="6" class="fulltransparent">
  266. <header class="fulltransparent">Aktuelle Reisezeiten</header>
  267. <div class="sheet">
  268. <div class="row-5 large left-align">via Hockenheim</div>
  269. <div class="row"
  270. data-template="templates/template_fahrzeit.html"
  271. data-parameter='{"paraDev":"trafficViaHockenheim"}'>
  272. </div>
  273. <div class="row-5 large left-align">via Talhaus</div>
  274. <div class="row"
  275. data-template="templates/template_fahrzeit.html"
  276. data-parameter='{"paraDev":"trafficViaTalhaus"}'>
  277. </div>
  278. <div class="row-5 large left-align">via A61/Talhaus</div>
  279. <div class="row"
  280. data-template="templates/template_fahrzeit.html"
  281. data-parameter='{"paraDev":"trafficViaA61Talhaus"}'>
  282. </div>
  283. <div class="row-5 large left-align">via A61/A6</div>
  284. <div class="row"
  285. data-template="templates/template_fahrzeit.html"
  286. data-parameter='{"paraDev":"trafficViaA61A6"}'>
  287. </div>
  288. </div>
  289. </li>
  290. <!--Geburtstage-->
  291. <li data-col="5" data-row="7" data-sizex="4" data-sizey="6" class="fulltransparent">
  292. <header class="fulltransparent">Geburtstage</header>
  293. <div data-type="calview"
  294. data-device="BirthdayView"
  295. data-get="today"
  296. data-color="red"
  297. data-detail='["bdate","summary","age"]'
  298. data-detailwidth='["10","50","10"]'
  299. data-class="bold">
  300. </div>
  301. <div data-type="calview"
  302. data-device="BirthdayView"
  303. data-get="tomorrow"
  304. data-color="yellow"
  305. data-detail='["bdate","summary","age"]'
  306. data-detailwidth='["10","50","10"]'
  307. data-class="bold">
  308. </div>
  309. <div class="left-align">demnächst</div>
  310. <div data-type="calview"
  311. data-device="BirthdayView"
  312. data-get="all"
  313. data-start="notomorrow"
  314. data-max="9"
  315. data-dateformat="short"
  316. data-detail='["bdate","summary","age"]'
  317. data-detailwidth='["10","50","10"]'
  318. data-class="bold">
  319. </div>
  320. </li>
  321. <li data-col="9" data-row="8" data-sizex="4" data-sizey="3">
  322. <header>Küchenorchester</header>
  323. <!-- place your widget here -->
  324. </li>
  325. </ul>
  326. </div>
  327. </body>
  328. </html>