<?php
require_once __DIR__ . '/inc/bootstrap.php';
header('Content-Type: text/plain');
$prometheusObject = new Prometheus();


$dataFile = STORAGE_DIR . '/voltageNodeMCU.txt';
$voltage = 0;

if (file_exists($dataFile) && (time() - filectime($dataFile) < 60)) {
	$voltage = file_get_contents($dataFile);
}

$prometheusObject->add('voltage', $voltage);

/** Получение данных с Dessmonitor */
$anenjiData = unserialize(file_get_contents(__DIR__ . '/data/anenj.txt'));

$prometheusObject->add('anenj_bat_voltage', $anenjiData['anenjBatVoltage'] ?? 0)
                 ->add('anenj_pv_voltage', $anenjiData['anenjPvVoltage'] ?? 0)
                 ->add('anenj_pv_current', $anenjiData['anenjPvCurrent'] ?? 0)
                 ->add('anenj_temp_dc', $anenjiData['anenjTempDC'] ?? 0)
                 ->add('anenj_temp_inv', $anenjiData['anenjTempINV'] ?? 0);


/** Получение данных с Yandex IoT */
$yandexObject = (new YandexIoT(YANDEX_CLIENT_ID, YANDEX_CLIENT_SECRET))->initFromFile(STORAGE_YANDEX_FILE);
$yandexData   = $yandexObject->getProps('c42a0011-71cc-4d6c-bef9-93833b2ae67f');
$prometheusObject->add('yandex_home_voltage', $yandexData['voltage'] ?? 0);


/** Отправка данных в народный мониторинг */
$flagNarodFile = STORAGE_RUN_DIR . '/narodmon.run';
if (!file_exists($flagNarodFile)) {
    file_put_contents($flagNarodFile, time());
}
$sendToNarodMon = false;
if ($voltage !== 0 && (time() - filectime($flagNarodFile) > 60)) {
	file_put_contents($flagNarodFile, time());
	$sendToNarodMon = true;

    (new Narodmon(NARODMON_DEVICE_ID))->add('V1', $voltage)
        ->add('U2', $anenjData['anenjBatVoltage'] ?? 0)
        ->add('U3', $anenjData['anenjPvVoltage'] ?? 0)
        ->add('T2', $anenjData['anenjTempDC'] ?? 0)
        ->add('T3', $anenjData['anenjTempINV'] ?? 0)
        ->add('I1', $anenjData['anenjPvCurrent'] ?? 0)
        ->send();
}

$prometheusObject->add('narodmon', $sendToNarodMon ? 1 : 0);
$prometheusObject->showData();
