config.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. let config = {
  2. address: "0.0.0.0",
  3. port: 8080,
  4. basePath: "/",
  5. ipWhitelist: [],
  6. useHttps: false,
  7. language: "de",
  8. locale: "de-DE",
  9. logLevel: ["INFO", "LOG", "WARN", "ERROR"],
  10. timeFormat: 24,
  11. units: "metric",
  12. modules: [
  13. {
  14. module: "alert",
  15. },
  16. {
  17. module: 'MMM-Carousel',
  18. position: 'bottom_bar',
  19. config: {
  20. transitionInterval: 22000,
  21. showPageIndicators: true,
  22. showPageControls: false,
  23. ignoreModules: ["MMM-BurnIn"],
  24. mode: 'slides',
  25. slides: {
  26. "Main": [
  27. { name: 'clock', position: "top_left", carouselId: "1" },
  28. { name: 'MMM-SimpleLogo', position: "top_right", carouselId: "1" },
  29. { name: 'calendar', position: "middle_center", carouselId: "1" }
  30. ],
  31. "Slide 1": [
  32. { name: 'clock', position: "top_left", carouselId: "1" },
  33. { name: 'MMM-SimpleLogo', position: "top_right", carouselId: "1" },
  34. { name: 'newsfeed', position: "middle_center", carouselId: "1" },
  35. { name: 'MMM-News-QR', position: "middle_center", carouselId: "1" }
  36. ],
  37. "Slide 2": [
  38. { name: 'clock', position: "top_left", carouselId: "1" },
  39. { name: 'MMM-SimpleLogo', position: "top_right", carouselId: "1" },
  40. { name: 'calendar', position: "middle_center", carouselId: "2" }
  41. ],
  42. "Slide 3": [
  43. { name: 'clock', position: "top_left", carouselId: "1" },
  44. { name: 'MMM-SimpleLogo', position: "top_right", carouselId: "1" },
  45. { name: 'calendar', position: "middle_center", carouselId: "3" }
  46. ],
  47. "Slide 4": [
  48. { name: 'clock', position: "top_left", carouselId: "1" },
  49. { name: 'MMM-SimpleLogo', position: "top_right", carouselId: "1" },
  50. { name: 'calendar', position: "middle_center", carouselId: "4" }
  51. ],
  52. "Slide 5": [
  53. { name: 'MMM-BackgroundSlideshow', position: "fullscreen_below", carouselId: "5" },
  54. { name: 'clock', position: "top_left", carouselId: "1" },
  55. { name: 'MMM-SimpleLogo', position: "top_right", carouselId: "1" },
  56. { name: 'MMM-AutoDimmer', position: "fullscreen_above"}
  57. ],
  58. "Slide 6": [
  59. { name: 'clock', position: "top_left", carouselId: "1" },
  60. { name: 'MMM-SimpleLogo', position: "top_right", carouselId: "1" },
  61. { name: 'compliments', position: "middle_center", carouselId: "1" }
  62. ],
  63. "Slide 7": [
  64. { name: 'clock', position: "top_left", carouselId: "1" },
  65. { name: 'MMM-SimpleLogo', position: "top_right", carouselId: "1" },
  66. { name: 'MMM-ImageSlideshow', position: "middle_center", carouselId: "5" },
  67. { name: 'weather', position: "bottom_left", carouselId: "5" },
  68. { name: 'MMM-DWD-WarnWeather', position: "bottom_left", carouselId: "5" },
  69. { name: 'newsfeed', position: "bottom_bar", carouselId: "5" }
  70. ],
  71. }
  72. }
  73. },
  74. /*
  75. SECTION - Main Slide
  76. */
  77. {
  78. module: 'clock',
  79. position: "top_left",
  80. config: {
  81. timeFormat: 24,
  82. carouselId: '1'
  83. }
  84. },
  85. {
  86. module: 'MMM-SimpleLogo',
  87. position: 'top_right',
  88. config: {
  89. carouselId: "1",
  90. fileUrl: "modules/MMM-SimpleLogo/public/wachenwappen.png",
  91. text: "",
  92. position: "right",
  93. width: "200px",
  94. }
  95. },
  96. {
  97. module: "calendar",
  98. header: "Tagesübersicht",
  99. classes: "daily-overview",
  100. position: "middle_center",
  101. config: {
  102. carouselId: "1",
  103. tableClass: "large daily-overview-table wachenaufgaben",
  104. fetchInterval: 600000, /* 600000 */
  105. maxTitleLength: 50,
  106. displaySymbol: true,
  107. showLocation: false,
  108. maxTitleLines: 1,
  109. maximumEntries: 9,
  110. maximumNumberOfDays: 1,
  111. calendars: [
  112. {
  113. /* RW21 Wachenaufgaben */
  114. url: 'https://nc.x0p.it/remote.php/dav/public-calendars/ZMGgBLGn52oATzDw?export',
  115. symbolClass: 'todo-symbol',
  116. titleClass: 'todo-title',
  117. timeClass: 'todotime',
  118. symbol: 'clipboard-list-check'
  119. },
  120. {
  121. /* RW21 Putzplan */
  122. url: 'https://nc.x0p.it/remote.php/dav/public-calendars/WW49cKGiiZyy95q8?export',
  123. symbolClass: 'clean-symbol',
  124. titleClass: 'clean-title',
  125. timeClass: 'clean-time',
  126. symbol: 'vacuum',
  127. },
  128. {
  129. /* RW21 Allgemeines */
  130. url: 'https://nc.x0p.it/remote.php/dav/public-calendars/eMQW6HmyjfgS8bXq?export',
  131. symbolClass: 'info-symbol',
  132. titleClass: 'info-title',
  133. timeClass: 'info-time',
  134. symbol: 'circle-info',
  135. maximumNumberOfDays: 7,
  136. },
  137. {
  138. /* RW21 Muellkalender */
  139. url: 'https://nc.x0p.it/remote.php/dav/public-calendars/krSEAP9TEXwqqm2n?export',
  140. symbolClass: 'trash-symbol',
  141. titleClass: 'trash-title',
  142. timeClass: 'trash-time',
  143. symbol: 'trash-can',
  144. maximumNumberOfDays: 2,
  145. }
  146. ]
  147. }
  148. },
  149. /*
  150. !!SECTION
  151. */
  152. /*
  153. SECTION - Slide 1
  154. */
  155. {
  156. module: "compliments",
  157. position: "middle_center",
  158. config: {
  159. carouselId: "1",
  160. updateInterval: 20000,
  161. fadeSpeed: 3000,
  162. morningStartTime: 6,
  163. morningEndTime: 12,
  164. afternoonStartTime: 12,
  165. afternoonEndTime: 19,
  166. remoteFile: "https://gist.githubusercontent.com/Psycho0verload/9b3f22a476537f93ca3edf77cc0bac84/raw/30b2243e58ce6f87b91335193a59e38a069125db/compliments_1.json"
  167. }
  168. },
  169. /*
  170. !!SECTION
  171. */
  172. /*
  173. SECTION - Slide 2
  174. */
  175. {
  176. module: "calendar",
  177. header: "MZ 21/83-1",
  178. classes: "rtw-overview",
  179. position: "middle_center",
  180. config: {
  181. carouselId: "2",
  182. tableClass: "large daily-overview-table fahrzeugaufgaben fahrzeugaufgaben-rtw",
  183. fetchInterval: 600000, /* 600000 */
  184. maxTitleLength: 50,
  185. displaySymbol: true,
  186. showLocation: false,
  187. maxTitleLines: 1,
  188. maximumEntries: 9,
  189. maximumNumberOfDays: 1,
  190. calendars: [
  191. {
  192. /* Fahrzeug 21/83-1 */
  193. url: 'https://nc.x0p.it/remote.php/dav/public-calendars/exdmis8xiZc54mn3?export',
  194. symbolClass: 'rtw-symbol',
  195. titleClass: 'rtw-title',
  196. timeClass: 'rtw-time',
  197. symbol: 'truck-medical'
  198. }
  199. ]
  200. }
  201. },
  202. /*
  203. !!SECTION
  204. */
  205. /*
  206. SECTION - Slide 3
  207. */
  208. {
  209. module: "calendar",
  210. header: "MZ 21/84-1",
  211. classes: "nktw-overview",
  212. position: "middle_center",
  213. config: {
  214. carouselId: "3",
  215. tableClass: "large daily-overview-table fahrzeugaufgaben fahrzeugaufgaben-nktw",
  216. fetchInterval: 600000, /* 600000 */
  217. maxTitleLength: 50,
  218. displaySymbol: true,
  219. showLocation: false,
  220. maxTitleLines: 1,
  221. maximumEntries: 9,
  222. maximumNumberOfDays: 1,
  223. calendars: [
  224. {
  225. /* Fahrzeug 21/84-1 */
  226. url: 'https://nc.x0p.it/remote.php/dav/public-calendars/NGATEN6qkf9wWEc6?export',
  227. symbolClass: 'nktw-symbol',
  228. titleClass: 'nktw-title',
  229. timeClass: 'nktw-time',
  230. symbol: 'truck-medical',
  231. },
  232. ]
  233. }
  234. },
  235. /*
  236. !!SECTION
  237. */
  238. /*
  239. SECTION - Slide 4
  240. */
  241. {
  242. module: "calendar",
  243. header: "MZ 21/85-1",
  244. classes: "ktw-overview",
  245. position: "middle_center",
  246. config: {
  247. carouselId: "4",
  248. tableClass: "large daily-overview-table fahrzeugaufgaben fahrzeugaufgaben-ktw",
  249. fetchInterval: 600000, /* 600000 */
  250. maxTitleLength: 50,
  251. displaySymbol: true,
  252. showLocation: false,
  253. maxTitleLines: 1,
  254. maximumEntries: 9,
  255. maximumNumberOfDays: 1,
  256. calendars: [
  257. {
  258. /* Fahrzeug 21/85-1 */
  259. url: 'https://nc.x0p.it/remote.php/dav/public-calendars/G6Ho8gHmWk4X7qB7?export',
  260. symbolClass: 'ktw-symbol',
  261. titleClass: 'ktw-title',
  262. timeClass: 'ktw-time',
  263. symbol: 'truck-medical',
  264. }
  265. ]
  266. }
  267. },
  268. /*
  269. !!SECTION
  270. */
  271. /*
  272. SECTION - Slide 5
  273. */
  274. {
  275. module: 'MMM-BackgroundSlideshow',
  276. position: 'fullscreen_below',
  277. config: {
  278. carouselId: "5",
  279. imagePaths: ['modules/MMM-BackgroundSlideshow/slides/aktionen/'],
  280. transitionImages: false,
  281. randomizeImageOrder: true,
  282. fixedImageWidth: 1920,
  283. fixedImageHeight: 1080,
  284. slideshowSpeed: 100000
  285. }
  286. },
  287. /*
  288. !!SECTION
  289. */
  290. /*
  291. SECTION - Slide 7
  292. */
  293. {
  294. module: 'MMM-ImageSlideshow',
  295. position: 'middle_center',
  296. config: {
  297. carouselId: "5",
  298. imagePaths: ['modules/MMM-ImageSlideshow/public/slide_1'],
  299. slideshowSpeed: 15000,
  300. fixedImageWidth: 900,
  301. randomizeImageOrder: true,
  302. }
  303. },
  304. {
  305. module: "weather",
  306. position: "bottom_left",
  307. config: {
  308. carouselId: "5",
  309. weatherProvider: "openweathermap",
  310. type: "current",
  311. location: "Nierstein",
  312. locationID: "2862485",
  313. apiKey: "e3185c8094b5cbc1d4291d0dcf64e113"
  314. }
  315. },
  316. {
  317. module: "weather",
  318. position: "bottom_left",
  319. header: "Wettervorhersage",
  320. config: {
  321. carouselId: "5",
  322. weatherProvider: "openweathermap",
  323. type: "forecast",
  324. location: "Nierstein",
  325. locationID: "2862485",
  326. apiKey: "e3185c8094b5cbc1d4291d0dcf64e113"
  327. }
  328. },
  329. {
  330. module: 'MMM-DWD-WarnWeather',
  331. position: 'bottom_left',
  332. config: {
  333. carouselId: "5",
  334. region: 'Nierstein',
  335. changeColor: true,
  336. minutes: false,
  337. displayRegionName: true,
  338. displayInnerHeader: true,
  339. interval: 10 * 60 * 1000,
  340. loadingText: 'Warnungen werden geladen...',
  341. noWarningText: 'Keine Warnungen',
  342. severityThreshold: 2
  343. }
  344. },
  345. {
  346. module: "newsfeed",
  347. position: "bottom_bar",
  348. config: {
  349. carouselId: "5",
  350. feeds: [
  351. // {
  352. // title: "DRK Rettungsdienst Rheinhessen-Nahe gGmbH",
  353. // url: "https://www.drk-rhein-nahe.de/news-rss.xml",
  354. // ignoreOlderThan: "345600000"
  355. // },
  356. {
  357. title: "Deutscher Berufsverband Rettungsdienst e.V.",
  358. url: "https://dbrd.de/index.php/aktivitaeten?format=feed&type=rss",
  359. ignoreOlderThan: "345600000"
  360. },
  361. {
  362. title: "Allgmeine Zeitung - VG Rhein-Selz",
  363. url: "https://www.allgemeine-zeitung.de/rss/lokales/oppenheim/vg-rhein-selz",
  364. ignoreOlderThan: "345600000"
  365. },
  366. {
  367. title: "Der Postillon",
  368. url: "http://feeds.feedburner.com/blogspot/rkEL",
  369. ignoreOlderThan: "345600000"
  370. }
  371. ],
  372. showSourceTitle: true,
  373. showPublishDate: true,
  374. broadcastNewsFeeds: false,
  375. broadcastNewsUpdates: false
  376. }
  377. },
  378. /*
  379. !!SECTION
  380. */
  381. /*
  382. SECTION - Slide 7
  383. */
  384. {
  385. module: 'MMM-News-QR',
  386. position: "middle_center",
  387. config: {
  388. carouselId: "1",
  389. updateType: 'push',
  390. interval: 2000,
  391. animationSpeed: 2500,
  392. colorDark: '#fff',
  393. colorLight: '#000',
  394. imageSize: 150
  395. }
  396. },
  397. {
  398. module: "newsfeed",
  399. position: "middle_center",
  400. config: {
  401. carouselId: "1",
  402. feeds: [
  403. // {
  404. // title: "DRK Rettungsdienst Rheinhessen-Nahe gGmbH",
  405. // url: "https://www.drk-rhein-nahe.de/news-rss.xml",
  406. // ignoreOlderThan: "345600000"
  407. // },
  408. {
  409. title: "Deutscher Berufsverband Rettungsdienst e.V.",
  410. url: "https://dbrd.de/index.php/aktivitaeten?format=feed&type=rss",
  411. ignoreOlderThan: "345600000"
  412. },
  413. {
  414. title: "Allgmeine Zeitung - VG Rhein-Selz",
  415. url: "https://www.allgemeine-zeitung.de/rss/lokales/oppenheim/vg-rhein-selz",
  416. ignoreOlderThan: "345600000"
  417. },
  418. {
  419. title: "Der Postillon",
  420. url: "http://feeds.feedburner.com/blogspot/rkEL",
  421. ignoreOlderThan: "345600000"
  422. }
  423. ],
  424. showSourceTitle: true,
  425. showPublishDate: true,
  426. broadcastNewsFeeds: true,
  427. broadcastNewsUpdates: true,
  428. showDescription: true
  429. }
  430. },
  431. /*
  432. !!SECTION
  433. */
  434. {
  435. module: "MMM-BurnIn",
  436. position: "bottom_bar",
  437. config: {
  438. updateInterval: 15,
  439. invertDuration: 5
  440. }
  441. },
  442. {
  443. module: 'MMM-AutoDimmer',
  444. position: 'fullscreen_above',
  445. header: '',
  446. // Don't change anything above this line
  447. config: {
  448. carouselId: "1",
  449. schedules: [
  450. {
  451. days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  452. brightTime: 600,
  453. dimTime: 2300,
  454. maxDim: 0.7
  455. }
  456. ]
  457. }
  458. }
  459. ]
  460. }
  461. /*************** DO NOT EDIT THE LINE BELOW ***************/
  462. if (typeof module !== "undefined") { module.exports = config; }