mirror of
https://github.com/alexandrebobkov/ESP-Nodes.git
synced 2025-08-07 22:56:11 +00:00
1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"version":"1.0.2","http":{"http":true,"https":true,"ui":true,"login":true},"mqtt":{"enable":true,"url":"mqtt://techquadbit.ddns.net"},"websocket":{"enable":true},"dns":{"type":"default","url":"udp://8.8.8.8:53","captive":false},"sntp":{"enable":true,"type":0,"url":"udp://time.google.com:123","interval":3600},"modbus":{"enable":false,"port":502},"build":{"mode":"new","board":"esp32","ide":"ESP-IDF","rtos":"baremetal"},"api":{"reboot":{"type":"action","read_level":3,"write_level":7},"reformat":{"type":"action","read_level":3,"write_level":7},"firmware_update":{"type":"ota","read_level":3,"write_level":7},"file_upload":{"type":"upload","read_level":3,"write_level":7},"graph_data":{"type":"custom","read_level":3,"write_level":3,"value":[[1724576787,20.3],[1724576847,27.2],[1724576907,29.7],[1724576967,27.9],[1724577027,25.1],[1724577087,23.8],[1724577147,22.5],[1724577207,22.2],[1724577267,23.3],[1724577327,23.9]]},"state":{"type":"data","readonly":true,"attributes":{"speed":{"type":"int","value":42},"temperature":{"type":"int","value":27},"humidity":{"type":"int","value":67},"uptime":{"type":"int","value":10},"version":{"type":"string","value":"1.0.0","size":20},"online":{"type":"bool","value":true},"lights":{"type":"bool","value":false},"level":{"type":"int","value":83}}},"leds":{"type":"data","read_level":3,"write_level":3,"attributes":{"led1":{"type":"bool","value":false},"led2":{"type":"bool","value":true},"led3":{"type":"bool","value":false}}},"network_settings":{"type":"data","read_level":3,"write_level":7,"attributes":{"ip_address":{"type":"string","value":"192.168.0.42","size":20},"gw_address":{"type":"string","value":"192.168.0.1","size":20},"netmask":{"type":"string","value":"255.255.255.0","size":20},"dhcp":{"type":"bool","value":true}}},"settings":{"type":"data","read_level":3,"write_level":7,"attributes":{"string_val":{"type":"string","value":"edit & save me","size":40},"log_level":{"type":"string","size":10,"value":"info"},"double_val":{"type":"double","value":123.12345,"format":"%.5f"},"int_val":{"type":"int","value":17},"bool_val":{"type":"bool","value":true}}},"security":{"type":"data","read_level":7,"write_level":7,"attributes":{"admin_password":{"type":"string","value":"admin","size":40},"user_password":{"type":"string","value":"user","size":40}}},"loglevels":{"type":"custom","value":["disabled","error","info","debug","verbose"]},"events":{"type":"custom","value":[{"priority":1,"timestamp":1738653279,"active":false,"message":"event 1"},{"priority":2,"timestamp":1738653390,"active":true,"message":"event 2"}],"attributes":{"priority":{"type":"int","value":1},"timestamp":{"type":"int","value":1738653279},"active":{"type":"bool","value":true},"message":{"type":"string","value":"some event","size":50}}}},"ui":{"production":false,"brand":"My Brand","logo":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<svg viewBox=\"0 0 600 150\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0\" y=\"0\" width=\"600\" height=\"150\" rx=\"20\" ry=\"20\" style=\"stroke: none; fill: #e1e5e9;\"/>\n <text style=\"fill: #94A3B8; font-family: Arial, sans-serif; font-size: 48px;\" x=\"200\" y=\"90\">my logo</text>\n</svg>","toolbar":{"label":"My product console"},"heartbeat":1,"theme":{},"classes":"","pages":[{"title":"Dashboard","icon":"desktop","level":0,"classes":"page","layout":[{"classes":"container","css":"flex-wrap:wrap; gap:0.5rem;","layout":[{"classes":"card","layout":[{"format":"Speed"},{"format":"${state.speed} km/h"}]},{"classes":"card","layout":[{"format":"Temperature"},{"format":"${state.temperature} °C","conditions":[{"expr":"state.temperature > 25","attrs":{"css":"color: #c33; font-weight: 700;"}}]}]},{"classes":"card","layout":[{"format":"Humidity"},{"format":"${state.humidity}%"}]},{"classes":"card","layout":[{"format":"Water tank level"},{"type":"progress","ref":"state.level","css":"font-size:1rem;"}]},{"classes":"card","layout":[{"format":"Firmware version"},{"format":"${state.version}"}]}]},{"classes":"container","css":"gap:0.5rem;","layout":[{"classes":"container","css":"flex-direction: column; gap: 0.5rem; flex: 0 0 auto; width: 16rem;","layout":[{"classes":"panel","layout":[{"classes":"title","format":"LED control panel"},{"classes":"labeled","layout":[{"classes":"label","format":"LED1"},{"type":"toggle","ref":"leds.led1","autosave":true}]},{"classes":"labeled","layout":[{"classes":"label","format":"LED2"},{"type":"toggle","ref":"leds.led2","autosave":true}]},{"classes":"labeled","layout":[{"classes":"label","format":"LED3"},{"type":"toggle","ref":"leds.led3","autosave":true}]}]},{"classes":"panel","layout":[{"classes":"title","format":"Status panel"},{"classes":"labeled","layout":[{"classes":"label","format":"Online status"},{"type":"status","ref":"state.online","labels":""}]},{"classes":"labeled","layout":[{"classes":"label","format":"Console status"},{"type":"status","ref":"state.lights","labels":""}]}]},{"type":"container","classes":"container","css":"flex-direction: column; gap: 0.5rem;","layout":[{"type":"container","classes":"card","layout":[{"type":"text","format":"Voltage (real-time)"},{"type":"text","format":"${websocket.voltage} V"}]}]}]},{"classes":"container","css":"flex-direction: column; gap: 0.5rem;","layout":[{"classes":"container","css":"gap:0.5rem;","layout":[{"classes":"panel","css":"width: 10rem;","layout":[{"classes":"title","format":"Humidity"},{"type":"gauge","ref":"state.humidity","ticks":"0,25,50,75,100"}]},{"classes":"panel","css":"flex-grow: 1;","layout":[{"format":"Temperature","classes":"title"},{"type":"graph","ref":"graph_data"}]}]},{"classes":"container","layout":[{"classes":"panel","layout":[{"classes":"title","format":"Developer note"},{"format":"To add/remove/rename pages, select the \"sidebar\" tab at the bottom and adjust the configuration."},{"format":"To edit the contents of a page, click on elements and edit/add/delete them as required. To adjust the settings of an element, select it and edit properties it in the bottom toolbox."},{"format":"To attach UI control to your device, add REST API endpoint first, then select a control and set the 'API variable' to that endpoint."},{"format":"To edit the configuration manually, click on the \"export\" button to download wizard.json configuration file. Edit it, and import back."},{"format":"Click on the \"Docs\" toolbar button to view the JSON format details."}]}]}]}]}]},{"title":"Device Settings","icon":"settings","level":3,"classes":"page","layout":[{"classes":"container","css":"flex-wrap:wrap; gap: 0.5rem; align-items: start;","layout":[{"classes":"panel","css":"width: 22rem;","layout":[{"classes":"title","format":"Device Settings"},{"classes":"labeled","layout":[{"classes":"label","format":"String value"},{"type":"input","ref":"settings.string_val"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Double value"},{"type":"input","ref":"settings.double_val"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Integer value"},{"type":"input","ref":"settings.int_val","input":"number"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Integer value"},{"type":"slider","ref":"settings.int_val","min":-10,"max":75,"step":5,"css":"width: 10rem;"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Bool value"},{"type":"toggle","ref":"settings.bool_val"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Dropdown"},{"type":"dropdown","ref":"settings.log_level","options":"${loglevels}","css":"width: 8rem;"}]},{"classes":"labeled","css":"margin-top: 0.25rem; justify-content:end;","layout":[{"type":"savebutton","ref":"settings","title":"save","icon":"save"}]}]},{"classes":"panel","css":"width: 18rem;","layout":[{"classes":"title","format":"Network Settings"},{"classes":"labeled","layout":[{"classes":"label","format":"Enable DHCP"},{"type":"toggle","ref":"network_settings.dhcp"}]},{"classes":"labeled","layout":[{"classes":"label","format":"IP address"},{"type":"input","ref":"network_settings.ip_address","css":"width:8rem;"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Gateway address"},{"type":"input","ref":"network_settings.gw_address","css":"width:8rem;"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Network mask"},{"type":"input","ref":"network_settings.netmask","css":"width:8rem;"}]},{"classes":"labeled","css":"margin-top: 0.25rem; justify-content:end;","layout":[{"type":"savebutton","ref":"network_settings","title":"save","icon":"save"}]}]},{"classes":"panel","css":"width: 18rem;","layout":[{"classes":"title","format":"Device Actions"},{"classes":"labeled","layout":[{"classes":"label","format":"Upload config file"},{"type":"upload","ref":"file_upload","title":"choose file","icon":"ellipsis-horizontal"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Reboot device"},{"type":"action","ref":"reboot","title":"reboot","icon":"reload"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Format SD card"},{"type":"action","ref":"reformat","title":"format","icon":"inbox","params":"{\"card\": 42}","trigger_on_press_and_release":true}]}]}]}]},{"title":"Firmware Update","icon":"import","level":7,"classes":"page","layout":[{"classes":"container","css":"flex-wrap: wrap;","layout":[{"classes":"panel","css":"width: 24rem;","layout":[{"classes":"title","format":"Firmware Update"},{"classes":"labeled","layout":[{"classes":"label","format":"Current firmware version"},{"format":"${state.version}"}]},{"classes":"labeled","layout":[{"classes":"label","format":"Upload new firmware"},{"type":"ota","ref":"firmware_update","title":"select .bin file","icon":"ellipsis-horizontal","accept":".bin"}]}]}]}]},{"classes":"page","title":"Events","icon":"bell","level":3,"layout":[{"classes":"panel","layout":[{"classes":"title","format":"Events"},{"layout":[{"classes":"flex","layout":[{"css":"width: 5rem;","format":"Priority"},{"css":"width: 8rem;","format":"Time"},{"css":"width: 5rem;","format":"Active"},{"css":"width: 8rem;","format":"Message"}]}]},{"layout":[{"classes":"flex","ref":"events","css":"padding:0.1rem 0;border-top:1px solid #eee;","layout":[{"css":"width: 5rem;text-align:center;","format":"${current.priority}","conditions":[{"expr":"current.priority > 1","attrs":{"css":"background:#ffa;"}}]},{"css":"width: 8rem;","format":"${current.timestamp}"},{"css":"width: 5rem;","format":"${current.active}"},{"css":"width: 8rem;","format":"${current.message}"}]}]}]}]},{"classes":"page","title":"Admin Password","icon":"lock","level":7,"layout":[{"classes":"container","css":"flex-wrap: wrap;","layout":[{"classes":"panel","css":"width: 24rem;","layout":[{"classes":"title","format":"Change admin password"},{"classes":"labeled","layout":[{"classes":"label","format":"New password"},{"type":"input","ref":"security.admin_password","input":"password"}]},{"classes":"labeled","css":"margin-top: 0.25rem; justify-content:end;","layout":[{"type":"savebutton","ref":"security","title":"save","icon":"save"}]}]}]}]}]}} |