احسب التكلفة السنوية لاستبدال البطارية
قد تبدو البطارية القابلة للشحن منخفضة السعر عند شرائها، لكنها قد تصبح مكلفة عندما تؤدي دورات الشحن المتكررة إلى تقصير عمرها التشغيلي.
شغّل الأداة مجانًا
تحوّل هذه الحاسبة سعر البطارية وعمرها الاسمي بالدورات وعدد الدورات المتوقع سنويا إلى تكلفة سنوية قابلة للمقارنة. كما تعرض العمر التشغيلي الضمني بالسنوات ومعدل الاستبدال السنوي لتتمكنوا من مراجعة النتيجة. استخدموا عملة واحدة متسقة للسعر؛ فالتكلفة الناتجة تبقى بالعملة نفسها ولا تفترض الدولار أو اليورو أو أي وحدة أخرى.
حوّلوا تصنيف الدورات إلى تكلفة ملكية سنوية
لا يكشف سعر الشراء وحده أي البطاريات أوفر. فقد تكون بطارية أقل سعرا ومصنفة لعدد دورات أقل أعلى تكلفة مع مرور الوقت من بطارية أطول عمرا وسعرها الأولي أعلى. أدخلوا سعر بطارية بديلة واحدة وعمرها الاسمي بعدد الدورات الكاملة وعدد الدورات الكاملة المكافئة المتوقع استخدامها سنويا. تقسم الحاسبة الاستخدام السنوي على عمر الدورات لتقدير الحصة المستهلكة من استبدال واحد خلال سنة، ثم تضرب تلك الحصة في السعر. فإذا استُخدم ربع العمر الاسمي كل سنة مثلا، تُخصص لتلك السنة ربع قيمة البطارية. تمثل النتيجة قيمة سنوية للتخطيط، ولا تعني شراء جزء مادي من بطارية كل عام. تعرض الاستجابة أيضا العمر المتوقع بالسنوات وعدد مرات الاستبدال في السنة. تجعل هذه القيم الإضافية الحساب واضحا، وتساعدكم على شرح التقدير لفرق المشتريات أو التشغيل أو للعملاء من دون الحاجة إلى إعادة بناء المعادلة.
استخدموا الدورات الكاملة المكافئة بصورة متسقة
يُعبّر عادة عن عمر الدورات بالدورات الكاملة المكافئة، ولذلك ينبغي أن يتبع الاستخدام السنوي المعيار نفسه. فعمليتا تفريغ بنسبة خمسين في المئة تمثلان دورة كاملة تقريبا، كما أن عشر عمليات تفريغ بنسبة عشرة في المئة تساوي دورة واحدة تقريبا. سيؤدي عد كل تفريغ جزئي دورة كاملة إلى المبالغة في التآكل ورفع التكلفة السنوية. استخدموا، متى أمكن، قيمة عمر الدورات المطابقة لظروف التشغيل المعنية، لأن المتانة قد تعتمد على عمق التفريغ ودرجة الحرارة وسرعة الشحن والتركيب الكيميائي وحد السعة الذي يختاره المصنّع. لا تعدّل الحاسبة هذه الافتراضات الهندسية عمدا، بل تحوّل القيم التي تقدمونها بصورة واضحة. يمكن إدخال السعر بأي عملة بشرط استخدام العملة نفسها عند المقارنة. وقد يكون عمر الدورات وعدد الدورات السنوية كسريين إذا تطلب التقدير ذلك، لكن يجب أن تكون القيمتان موجبتين. لا ينتج العدد الصفري أو السلبي للدورات السنوية عمرا تشغيليا أو مخصصا سنويا ذا معنى في هذا الاستخدام.
فسّروا التقدير وقارنوا بين السيناريوهات
تعاملوا مع تكلفة الاستبدال السنوية بوصفها مكوّنا واحدا من التكلفة الكلية لملكية البطارية. يوزع التقدير سعر الشراء بالتساوي على العمر الاسمي بالدورات، ولا يشمل عمالة التركيب أو التوقف أو الشحن أو التخلص أو التمويل أو التقادم الزمني أو القيمة المتبقية أو الضمان أو فاقد الطاقة أو الأعطال غير المتوقعة. تحافظ هذه الاستثناءات على نتيجة حتمية سهلة المقارنة، لكنها تظل مهمة في دراسة جدوى كاملة. شغّلوا سيناريوهات منفصلة للاستخدام المتحفظ والمتوقع والمكثف بدلا من إخفاء عدم اليقين في رقم واحد للدورات. ويمكنكم أيضا مقارنة البطاريات المرشحة بحساب كل منها بسعرها وعمرها الاسمي مع تثبيت العبء السنوي. تشير النتيجة السنوية الأقل إلى استهلاك جزء أصغر من سعر الشراء سنويا ضمن تلك الافتراضات. إذا كان التقادم الزمني سينهي الخدمة على الأرجح قبل تآكل الدورات، فستقلل هذه النتيجة من معدل الاستبدال؛ استخدموا العمر الواقعي الأقصر في نموذج أشمل. تتوفر الحاسبة مباشرة في الصفحة، وتبلغ تكلفة كل طلب آلي $0.002. يستخدم المساران المنطق الحسابي الخالص نفسه ويعيدان الحقول ذاتها.
حالات الاستخدام
قارنوا خيارات البطاريات
وحّدوا أساس مقارنة البطاريات ذات الأسعار وأعمار الدورات المختلفة عند العبء السنوي نفسه قبل الاختيار.
أعدّوا ميزانية الصيانة
قدّروا الحصة السنوية من مشتريات البطاريات القابلة للشحن للأساطيل أو الأدوات أو المستشعرات أو أنظمة الاحتياط.
اختبروا سيناريوهات الاستخدام
قارنوا بين الاستخدام الخفيف والمتوقع والمكثف لمعرفة أثر نمط التشغيل في التكلفة السنوية.
الأسئلة الشائعة
ما المعادلة التي تستخدمها الحاسبة؟
تساوي التكلفة السنوية سعر البطارية مضروبا في عدد الدورات السنوية ومقسوما على العمر الاسمي بالدورات.
ما العملة التي ينبغي استخدامها؟
تصلح أي عملة. تستخدم التكلفة السنوية عملة السعر الذي تدخلونه، لذا حافظوا على العملة نفسها عند مقارنة البطاريات.
ما الدورة الكاملة المكافئة؟
هي تفريغ تراكمي يساوي السعة الكاملة للبطارية. ويمكن جمع عمليات التفريغ الجزئي لتقدير الدورات الكاملة المكافئة.
هل تشمل النتيجة التقادم الزمني؟
لا. إنها تحسب السعر سنويا اعتمادا على العمر الاسمي ومعدل الدورات فقط؛ ويتطلب التقادم والتكاليف الأخرى نموذجا أشمل.
لماذا يجب أن يكون عدد الدورات السنوية موجبا؟
لا ينتج المعدل الصفري أو السلبي عمرا تشغيليا أو مخصصا سنويا ذا معنى، ولذلك يُرفض بوصفه إدخالا غير صالح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/home/battery-replacement-cost-per-year \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"price":120,"cycle_life":1000,"cycles_per_year":250}'const res = await fetch("https://api.kit.forhosting.com/home/battery-replacement-cost-per-year", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"price": 120,
"cycle_life": 1000,
"cycles_per_year": 250
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/home/battery-replacement-cost-per-year",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"price": 120,
"cycle_life": 1000,
"cycles_per_year": 250
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/home/battery-replacement-cost-per-year", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"price":120,"cycle_life":1000,"cycles_per_year":250}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"price":120,"cycle_life":1000,"cycles_per_year":250}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/home/battery-replacement-cost-per-year", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"price": 120,
"cycle_life": 1000,
"cycles_per_year": 250
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.battery_replacement_cost_per_year",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |