главная страница
плугины к
 mobilebalance
  оператор utm
  оператор интек-м
  инф.окно интек-м
  оператор инфолайн
  центральный телеграф
  расчетный центр
  расчетный центр (гвс)
  домжилсервис (вода)
  электросеть
  мтс

Плагины для программы MobileBalance
Электросеть (электричество)
Тип плагина: Операторы
Версия: 1.1
Скачать плагин с открытым исходым кодом - elektroset.jsmb
AnyString: Новые показания из файла
UserName: Адрес
LicSchet: Счет
Balance: Баланс электричества по дневному тарифу
Recomend: Баланс электричества по ночному тарифу
TarifPlan: Текущие показания

// Плагин для программы MobileBalance: http://mtsoft.ru/mobilebalance/
//
// Инструкция по использованию:
// 1. зайти в настройки программы MobileBalance, перейти на закладку "Плагины: Операторы", добавить плагин.
// 2. После этого перейти на закладку "Телефоны" и в качестве оператора выбрать оператора с названием, указанным ниже.
//
// FullName  : Электросеть
// ShortName : Эл-ть
// Version   : 1.1
// Author    : Oleg Chervyakov
// Descript  : Электросеть

function main(){

var p = 0;
var ok, i;
var gvs = 0, hvs = 0, ngvs = 0, nhvs = 0;

    // Разбираем файл с новыми показаниями
    document.location="http://home/meters.txt?date=" + new Date();

    if(!external.WaitBrowser) return;
    response.pages[p++]=external.source;
    html=document.body.outerHTML;
    regexp=/день: (\d+)/;
    if (res=regexp.exec(html))
    {
      ngvs=res[1];
    };
    regexp=/ночь: (\d+)/;
    if (res=regexp.exec(html))
    {
      nhvs=res[1];
    };
    response.AnyString="Новые показания: " + ngvs + "/" + nhvs;

    // Заходим на главную страницу
    document.location="https://lkk.oao-elektroset.ru/auth/";
    if(!external.WaitBrowser) return;

    ok = true; i = 0;
    while (ok && i < 20) {
    external.sleep(5000);
    response.pages[p++]=document.documentElement.outerHTML;
    if (document.getElementById("combo-1044-inputEl")) {
      document.getElementById("combo-1044-inputEl").value=request.loginValue;
      document.getElementById("textfield-1048-inputEl").value=request.passwValue;
      external.sleep(5000);
      document.getElementById("button-1051-btnInnerEl").click();

      external.sleep(5000);
    } else { ok = false };
    i++;
    };

    //Собираем данные
    response.pages[p++]=document.documentElement.outerHTML;
    if (document.getElementById("label-1153")) {
      response.LicSchet=document.getElementById("label-1153").text;
    };
    if (document.getElementById("label-1154")) {
      response.UserName=document.getElementById("label-1154").innerHTML;
    };

    gvs = hvs = tgvs = thvs = "";
    d = new Date().getDate();
    if ((d >= 15) && (d <= 25))  {

    //Собираем данные с формы изменения
    document.getElementById("button-1196-btnInnerEl").click();
    ok = true; i = 0;
    while (ok && i < 20) {
      if (document.getElementById("label-1224")) {
        ok = false
        response.Balance=gvs=document.getElementById("label-1224").innerHTML;
        response.Recomend=hvs=document.getElementById("label-1234").innerHTML;
        tgvs=document.getElementById("textfield-1228-inputEl").value;
        thvs=document.getElementById("textfield-1238-inputEl").value;
      if (((ngvs > gvs) && (ngvs > tgvs)) || ((nhvs > hvs) && (nhvs > thvs))) {
        // Вводим новые показания
        document.getElementById("textfield-1228-inputEl").value=ngvs;
        document.getElementById("textfield-1238-inputEl").value=nhvs;
        external.sleep(2000);
        document.getElementById("button-1252-btnInnerEl").click();
        external.sleep(2000);
        response.pages[p++]=document.documentElement.outerHTML;
        document.getElementById("button-1258-btnInnerEl").click();
        external.sleep(2000);

        //Собираем новые данные
        document.getElementById("button-1196-btnInnerEl").click();
        external.sleep(2000);
        response.pages[p++]=document.documentElement.outerHTML;

        tgvs=document.getElementById("textfield-1282-inputEl").value;
        thvs=document.getElementById("textfield-1292-inputEl").value;

      }} else { external.sleep(5000); }
      i++; 
    }} else {

    //Собираем данные с истории операций
    ok = true; i = 0;
    while (ok && i < 20) {

      html=document.documentElement.outerHTML;
      regexp=/id="([^"]*)" [^>]*>Электроэнергия</;
      if (res=regexp.exec(html)) {
        document.getElementById(res[1]).click();

        external.sleep(5000);
        response.pages[p++]=document.documentElement.outerHTML;

        // Забираем информацию в переменную html
        html=document.documentElement.outerHTML;

        //Собираем данные
        regexp=/Переданы показания: день (\d+)/;
        if (res=regexp.exec(html)) {
          ok = false;
          response.Balance=gvs=res[1];
        };
        regexp=/Переданы показания: ночь (\d+)/;
        if (res=regexp.exec(html)) {
          ok = false;
          response.Recomend=hvs=res[1];
        };
      } else { external.sleep(2000); }
      i++;
    }};

    response.TarifPlan="день/ночь: " + tgvs +"/" + thvs;
    //Выход из кабинета
    document.getElementById("label-1019").click();
};

main();