updating to latest
This commit is contained in:
250
appdaemon/compiled/css/default/hello_application.css
Normal file
250
appdaemon/compiled/css/default/hello_application.css
Normal file
@@ -0,0 +1,250 @@
|
||||
|
||||
html {
|
||||
font-size: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background-color: #222;
|
||||
font-size: 15px;
|
||||
color: #fff;
|
||||
padding: 0;
|
||||
line-height: 1;
|
||||
font-family: 'Helvetica Neue', 'Helvetica', 'Open Sans', 'Arial'
|
||||
}
|
||||
|
||||
b, strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
img, object {
|
||||
max-width: 100%;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;}
|
||||
|
||||
iframe {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, p {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
h1 {
|
||||
margin-bottom: 6px;
|
||||
text-align: center;
|
||||
font-size: 100%;
|
||||
font-weight: 200;
|
||||
}
|
||||
h2 {
|
||||
font-size: 300%;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
}
|
||||
h3 {
|
||||
font-size: 125%;
|
||||
font-weight: 300;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
input {
|
||||
background-color: #444;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.dashboard_main {
|
||||
margin: 0px auto;
|
||||
}
|
||||
|
||||
.gridster {
|
||||
margin: 0px auto;
|
||||
}
|
||||
|
||||
.icon-background {
|
||||
pointer-events: none;
|
||||
width: 100%!important;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
opacity: 0.1;
|
||||
font-size: 1375%;
|
||||
text-align: center;
|
||||
margin-top: 82px;
|
||||
}
|
||||
|
||||
.list-nostyle {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.gridster ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.gs-w {
|
||||
width: 100%;
|
||||
display: table;
|
||||
cursor: pointer;
|
||||
z-index: auto !important;
|
||||
}
|
||||
|
||||
.iframe {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;}
|
||||
|
||||
.widget {
|
||||
padding: 0px 0px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
background-color: #444444;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;}
|
||||
|
||||
.title {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.icon-inactive {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.icon-active {
|
||||
color: #aaff00;
|
||||
}
|
||||
|
||||
|
||||
#container {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.modalDialog {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background: rgba(0,0,0,0.8);
|
||||
z-index: 9999;
|
||||
opacity:0;
|
||||
-webkit-transition: opacity 400ms ease-in;
|
||||
-moz-transition: opacity 400ms ease-in;
|
||||
transition: opacity 400ms ease-in;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.modalDialogOpen {
|
||||
opacity:0.95;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.modalDialogClose {
|
||||
opacity:0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.modalDialog > div {
|
||||
width: 275px;
|
||||
position: relative;
|
||||
margin: 3% auto;
|
||||
padding: 5px 20px 13px 20px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.modalDialogCloseButton {
|
||||
line-height: 50px;
|
||||
position: absolute;
|
||||
right: -25px;
|
||||
text-align: center;
|
||||
top: -20px;
|
||||
width: 50px;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
-webkit-border-radius: 25px;
|
||||
-moz-border-radius: 25px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
.modalDialogCloseButton:hover { background: #444; }
|
||||
|
||||
.widget-basedisplay-default-label .unit {
|
||||
font-size: 225%;
|
||||
font-weight: 400;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-left: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-label .value {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-label .valueunit {
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-label .title {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-label .title2 {
|
||||
position: absolute;
|
||||
top: 23px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-label .state_text {
|
||||
position: absolute;
|
||||
bottom: -3px;
|
||||
width: 100%;
|
||||
}
|
||||
.widget-baseclock-default-clock-clock.date {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
.widget-baseclock-default-clock-clock.time {
|
||||
position: absolute;
|
||||
top: 45px;
|
||||
width: 100%;
|
||||
}
|
||||
324
appdaemon/compiled/css/default/house_application.css
Normal file
324
appdaemon/compiled/css/default/house_application.css
Normal file
@@ -0,0 +1,324 @@
|
||||
|
||||
html {
|
||||
font-size: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background-color: #222;
|
||||
font-size: 15px;
|
||||
color: #fff;
|
||||
padding: 0;
|
||||
line-height: 1;
|
||||
font-family: 'Helvetica Neue', 'Helvetica', 'Open Sans', 'Arial'
|
||||
}
|
||||
|
||||
b, strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
img, object {
|
||||
max-width: 100%;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;}
|
||||
|
||||
iframe {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, p {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
h1 {
|
||||
margin-bottom: 6px;
|
||||
text-align: center;
|
||||
font-size: 100%;
|
||||
font-weight: 200;
|
||||
}
|
||||
h2 {
|
||||
font-size: 300%;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
}
|
||||
h3 {
|
||||
font-size: 125%;
|
||||
font-weight: 300;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
input {
|
||||
background-color: #444;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.dashboard_main {
|
||||
margin: 0px auto;
|
||||
}
|
||||
|
||||
.gridster {
|
||||
margin: 0px auto;
|
||||
}
|
||||
|
||||
.icon-background {
|
||||
pointer-events: none;
|
||||
width: 100%!important;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
opacity: 0.1;
|
||||
font-size: 1375%;
|
||||
text-align: center;
|
||||
margin-top: 82px;
|
||||
}
|
||||
|
||||
.list-nostyle {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.gridster ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.gs-w {
|
||||
width: 100%;
|
||||
display: table;
|
||||
cursor: pointer;
|
||||
z-index: auto !important;
|
||||
}
|
||||
|
||||
.iframe {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;}
|
||||
|
||||
.widget {
|
||||
padding: 0px 0px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
background-color: #444444;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;}
|
||||
|
||||
.title {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.icon-inactive {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.icon-active {
|
||||
color: #aaff00;
|
||||
}
|
||||
|
||||
|
||||
#container {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.modalDialog {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background: rgba(0,0,0,0.8);
|
||||
z-index: 9999;
|
||||
opacity:0;
|
||||
-webkit-transition: opacity 400ms ease-in;
|
||||
-moz-transition: opacity 400ms ease-in;
|
||||
transition: opacity 400ms ease-in;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.modalDialogOpen {
|
||||
opacity:0.95;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.modalDialogClose {
|
||||
opacity:0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.modalDialog > div {
|
||||
width: 275px;
|
||||
position: relative;
|
||||
margin: 3% auto;
|
||||
padding: 5px 20px 13px 20px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.modalDialogCloseButton {
|
||||
line-height: 50px;
|
||||
position: absolute;
|
||||
right: -25px;
|
||||
text-align: center;
|
||||
top: -20px;
|
||||
width: 50px;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
-webkit-border-radius: 25px;
|
||||
-moz-border-radius: 25px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
.modalDialogCloseButton:hover { background: #444; }
|
||||
|
||||
.widget-baseclock-default-clock-clock.date {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
.widget-baseclock-default-clock-clock.time {
|
||||
position: absolute;
|
||||
top: 45px;
|
||||
width: 100%;
|
||||
}
|
||||
.widget-basedisplay-default-outside-temp .unit {
|
||||
font-size: 225%;
|
||||
font-weight: 400;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-left: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-outside-temp .value {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-outside-temp .valueunit {
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-outside-temp .title {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-outside-temp .title2 {
|
||||
position: absolute;
|
||||
top: 23px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.widget-basedisplay-default-outside-temp .state_text {
|
||||
position: absolute;
|
||||
bottom: -3px;
|
||||
width: 100%;
|
||||
}
|
||||
.widget-baseclimate-default-inside-temp .title {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .title2 {
|
||||
position: absolute;
|
||||
top: 23px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .level {
|
||||
font-size: 250%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .units {
|
||||
font-size: 100%;
|
||||
font-weight: 400;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-left: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .levelunits {
|
||||
position: absolute;
|
||||
top: 43px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .secondary-icon {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
font-size: 20px;
|
||||
width: 32px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .level2 {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .units2 {
|
||||
font-size: 65%;
|
||||
font-weight: 400;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .levelunits2 {
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
.widget-baseclimate-default-inside-temp .secondary-icon.plus {
|
||||
right: 24px;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .secondary-icon.plus i {
|
||||
padding-top: 10px;
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .secondary-icon.minus {
|
||||
left: 8px;
|
||||
}
|
||||
|
||||
.widget-baseclimate-default-inside-temp .secondary-icon.minus i {
|
||||
padding-top: 10px;
|
||||
padding-right: 30px;
|
||||
}
|
||||
6
appdaemon/compiled/html/default/hello_body.html
Normal file
6
appdaemon/compiled/html/default/hello_body.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<! body tags ->
|
||||
|
||||
|
||||
|
||||
<! body tags go here ->
|
||||
|
||||
6
appdaemon/compiled/html/default/hello_head.html
Normal file
6
appdaemon/compiled/html/default/hello_head.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<! head tags ->
|
||||
|
||||
|
||||
|
||||
<! head tags go here ->
|
||||
|
||||
6
appdaemon/compiled/html/default/house_body.html
Normal file
6
appdaemon/compiled/html/default/house_body.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<! body tags ->
|
||||
|
||||
|
||||
|
||||
<! body tags go here ->
|
||||
|
||||
6
appdaemon/compiled/html/default/house_head.html
Normal file
6
appdaemon/compiled/html/default/house_head.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<! head tags ->
|
||||
|
||||
|
||||
|
||||
<! head tags go here ->
|
||||
|
||||
3115
appdaemon/compiled/javascript/application.js
Normal file
3115
appdaemon/compiled/javascript/application.js
Normal file
File diff suppressed because it is too large
Load Diff
134
appdaemon/compiled/javascript/default/hello_init.js
Normal file
134
appdaemon/compiled/javascript/default/hello_init.js
Normal file
@@ -0,0 +1,134 @@
|
||||
var myDeviceID;
|
||||
$(function(){ //DOM Ready
|
||||
|
||||
function navigate(url)
|
||||
{
|
||||
window.location.href = url;
|
||||
}
|
||||
|
||||
$(document).attr("title", "Hello Panel");
|
||||
content_width = (120 + 5) * 8 + 5
|
||||
$('.gridster').width(content_width)
|
||||
$(".gridster ul").gridster({
|
||||
widget_margins: [5, 5],
|
||||
widget_base_dimensions: [120, 120],
|
||||
avoid_overlapped_widgets: true,
|
||||
max_rows: 15,
|
||||
max_size_x: 8,
|
||||
shift_widgets_up: false
|
||||
}).data('gridster').disable();
|
||||
|
||||
// Add Widgets
|
||||
|
||||
var gridster = $(".gridster ul").gridster().data('gridster');
|
||||
|
||||
gridster.add_widget('<li><div data-bind="attr: {style: widget_style}" class="widget widget-basedisplay-default-label" id="default-label"><h1 class="title" data-bind="text: title, attr:{ style: title_style}"></h1><h1 class="title2" data-bind="text: title2, attr:{ style: title2_style}"></h1><div class="valueunit" data-bind="attr:{ style: container_style}"><h2 class="value" data-bind="html: value, attr:{ style: value_style}"></h2><p class="unit" data-bind="html: unit, attr:{ style: unit_style}"></p></div><h1 class="state_text" data-bind="text: state_text, attr: {style: state_text_style}"></h1></div></li>', 2, 2, 1, 1)
|
||||
|
||||
gridster.add_widget('<li><div data-bind="attr: {style: widget_style}" class="widget widget-baseclock-default-clock-clock" id="default-clock-clock"><h1 class="date"data-bind="text: date, attr: {style: date_style}"></h1><h2 class="time" data-bind="text: time, attr: {style: time_style}"></h2></div></li>', 1, 1, 3, 1)
|
||||
|
||||
|
||||
|
||||
var widgets = {}
|
||||
// Initialize Widgets
|
||||
|
||||
widgets["default-label"] = new basedisplay("default-label", "", "default", {'widget_type': 'basedisplay', 'fields': {'title': '', 'title2': '', 'value': 'Hello World', 'unit': '', 'state_text': ''}, 'static_css': {'title_style': 'color: #fff;', 'title2_style': 'color: #fff;', 'unit_style': '', 'value_style': 'color: #fff;', 'state_text_style': 'color: #fff;', 'widget_style': 'background-color: #444;', 'container_style': ''}, 'css': {}, 'icons': [], 'static_icons': [], 'namespace': 'default'})
|
||||
|
||||
widgets["default-clock-clock"] = new baseclock("default-clock-clock", "", "default", {'widget_type': 'baseclock', 'fields': {'date': '', 'time': ''}, 'static_css': {'date_style': 'color: #fff;', 'time_style': 'color: #aa00ff;', 'widget_style': 'background-color: #444;'}, 'static_icons': [], 'icons': [], 'css': {}, 'entity': 'clock.clock', 'title_is_friendly_name': 1, 'namespace': 'default'})
|
||||
|
||||
|
||||
// Setup click handler to cancel timeout navigations
|
||||
|
||||
$( ".gridster" ).click(function(){
|
||||
clearTimeout(myTimeout);
|
||||
if (myTimeoutSticky) {
|
||||
myTimeout = setTimeout(function() { navigate(myTimeoutUrl); }, myTimeoutDelay);
|
||||
}
|
||||
});
|
||||
|
||||
// Set up timeout
|
||||
|
||||
var myTimeout;
|
||||
var myTimeoutUrl;
|
||||
var myTimeoutDelay;
|
||||
var myTimeoutSticky = 0;
|
||||
if (location.search != "")
|
||||
{
|
||||
console.log("begin")
|
||||
var query = location.search.substr(1);
|
||||
var result = {};
|
||||
query.split("&").forEach(function(part) {
|
||||
var item = part.split("=");
|
||||
result[item[0]] = decodeURIComponent(item[1]);
|
||||
});
|
||||
|
||||
if ("deviceid" in result)
|
||||
{
|
||||
myDeviceID = result.deviceid;
|
||||
try
|
||||
{
|
||||
setCookie('ADdevID', myDeviceID);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
myDeviceID = getCookie('ADdevID');
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
console.log(e);
|
||||
myDeviceID = null;
|
||||
}
|
||||
}
|
||||
if ("timeout" in result && "return" in result)
|
||||
{
|
||||
url = result.return
|
||||
argcount = 0
|
||||
for (arg in result)
|
||||
{
|
||||
if (arg != "timeout" && arg != "return" && arg != "sticky")
|
||||
{
|
||||
if (argcount == 0)
|
||||
{
|
||||
url += "?";
|
||||
}
|
||||
else
|
||||
{
|
||||
url += "&";
|
||||
}
|
||||
argcount ++;
|
||||
url += arg + "=" + result[arg]
|
||||
}
|
||||
}
|
||||
if ("sticky" in result)
|
||||
{
|
||||
myTimeoutSticky = (result.sticky == "1");
|
||||
}
|
||||
myTimeoutUrl = url;
|
||||
myTimeoutDelay = result.timeout * 1000;
|
||||
myTimeout = setTimeout(function() { navigate(url); }, result.timeout * 1000);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
myDeviceID = getCookie('ADdevID');
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
console.log(e);
|
||||
myDeviceID = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Start listening for AD Events
|
||||
|
||||
window.dashstream = new DashStream("ws", location.protocol, document.domain, location.port, "Hello Panel", widgets);
|
||||
|
||||
});
|
||||
138
appdaemon/compiled/javascript/default/house_init.js
Normal file
138
appdaemon/compiled/javascript/default/house_init.js
Normal file
@@ -0,0 +1,138 @@
|
||||
var myDeviceID;
|
||||
$(function(){ //DOM Ready
|
||||
|
||||
function navigate(url)
|
||||
{
|
||||
window.location.href = url;
|
||||
}
|
||||
|
||||
$(document).attr("title", "Main Panel");
|
||||
content_width = (120 + 5) * 8 + 5
|
||||
$('.gridster').width(content_width)
|
||||
$(".gridster ul").gridster({
|
||||
widget_margins: [5, 5],
|
||||
widget_base_dimensions: [120, 120],
|
||||
avoid_overlapped_widgets: true,
|
||||
max_rows: 15,
|
||||
max_size_x: 8,
|
||||
shift_widgets_up: false
|
||||
}).data('gridster').disable();
|
||||
|
||||
// Add Widgets
|
||||
|
||||
var gridster = $(".gridster ul").gridster().data('gridster');
|
||||
|
||||
gridster.add_widget('<li><div data-bind="attr: {style: widget_style}" class="widget widget-baseclock-default-clock-clock" id="default-clock-clock"><h1 class="date"data-bind="text: date, attr: {style: date_style}"></h1><h2 class="time" data-bind="text: time, attr: {style: time_style}"></h2></div></li>', 2, 2, 1, 1)
|
||||
|
||||
gridster.add_widget('<li><div data-bind="attr: {style: widget_style}" class="widget widget-basedisplay-default-outside-temp" id="default-outside-temp"><h1 class="title" data-bind="text: title, attr:{ style: title_style}"></h1><h1 class="title2" data-bind="text: title2, attr:{ style: title2_style}"></h1><div class="valueunit" data-bind="attr:{ style: container_style}"><h2 class="value" data-bind="html: value, attr:{ style: value_style}"></h2><p class="unit" data-bind="html: unit, attr:{ style: unit_style}"></p></div><h1 class="state_text" data-bind="text: state_text, attr: {style: state_text_style}"></h1></div></li>', 1, 1, 3, 1)
|
||||
|
||||
gridster.add_widget('<li><div data-bind="attr: {style: widget_style}" class="widget widget-baseclimate-default-inside-temp" id="default-inside-temp"><h1 class="title" data-bind="text: title, attr:{style: title_style}"></h1><h1 class="title2" data-bind="text: title2, attr:{style: title2_style}"></h1><div class="levelunits"><h2 class="level" data-bind="text: level, attr:{ style: level_style}"></h2><p class="units" data-bind="html: units, attr:{ style: unit_style}"></p></div><div class="levelunits2"><p class="level2" data-bind="text: level2, attr:{style: level2_style}"></p><p class="units2" data-bind="html: units, attr:{style: unit2_style}"></p></div><p class="secondary-icon minus"><i data-bind="attr: {class: icon_down, style: level_down_style}" id="level-down"></i></p><p class="secondary-icon plus"><i data-bind="attr: {class: icon_up, style: level_up_style}" id="level-up"></i></p></div></li>', 1, 1, 4, 1)
|
||||
|
||||
|
||||
|
||||
var widgets = {}
|
||||
// Initialize Widgets
|
||||
|
||||
widgets["default-clock-clock"] = new baseclock("default-clock-clock", "", "default", {'widget_type': 'baseclock', 'fields': {'date': '', 'time': ''}, 'static_css': {'date_style': 'color: #fff;', 'time_style': 'color: #aa00ff;', 'widget_style': 'background-color: #444;'}, 'static_icons': [], 'icons': [], 'css': {}, 'entity': 'clock.clock', 'title_is_friendly_name': 1, 'use_comma': 0, 'precision': 1, 'use_hass_icon': 1, 'namespace': 'default'})
|
||||
|
||||
widgets["default-outside-temp"] = new basedisplay("default-outside-temp", "", "default", {'widget_type': 'basedisplay', 'entity': 'sensor.thermostat_outside_temperature', 'entity_to_sub_entity_attribute': '', 'sub_entity': '', 'sub_entity_to_entity_attribute': '', 'fields': {'title': 'Outside Temperature', 'title2': '', 'value': '', 'unit': '', 'state_text': ''}, 'static_css': {'title_style': 'color: #fff;', 'title2_style': 'color: #fff;', 'state_text_style': 'color: #fff;font-size: 100%;', 'widget_style': 'background-color: #444;', 'container_style': ''}, 'css': {'value_style': 'color: #00aaff;font-size: 250%;', 'text_style': 'color: #fff;font-size: 100%;', 'unit_style': 'color: #00aaff;font-size: 100%;'}, 'icons': [], 'static_icons': [], 'units': '°F', 'precision': 1, 'use_comma': 0, 'use_hass_icon': 1, 'namespace': 'default'})
|
||||
|
||||
widgets["default-inside-temp"] = new baseclimate("default-inside-temp", "", "default", {'widget_type': 'baseclimate', 'entity': 'climate.home', 'post_service': {'service': 'climate/set_temperature', 'entity_id': 'climate.home'}, 'fields': {'title': 'Thermostat', 'title2': '', 'units': '', 'level': '', 'level2': ''}, 'icons': [], 'css': {}, 'static_icons': {'icon_up': 'fas-plus', 'icon_down': 'fas-minus'}, 'static_css': {'title_style': 'color: #fff;', 'title2_style': 'color: #fff;', 'level_style': 'color: #00aaff;', 'level2_style': 'color: #00aaff;', 'level_up_style': 'color: #888;', 'level_down_style': 'color: #888;', 'widget_style': 'background-color: #444;', 'unit_style': 'color: #00aaff;', 'unit2_style': 'color: #00aaff;'}, 'use_comma': 0, 'precision': 1, 'use_hass_icon': 1, 'namespace': 'default'})
|
||||
|
||||
|
||||
// Setup click handler to cancel timeout navigations
|
||||
|
||||
$( ".gridster" ).click(function(){
|
||||
clearTimeout(myTimeout);
|
||||
if (myTimeoutSticky) {
|
||||
myTimeout = setTimeout(function() { navigate(myTimeoutUrl); }, myTimeoutDelay);
|
||||
}
|
||||
});
|
||||
|
||||
// Set up timeout
|
||||
|
||||
var myTimeout;
|
||||
var myTimeoutUrl;
|
||||
var myTimeoutDelay;
|
||||
var myTimeoutSticky = 0;
|
||||
if (location.search != "")
|
||||
{
|
||||
console.log("begin")
|
||||
var query = location.search.substr(1);
|
||||
var result = {};
|
||||
query.split("&").forEach(function(part) {
|
||||
var item = part.split("=");
|
||||
result[item[0]] = decodeURIComponent(item[1]);
|
||||
});
|
||||
|
||||
if ("deviceid" in result)
|
||||
{
|
||||
myDeviceID = result.deviceid;
|
||||
try
|
||||
{
|
||||
setCookie('ADdevID', myDeviceID);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
myDeviceID = getCookie('ADdevID');
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
console.log(e);
|
||||
myDeviceID = null;
|
||||
}
|
||||
}
|
||||
if ("timeout" in result && "return" in result)
|
||||
{
|
||||
url = result.return
|
||||
argcount = 0
|
||||
for (arg in result)
|
||||
{
|
||||
if (arg != "timeout" && arg != "return" && arg != "sticky")
|
||||
{
|
||||
if (argcount == 0)
|
||||
{
|
||||
url += "?";
|
||||
}
|
||||
else
|
||||
{
|
||||
url += "&";
|
||||
}
|
||||
argcount ++;
|
||||
url += arg + "=" + result[arg]
|
||||
}
|
||||
}
|
||||
if ("sticky" in result)
|
||||
{
|
||||
myTimeoutSticky = (result.sticky == "1");
|
||||
}
|
||||
myTimeoutUrl = url;
|
||||
myTimeoutDelay = result.timeout * 1000;
|
||||
myTimeout = setTimeout(function() { navigate(url); }, result.timeout * 1000);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
myDeviceID = getCookie('ADdevID');
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
console.log(e);
|
||||
myDeviceID = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Start listening for AD Events
|
||||
|
||||
window.dashstream = new DashStream("ws", location.protocol, document.domain, location.port, "Main Panel", widgets);
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user