APCSMART(8) NUT Manual APCSMART(8)

apcsmart - درایور دستگاه‌های یوپی‌اس هوشمند APC در NUT

apcsmart -h

apcsmart -a UPS_NAME [-x option=value ...]


نکته

این صفحه راهنما فقط ویژگی‌های مختص سخت‌افزار درایور apcsmart را مستند می‌کند. برای اطلاعات بیشتر درباره درایور اصلی، nutupsdrv(8) را ببینید.

درایور apcsmart باید اکثر مدل‌های Smart-UPS (شامل سری‌های Smart-UPS، Matrix-UPS و Back-UPS در کنار چند مدل دیگر) را شناسایی کند (یا دست‌کم با آن‌ها کار کند).

در حال حاضر می‌توان سخت‌افزارهای APC را تقریباً به چهار دسته تقسیم کرد (توجه داشته باشید که این تقسیم‌بندی به هیچ وجه قطعی نیست و مرزهای میان آن‌ها کاملاً شناور است):

مدل‌های [خیلی] «قدیمی» ([very] "old" models)

این مدل‌ها معمولاً دارای لوگوی قدیمی APC، رنگ سفید و فاقد حافظه EEPROM قابل‌برنامه‌ریزی هستند؛ همچنین آن‌ها را در هیچ کجای سایت APC پیدا نخواهید کرد. پشتیبانی از این مدل‌ها معمولاً بر اساس جدول‌های سازگاری درایور انجام می‌شود، یا اگر مدل (سیستم‌عامل/میان‌افزار) در آن‌ها فهرست نشده باشد — درایور سعی می‌کند از زیرمجموعه بسیار پایه‌ای از ویژگی‌ها پیروی کند، در حالی که همچنان کاربردی باقی بماند. علیرغم نام "smart" (هوشمند)، این مدل‌ها اغلب تمایل دارند عملکردی کاملاً ابتدایی و ساده داشته باشند (بخش زیر درباره رفتار خاموش‌سازی را ببینید).

مدل‌های نمونه:

•Smart-UPS 2000I
•Smart-UPS 900I

مدل‌های «جدید» ("new" models)

این مدل‌ها معمولاً متعلق به اواخر دهه ۱۹۹۰ تا پیش از سال ۲۰۰۹ هستند. آن‌ها اغلب به عنوان «نسل سوم» ("3rd. gen") شناخته می‌شوند. در بیشتر موارد، آن‌ها دارای EEPROM قابل‌برنامه‌ریزی بوده، دستورات و قابلیت‌های پشتیبانی‌شده را گزارش می‌دهند، و باید با درایور apcsmart به خوبی کار کنند.

مدل‌های «میکرولینک» ("microlink" models)

هشدار: این مدل‌ها به صورت بومی توسط apcsmart پشتیبانی نمی‌شوند (یا تا زمان نگارش این متن، توسط apcupsd نیز پشتیبانی نمی‌شوند، اگر برایتان سوال شده باشد). در حدود سال ۲۰۰۷، شرکت APC (اکنون APC Schneider) تصمیم گرفت به ریشه‌های اختصاصی و انحصاری خود بازگردد و تمام مدل‌های جدید (SMT، SMX، SURTD) از پروتکل و کابل‌های کاملاً متفاوتی استفاده می‌کنند. اگر یک یوپی‌اس جدید APC خریداری کرده‌اید — که از کابلی با کانکتور RJ45 در یک سر و DB-9 در سر دیگر استفاده می‌کند — شما چنین مدلی دارید. تنها گزینه شما برای پشتیبانی از آن از طریق NUT خرید یک «کارت ارتباطی موروثی» (legacy communications card) — با شماره قطعه AP9620 است (برای جزئیات بیشتر عبارت AP9620 را در گوگل جستجو کنید). یا اگر این امکان وجود ندارد، به نرم‌افزار رسمی متکی شوید.

به‌روزرسانی: نسخه‌های جدیدتر apcupsd ادعای پشتیبانی از پروتکل‌های جدید APC را مطرح کرده‌اند، بنابراین ارزش بررسی دارد که آیا نرم‌افزار apcupsd با دستگاه شما کار می‌کند و درایور NUT با نام apcupsd-ups می‌تواند آن را به عنوان بخشی از اکوسیستم مدیریت‌شده توسط NUT اداره کند یا خیر.

مدل‌های Microsol

چندین مدل سریال Microsol فروخته‌شده در برزیل با نام تجاری APC Back-UPS بازتولید و عرضه شده‌اند و شماره مدل‌های آن‌ها معمولاً با "BZ" شروع می‌شود. اگر یکی از این "Nobreak"ها را دارید، با درایور apcsmart کار نخواهند کرد — لطفاً به جای آن درایور solis(8) را ببینید.

مدل‌های نمونه:

•Back-UPS BZ1200-BR
•Back-UPS BZ2200BI-BR

نکته دیگری که باید به خاطر داشت این است که پروتکل Smart همان پروتکل USB نیست. اگر یوپی‌اسی با هر دو پورت USB و سریال دارید، بسته به نحوه اتصال آن، به یکی از دو درایور apcsmart یا usbhid-ups نیاز خواهید داشت.

این درایور به صورت پیش‌فرض انتظار دیدن یک کابل 940-0024C یا مشابه آن (کلون) را دارد. می‌توانید با تعریف cable= که در ادامه توضیح داده شده است، به پشتیبانی از کابل دوحالته 940-0095B تغییر وضعیت دهید.

اگر کابل 940-xx24X شما خراب یا مفقود شده است، از این دیاگرام برای ساخت یک نسخه مشابه استفاده کنید:

https://www.networkupstools.org/cables.html#_940_0024c_clone


نکته

بخش "xx" یا "00" برای یک کابل کوتاه است، یا تعداد فوت‌های یک کابل بلندتر. بخش "X" حرفی است که ویرایش جزئی کابل فیزیکی و کانکتورهای آن را نشان می‌دهد ("C" و "E" ویرایش‌های متداول هستند). تمام ویرایش‌های جزئی باید از چینش پایه‌ها (pin-out) و سیم‌بندی یکسانی استفاده کنند.

می‌توانید کابل جایگزین را در ups.conf(5) مشخص کنید:

*cable*=940-0095B

همچنین می‌توانید آن را در خط فرمان با استفاده از گزینه زیر مشخص کنید:

-x *cable*=940-0095B

به صورت پیش‌فرض درایور در حالت استاندارد (canonical mode) کار می‌کند، اما مشخص شده که این مورد در سیستم‌های ویندوز مشکل‌ساز است. علاوه بر این، این احتمال وجود دارد که برخی کارت‌های سریال یا مبدل‌های سریال به USB ناشناخته نیز باعث بروز مشکلاتی شوند. می‌توانید از گزینه ttymode= برای اعمال حالت غیرکانونیکال در ups.conf(5) استفاده کنید:

*ttymode*=raw

همچنین می‌توانید آن را در خط فرمان با استفاده از دستور زیر مشخص کنید:

-x *ttymode*=raw

نکته

هر مقدار دیگری باعث می‌شود درایور در حالت کانونیکال کار کند.

سخت‌افزارهای APC از روش‌های خاموش‌سازی متعددی پشتیبانی می‌کنند که خود این روش‌ها بسته به مدل دستگاه می‌توانند در رفتار تفاوت زیادی داشته باشند.

S (خواب زمستانی نرم - soft hibernate)

این پایه‌ای‌ترین دستور موجود در احتمالاً تمام مدل‌های APC است. این دستور یوپی‌اس را به خواب زمستانی (هایبرنیت) می‌برد و متعاقباً با بازگشت برق شهر، آن را بیدار می‌کند. اگر یوپی‌اس با برق شهر کار کند، این دستور عمل نمی‌کند.

مدل‌های «قدیمی»:

متأسفانه رفتار در اینجا کاملاً ابتدایی است - هنگامی که برق بازمی‌گردد، یوپی‌اس بلافاصله بیدار می‌شود. بدون مهلت زمانی (grace periods)، بدون بررسی شرط حداقل شارژ باتری و غیره. این احتمالاً چیزی نیست که شما می‌خواهید.

مدل‌های «جدید»:

رفتار در اینجا طبق انتظار است — برق پس از پایان مهلت زمانی تعریف‌شده در EEPROM قطع می‌شود. یوپی‌اس پس از بازگشت برق، با سپری شدن تأخیر زمانی تعریف‌شده در EEPROM و در صورتی که حداقل سطح شارژ باتری تعریف‌شده در EEPROM برآورده شده باشد، بیدار خواهد شد. این تأخیر از زمان بازگشت برق محاسبه می‌شود.

CS (معروف به «هک اجبار به باتری» - "force OB hack")

این ترفندی است برای خاموش کردن یوپی‌اس حتی زمانی که روی برق شهر کار می‌کند. بلافاصله قبل از صدور دستور S، دستور «شبیه‌سازی قطعی برق» (simulate power failure) صادر می‌شود. رفتار باقی‌مانده مانند حالت S خواهد بود.

تأخیری بین «شبیه‌سازی قطعی برق» و دستور S وجود دارد — که به صورت پیش‌فرض روی ۳٫۵ ثانیه تنظیم شده است. می‌توانید آن را از طریق گزینه cshdelay کنترل کنید (مقادیر مجاز از ۰ تا ۹٫۹ هستند).

نام این روش از مدل‌های APC CS گرفته شده است، جایی که از چنین ترفندی برای خاموش کردن یوپی‌اس‌ها به شیوه‌ای هماهنگ و تنها با استفاده از S استفاده می‌شد. اگر یوپی‌اس شما از دستور @nnn پشتیبانی می‌کند (و خیلی قدیمی نیست، بخش زیر را ببینید)، بهتر است از آن استفاده کنید.

@nnn (خواب زمستانی سخت - hard hibernate)

این دستور پایه‌ای برای هایبرنیت کردن یوپی‌اس بدون توجه به اینکه روی باتری کار می‌کند یا روی برق شهر است. این گزینه یک آرگومان ۳ رقمی می‌گیرد که می‌تواند برای تعیین تأخیر اضافی بیدار شدن (در واحدهای ۶ دقیقه‌ای) استفاده شود.

مدل‌های «قدیمی»:

متأسفانه رفتار در اینجا نیز مانند S ابتدایی است. یوپی‌اس بدون قید و شرط پس از nnn*6 دقیقه بیدار می‌شود: برایش اهمیتی ندارد که آیا برق بازگشته است یا خیر!

نکته
اگر nnn = 000 باشد، یوپی‌اس دقیقاً هیچ کاری انجام نخواهد داد. در این مدل‌ها، اگر می‌توانید نوع مشکلات برقی که ممکن است در محیط شما رخ دهد را تخمین بزنید، بهتر است nnn > 0 را مشخص کنید.
نکته دیگری که باید درباره مدل‌های «قدیمی» در نظر گرفت — ممکن است اتصال خود را با یوپی‌اس تا زمان بیدار شدن آن از دست بدهید (با دستور S، اتصال سریال زنده نگه داشته می‌شود).

مدل‌های «جدید»:

تمام متغیرهای معمول تعریف‌شده در EEPROM رعایت می‌شوند (دستور S را ببینید). علاوه بر این، اگر nnn > 0 باشد، مقدار nnn*6 دقیقه به تأخیر تعریف‌شده در EEPROM اضافه می‌شود. برعکس آنچه مدل‌های «قدیمی» انجام می‌دادند، یوپی‌اس در صورتی که روی باتری کار کند روشن نخواهد شد — تأخیر ترکیبی از لحظه بازگشت برق محاسبه می‌شود.

ظاهراً مدل‌هایی وجود دارند که به جای ۳ رقم، ۲ رقم می‌گیرند. برای اطمینان، NUT از این تنوع نیز پشتیبانی می‌کند. برای فعال کردن آن باید دقیقاً ۲ رقم ارائه دهید (گزینه awd یا آرگومان یکی از دستورات فوری پشتیبانی‌شده).

K (خاموشی با تأخیر - delayed poweroff)

این یک خاموشی دائمی است — یوپی‌اس به طور خودکار بیدار نخواهد شد. در دستگاه‌های جدیدتر، متغیرهای قابل اعمال در EEPROM رعایت خواهند شد.

Z (خاموشی فوری - instant poweroff)

این نیز یک خاموشی دائمی است — یوپی‌اس به طور خودکار بیدار نخواهد شد. خاموشی بلافاصله اجرا می‌شود.

سه گزینه برای کنترل رفتار خاموش‌سازی استفاده می‌شود.

sdtype=[0-5]

این گزینه یک تک رقم (0-5) را به عنوان آرگومان می‌گیرد. برای جزئیات به بخش زیر مراجعه کنید.

advorder=no|[0-4]+

این گزینه رشته‌ای از ارقام را به عنوان آرگومان می‌گیرد. روش‌های فهرست‌شده به نوبت امتحان می‌شوند تا زمانی که یکی از آن‌ها موفق شود. توجه داشته باشید که معنی ارقام با sdtype متفاوت است. برای جزئیات به بخش زیر مراجعه کنید.

awd=[0-9]{1,3}

این گزینه به شما امکان می‌دهد تأخیر بیدار شدن اضافی مورد استفاده توسط @ را مشخص کنید. اگر دقیقاً ۲ رقم ارائه دهید، درایور حالت ۲ رقمی را امتحان خواهد کرد (برای اطلاعات بیشتر به بخش قبلی مراجعه کنید). در غیر این صورت از حالت استاندارد ۳ رقمی استفاده می‌شود. نکته: واحد زمان ۶ دقیقه است!

به خاطر داشته باشید که sdtype و advorder با یکدیگر مانعة‌الجمع هستند. اگر advorder ارائه شود، sdtype نادیده گرفته می‌شود. اگر advorder روی no تنظیم شود، در عوض از sdtype استفاده می‌شود.

اگر هیچ‌کدام مشخص نشود، NUT مقدار sdtype=0 را فرض خواهد کرد — که عموماً برای هر دستگاهی که بیش از حد قدیمی یا دارای رفتارهای عجیب نباشد، مناسب است.

مقادیر مجاز از ۰ تا ۵ هستند. فقط یکی از آن‌ها را می‌توان مشخص کرد. هر مقدار دیگری باعث خروج apcsmart خواهد شد.

0

صدور دستور هایبرنیت نرم (S) در صورتی که یوپی‌اس روی باتری کار کند، در غیر این صورت صدور دستور هایبرنیت سخت (@)

1

صدور دستور هایبرنیت نرم (S) (در صورت کار روی باتری)، و در صورت شکست آن (یا در صورت کار روی برق شهر) — تلاش برای هایبرنیت سخت (@)

2

صدور دستور خاموشی فوری (Z)

3

صدور دستور خاموشی با تأخیر (K)

4

صدور «هک اجبار به باتری» (CS)

5

صدور دستور هایبرنیت سخت (@)

نکته

تأخیر اضافی بیدار شدن در هایبرنیت سخت را می‌توان توسط گزینه awd تعیین کرد.

آرگومان این گزینه یا کلمه no است، یا رشته‌ای از ۱ تا ۵ رقم در محدوده [0..4]. هر رقم به یکی از روش‌های خاموش‌سازی پشتیبانی‌شده توسط یوپی‌اس‌های APC نگاشت می‌شود. روش‌هایی که به این صورت فهرست می‌شوند به ترتیب بررسی می‌شوند تا زمانی که یکی از آن‌ها موفق شود.

اگر advorder تعریف نشده باشد یا روی no تنظیم شده باشد، به جای آن از sdtype استفاده می‌شود.

نگاشت به شرح زیر است:

0 هایبرنیت نرم (S)
1 هایبرنیت سخت (@)
2 خاموشی با تأخیر (K)
3 خاموشی فوری (Z)
4 «هک اجبار به باتری» (CS)

نکته

تأخیر اضافی بیدار شدن در هایبرنیت سخت را می‌توان توسط گزینه awd تعیین کرد.

دستگاه‌های APC — حتی اگر وضعیت باتری ضعیف (LB) را گزارش دهند — به صورت خودکار وارد وضعیت خاموش‌سازی نمی‌شوند. این به ما کنترل بیشتری در ارتباط با زمان خاموش کردن واقعی منبع تغذیه (PSU) می‌دهد. از نسخه 2.6.2 به بعد، NUT از گزینه ignorelb در بخش درایور در ups.conf(5) پشتیبانی می‌کند. هنگامی که چنین گزینه‌ای فعال باشد، درایور اصلی وضعیت LB گزارش‌شده توسط درایور خاص را نادیده گرفته و تصمیم‌گیری برای شروع خاموش‌سازی را فقط بر اساس دو شرط زیر انجام می‌دهد:

battery.charge < battery.charge.low

یا (OR)

battery.runtime < battery.runtime.low

البته — اگر هر یک از این متغیرها در دسترس نباشند، شرط مربوطه بررسی نمی‌شود. اگر می‌خواهید یکی از شرط‌ها را صراحتاً غیرفعال کنید، کافی است مقدار متغیر سمت راست را بازنویسی (override) کنید تا مقدار شرط همیشه برابر با false ارزیابی شود (حتی می‌توانید اعداد منفی مشخص کنید).

یوپی‌اس‌های APC متغیر battery.charge.low را ندارند — اگر می‌خواهید از چنین شرطی استفاده کنید، باید آن را تعریف کنید (پیشوند override. یا default. را به ابتدای متغیر اضافه کنید).

دستگاه‌های «جدید» دارای متغیر battery.runtime.low هستند، اما بسته به کیفیت باتری، نسخه میان‌افزار، کالیبراسیون و بار کاری یوپی‌اس — این متغیر می‌تواند به میزان قابل توجهی کمتر از حد واقعی تخمین زده شود — به ویژه بلافاصله پس از رفتن به وضعیت کار روی باتری (OB). این امر به نوبه خود می‌تواند باعث اعلام وضعیت LB شود که در شرایط عادی موجب می‌شود NUT فرآیند خاموش‌سازی را آغاز کند. هنگام اتکا به گزینه ignorelb ممکن است بخواهید این شرط را به طور کامل غیرفعال کنید (این مورد در واقع انگیزه اصلی معرفی چنین ویژگی‌ای بوده است).

یک مثال ساده:

[apc]
    ignorelb
    override.battery.charge.low = 15
    override.battery.runtime.low = -1

این پیکربندی باعث می‌شود apcsmart فقط در صورتی وارد فرآیند خاموش‌سازی شود که شارژ شناسایی‌شده باتری کمتر از ۱۵٪ باشد. شرط زمان کارکرد (runtime) در این مثال همیشه نادرست (false) است.

شاید بپرسید — چرا باید این کار را انجام داد؟ خوب، دلیل آن پیش‌تر در بالا اشاره شد. دستگاه‌های APC می‌توانند در مورد باتری‌ها بسیار حساس باشند و میان‌افزار آن‌ها ممکن است زمان کارکرد باقیمانده را کمتر از حد واقعی برآورد کند (به ویژه بلافاصله پس از رفتن به وضعیت کار روی باتری). گزینه ignorelb و متغیرهای override.* به شما امکان می‌دهند کنترل یوپی‌اس در دست شما باقی بماند، نه اینکه یوپی‌اس بر شما مسلط شود.

علاوه بر این، این امکان اجازه می‌دهد شرط‌ها را مشابه با نحوه انجام آن در دیمن apcupsd تعیین کنید، بنابراین برای افرادی که به آن نرم‌افزار عادت دارند بسیار مفید خواهد بود.

درایور apcsmart دستورات فوری زیر را ارائه می‌دهد:

shutdown.return

هایبرنیت نرم را اجرا می‌کند

shutdown.return cs

«هک اجبار به باتری» را اجرا می‌کند

shutdown.return at:<nbr>

«هایبرنیت سخت» را با تأخیر اضافی بیدار شدن به میزان <nbr>*6 دقیقه اجرا می‌کند (فرمت <nbr> مانند گزینه awd است)

shutdown.stayoff

«خاموشی با تأخیر» را اجرا می‌کند

load.off

«خاموشی فوری» را اجرا می‌کند

تمام دستورات فوق باید برای بار دوم صادر شوند تا اعمال گردند (حداقل ۳ ثانیه و حداکثر ۱۵ ثانیه پس از فراخوانی اولیه). این دستورات بیشتر برای آزمایش دستی زمانی که رایانه شما توسط یوپی‌اسی که آزمایش می‌کنید تغذیه نمی‌شود، مفید هستند.

سایر دستورات پشتیبانی‌شده:

•load.on
•test.panel.start
•test.failure.start
•test.battery.start
•test.battery.stop
•bypass.start
•bypass.stop
•calibrate.start
•calibrate.stop

درایور قبلی همچنان با نام apcsmart-old در دسترس است، چنانچه نیازی به استفاده از نسخه پیشین باشد (اشکالات، ناسازگاری‌ها با عملکردهای جدید و غیره). به مرور زمان، apcsmart-old به طور کامل کنار گذاشته خواهد شد، اما این اتفاق تا زمانی که نسخه جدید بدون هیچ مشکل معلقی به پایداری کامل نرسد، رخ نخواهد داد.

برخی از مدل‌های قدیمی‌تر یوپی‌اس APC در طول آزمایش پنل جلویی داده‌های نادرست در ثبات وضعیت (status register) برمی‌گردانند. این داده‌ها معمولاً شناسایی شده و نادیده گرفته می‌شوند، اما گهگاه مقادیر غیرمنتظره دیگری نادیده مانده و عبور کرده‌اند.

مدل‌های یوپی‌اس APC دارای هر دو پورت USB و سریال هنگام جابجایی از ارتباط USB به سریال و احتمالاً برعکس، نیاز به خاموش و روشن کردن مجدد (power cycle) دارند.

Nigel Metheringham <Nigel.Metheringham@Intechnology.co.uk> (با اقتباس بسیار از درایور اصلی apcsmart اثر Russell Kroll) مدتی درایوری به نام newapc نوشت که در سری 1.5 تغییر نام یافت.

در نسخه 2.6.2 آن درایور سرانجام به apcsmart-old تغییر نام داد و این نسخه به‌روزشده با قابلیت‌های جدید که اکنون نام apcsmart را دارد جایگزین آن شد و توسط Michal Soltys <soltys@ziu.info> نگهداری می‌شود.

nutupsdrv(8), ups.conf(5), usbhid-ups(8), solis(8)

صفحه اصلی NUT (ابزارهای یوپی‌اس تحت شبکه): https://www.networkupstools.org/historic/v2.8.5

06/21/2026 Network UPS Tools 2.8.5