// ==UserScript==
// @name Growatt Device History
// @namespace http://tampermonkey.net/
// @version 0.3
// @description Adds a button on the main screen under devices to access the detailed historical data
// @author You
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @match http*://*.growatt.com/index
// @icon https://server-us.growatt.com/v3/images/favicon/favicon.ico
// @grant none
// ==/UserScript==
(function() {
'use strict';
/* globals waitForKeyElements */
var counter = 0;
function createHistoryButton(device_sn) {
var historyButton=document.createElement("input");
historyButton.setAttribute("device_sn", device_sn);
historyButton.type="button";
historyButton.value="Get Historical Data";
historyButton.setAttribute("style", "font-size:18px;position:relative;text-align:center");
historyButton.addEventListener('click', function(){showHistory(device_sn);});
return historyButton;
}
function insertButton(jNode){
var devices_div = jNode.find("tr:nth-child(1) > td:nth-child(2)")
var device_sn = jNode.find("tr:nth-child(2) > td:nth-child(2) > span").text()
devices_div.html(createHistoryButton(device_sn));
}
waitForKeyElements ("#tb_device_con > div", insertButton);
function showHistory(device_sn){
var inv = window.INVS[device_sn];
if(inv.deviceTypeName=="inv"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_inverterHistory",
title:"History Data("+inv.sn+")",
url:"/device/getInverterHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_inverterHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_inverterHistory_init(did,dialog,inv.sn);
}
});
}else if(inv.deviceTypeName=="max"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_maxHistory",
title:"History Data("+inv.sn+")",
url:"/device/getMAXHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_maxHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_maxHistory_init(did,dialog,inv.sn,inv.deviceType);
}
});
}else if(inv.deviceTypeName=="storage"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_storageHistory",
title:"History Data("+inv.sn+")",
url:"/device/getStorageHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_storageHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_storageHistory_init(did,dialog,inv.sn,inv.deviceType);
}
});
}else if(inv.deviceTypeName=="mix"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_mixHistory",
title:"History Data("+inv.sn+")",
url:"/device/getMIXHisPage?mixSn="+inv.sn,
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_mixHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_mixHistory_init(did,dialog,inv.sn);
}
});
}else if(inv.deviceTypeName=="pcs"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_pcsHistory",
title:"History Data("+inv.sn+")",
url:"/device/getPCSHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_pcsHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_pcsHistory_init(did,dialog,inv.sn);
}
});
}else if(inv.deviceTypeName=="hps"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_hpsHistory",
title:"History Data("+inv.sn+")",
url:"/device/getHPSHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_hpsHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_hpsHistory_init(did,dialog,inv.sn);
}
});
}else if(inv.deviceTypeName=="spa"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_spaHistory",
title:"History Data("+inv.sn+")",
url:"/device/getSPAHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_spaHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_spaHistory_init(did,dialog,inv);
}
});
}else if(inv.deviceTypeName=="tlx"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_tlxHistory",
title:"History Data("+inv.sn+")",
url:"/device/getTLXHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_tlxHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_tlxHistory_init(did,dialog,inv);
}
});
}else if(inv.deviceTypeName=="jlInv"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_jlInvHistory",
title:"History Data("+inv.sn+")",
url:"/device/getJlInvHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_jlInvHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_jlInvHistory_init(did,dialog,inv);
}
});
}else if(inv.deviceTypeName=="jfyInv"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_jfyInvHistory",
title:"History Data("+inv.sn+")",
url:"/device/getJfyInvHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_jfyInvHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_jfyInvHistory_init(did,dialog,inv);
}
});
}else if(inv.deviceTypeName=="pbd"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_pbdHistory",
title:"History Data("+inv.sn+")",
url:"/device/getPBDHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_pbdHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_pbdHistory_init(did,dialog,inv);
}
});
}else if(inv.deviceTypeName=="eybondInv"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_eybondInvHistory",
title:"History Data("+inv.sn+")",
url:"/device/getEybondInvHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_eybondInvHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_eybondInvHistory_init(did,dialog,inv.sn);
}
});
}else if(inv.deviceTypeName=="igenInv"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_igenInvHistory",
title:"History Data("+inv.sn+")",
url:"/device/getIgenInvHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_igenInvHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_igenInvHistory_init(did,dialog,inv.sn);
}
});
}else if(inv.deviceTypeName=="pumper"){
window.comm.dialogUrl({
skin:"noPadding",
id:"dialog_pumperHistory",
title:"History Data("+inv.sn+")",
url:"/device/getPumperHisPage",
btns:[[window.comm.getI18n("no-more"),function(did,dialog){window.dialog_pumperHistory_search_More(did,dialog);},false,"btn_more dis"],['i18n_common_cancel',window.comm.dialogClose]],
success:function(did,dialog){
window.dialog_pumperHistory_init(did,dialog,inv.sn);
}
});
}};})();