Как определить статус питания компьютера. Работает от батарей или электросети.

ViktorXY2015

Новичок
Как при помощи PHP определить, что компьютер работает от батареи. Или наоборот от электросети...
Спасибо!
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Absinthe, у меня есть стойкое ощущение, что он имел ввиду комп конечного пользователя. Там конечно для этого есть Battery API, но пхп там естественно, непричем тоже.
 

WMix

герр M:)ller
Партнер клуба
не, не то, прочел до конца... (( ничего не получится :)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
За 5 баксов подскажу от сети работает или нет.

PS: moved
 

ViktorXY2015

Новичок
Для NetBSD, но можно и для Линукса, и даже для Windows.
Это нужно для управления генератором 220V.
Чтоб он не включался сразу после выключения электричества, а подождал некоторое время.

PHP раз в 15 - 30 сек проверяет состояние.
Если скажем 10 раз подряд ответ что от батареи,
то отправляет запрос на wifi реле по http протоколу.

При включении тоже самое, если электричество 5 мин работает то генератор отключается.

Просто когда на автоматике, то включается выключается даже при падении напряжения до 150 вольт.

Хочется сделать систему поумнее.
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
Так бы сразу и сказал, а то мы тут петросяним. Правда, php тут особо никаким местом.

В линуксе можно посмотреть в /proc/acpi/battery/BAT0/state, на любом юниксе можно установить upower. Запускаешь и парсишь его вывод.
 

ViktorXY2015

Новичок
Для NetBSD
решение нашел

netbsd21# apm
Battery charge state: high
Battery remaining: 96 percent
A/C adapter state: connected
Power management enabled
Number of batteries: 1

netbsd21# apm
Battery charge state: high
Battery remaining: 96 percent
A/C adapter state: not connected
Power management enabled
Number of batteries: 1
 

ViktorXY2015

Новичок
Спасибо всем, вроде разобрался как чё.
На NetBSD работает.

Может инфа кому пригодится...
 

fixxxer

К.О.
Партнер клуба
Мне нужно послать запрос по http, если у тебя есть решение попроще поделись.
PHP:
$ while true; do echo -e "HTTP/1.0 200 OK\nContent-Type: text/plain\n\n$(cat /proc/acpi/battery/BAT0/state)" | nc -l 8080 >/dev/null; done
PHP:
$ curl http://127.0.0.1:8080/
present:                 yes
capacity state:          ok
charging state:          charged
present rate:            1528 mW
remaining capacity:      56410 mWh
present voltage:         12532 mV
 

AnrDaemon

Продвинутый новичок
Зачем это ещё и по HTTP делать? Вешаешь скрипт в cron, достающий нужную тебе информацию и выкладывающий её так, чтобы была доступна откуда надо.
 

AnrDaemon

Продвинутый новичок
fixxxer, вот только echo -e непортабельная конструкция. А HTTP протокол на \r\n завязан.
Так что
Код:
printf "%s\r\n" "HTTP/1.0 200 OK" "Content-Type: text/plain" "" "$(cat /proc/acpi/battery/BAT0/state)"
 
Сверху