Користувальницькькі налаштування

Налаштування сайту


generators

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
generators [2025/12/12 17:32]
nightfly
generators [2026/03/12 16:18] (поточний)
nightfly
Рядок 115: Рядок 115:
 ubapi "gencontrol&stop=1" ubapi "gencontrol&stop=1"
 </code> </code>
 +
 +
 +====== Моніторинг рівня пального ======
 +
 +Можна за допомогою [[watchdog|Собаки-спостерігаки]] та [[onepunch|One-Punch скрипта]] хоча б якось так:
 +
 +<code php>
 +  $alertPercent=50;
 +
 +    $watchdogCallbackResult='';
 +    $generators=new Generators();
 +    $alertsCount=0;
 +    $allDevices=$generators->getAllDevices();
 +    if (!empty($allDevices)) {
 +        $alertsList='';
 +        $allDevicesFuelPercent=$generators->getAllDevicesFuelPercent();
 +        if (!empty($allDevicesFuelPercent)) {
 +            foreach ($allDevicesFuelPercent as $deviceId => $fuelPercent) {
 +                if ($fuelPercent < $alertPercent) {
 +                    $generatorLabel= $allDevices[$deviceId]['address'];
 +                    $alertsList.= $generatorLabel.' ';
 +                    $alertsCount++;
 +                }
 +            }
 +
 +            if ($alertsCount > 0) {
 +                $watchdogCallbackResult.='Халепа! ';
 +                if ($alertsCount > 1) {
 +                    $watchdogCallbackResult.='В генераторах ';
 +                } else {
 +                    $watchdogCallbackResult.='В генераторі ';
 +                }
 +                $watchdogCallbackResult.=$alertsList;
 +                if ($alertsCount > 1) {
 +                    $watchdogCallbackResult.=' - низькі рівні пального';
 +                } else {
 +                    $watchdogCallbackResult.=' - низький рівень пального';
 +                }
 +            } else {
 +                $watchdogCallbackResult.='Все добре - всі генератори мають нормальний рівень пального';
 +            }
 +        } else {
 +            $watchdogCallbackResult.='Щось пішло не за планом - немає даних про рівень пального';
 +        }
 +    } else {
 +        $watchdogCallbackResult.='Халепа - немає жодних генераторів';
 +    }
 +
 +    deb($watchdogCallbackResult);
 +</code>
 +
 +Як завжди, все обмежується тільки вашими потребами та креативністю. Базово можете використовувати собі наступні публічні методи класу [[https://ubilling.net.ua/api_doc/classes/Generators.xhtml|Generators]]:
 +
 +**getAllDevices** - Повертає список всіх генераторів та їх базових параметрів
 +
 +<code php>
 +Array
 +(
 +    [1] => Array
 +        (
 +            [id] => 1
 +            [running] => 0
 +            [model] => GEP 50
 +            [fuel] => diesel
 +            [tankvolume] => 200
 +            [consumption] => 3.2
 +            [address] => Пліткарська 964
 +            [geo] => 48.606571, 24.420762
 +            [motohours] => 8754.24
 +            [serviceinterval] => 250
 +            [intank] => 105.704
 +            [opalias] => genchk30
 +        )
 +
 +    [2] => Array
 +        (
 +        ....
 +</code>
 +
 +**getAllDevicesFuelPercent** - повертає залишок пального в баку в відсотках
 +
 +<code php>
 +Array
 +(
 +    [1] => 52.85
 +    [2] => 10.3
 +)
 +</code>
 +
 +**getAllDevicesFuelLevel** - повертає залишок пального в баку в літрах
 +
 +
 +<code php>
 +Array
 +(
 +    [1] => 105.704
 +    [2] => 20.5986
 +)
 +</code>
 +
 +Залишки "в баку" можуть не відповідати вказаним в полі intank у випадку, якщо генератор в даний момент запущено. В цьому випадку "залишки" розраховуються автоматично відносно часу від його запуску.
generators.1765553574.txt.gz · Востаннє змінено: 2025/12/12 17:32 повз nightfly