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

Плагины для программы MobileBalance
Домжилсервис (горячая вода)
Тип плагина: Операторы
Версия: 1.1
Скачать плагин с открытым исходым кодом - dgs_water.jsmb

В качестве логина надо использовать лицевой счет, в качестве пароля - пароль в личный кабинет

AnyString: Новые показания из файла
UserName: Адрес
LicSchet: Счет
Balance: Баланс
TarifPlan: Текущие показания

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

function main(){

var p = 0;
    // Разбираем файл с новыми показаниями
    ngvs=nhvs=0;
    document.location="http://home/meters.txt?" + 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="Новые показания: " + nhvs + "/" + ngvs;

    // Заходим на главную страницу
    var url="https://api.sm-center.ru/dgservicnew/auth/login";
	xmlhttp = external.getXmlHttp();
	xmlhttp.open('POST', url, false);
	xmlhttp.setRequestHeader('Content-Type', 'application/json');
	xmlhttp.send('{phone: "' + request.loginValue + '", password: "' + request.passwValue + '"}');
	if(xmlhttp.status != 200)
	{
		return;
	}

    // Собираем данные
    var url="https://api.sm-center.ru/dgservicnew/Accounting/Info";
	xmlhttp = external.getXmlHttp();
	xmlhttp.open('GET', url, false);
	xmlhttp.send(null);
	if(xmlhttp.status != 200)
	{
		return;
	}

    // Информацию успешно получили. Преобразуем ее в JSON-объект
    eval("var info = "+xmlhttp.responseText);

    response.UserName = info.Data[0].Address;
    response.LicSchet = info.Data[0].Ident;
    response.Balance = -info.Data[0].Sum;

    // Собираем показания
    var url="https://api.sm-center.ru/dgservicnew/Meters/List";
	xmlhttp = external.getXmlHttp();
	xmlhttp.open('GET', url, false);
	xmlhttp.send(null);
	if(xmlhttp.status != 200)
	{
		return;
	}

    // Информацию успешно получили. Преобразуем ее в JSON-объект
    eval("var info = "+xmlhttp.responseText);

    gvs = tgvs = info.Data[0].Values[0].Value;
    hvs = thvs = info.Data[1].Values[0].Value;

    // Вводим новые показания ГВС
    d = new Date().getDate();
    if ((d >= 15) && (d <= 25) && ((ngvs > tgvs) || (nhvs > thvs))) {

      gvsid = info.Data[0].ID;
      hvsid = info.Data[1].ID;

      if (ngvs > tgvs) {
      var url="https://api.sm-center.ru/dgservicnew/Meters/SaveMeterValue";
	xmlhttp = external.getXmlHttp();
	xmlhttp.open('POST', url, false);
	xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
	xmlhttp.send('{MeterId: ' + gvsid + ', Value: ' + ngvs + '}');
	if(xmlhttp.status != 200)
	{
		response.TarifPlanv = 'gvs.html.status = ' + xmlhttp.status;
		return;
	}
      }	

      if (nhvs > thvs) {
      var url="https://api.sm-center.ru/dgservicnew/Meters/SaveMeterValue";
	xmlhttp = external.getXmlHttp();
	xmlhttp.open('POST', url, false);
	xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
	xmlhttp.send('{MeterId: ' + hvsid + ', Value: ' + nhvs + '}');
	if(xmlhttp.status != 200)
	{
		response.TarifPlan = 'hvs.html.status = ' + xmlhttp.status;
		return;
	}
      }
      response.TarifPlan="ХВС/ГВС: " + thvs + "/" + tgvs + " (+)";
    } else {
      response.TarifPlan="ХВС/ГВС: " + thvs + "/" + tgvs;
    }
};

main();