يحتوي هذا المشروع على التحكم في طاقة الكمبيوتر عن بُعد عبر لوحات HereasSistant و Esphome ESP8266/ESP32.
أستخدم هذا المشروع لتشغيل NAS المستند إلى جهاز الكمبيوتر الخاص بي عن بُعد عبر مساعد المنزل كبديل لـ Wake-On-Lan (WOL) الذي عرف القيود.
power-off/suspended/hybernate (زر الطاقة القصير للسلوك).shutdown/suspend/hybernate لنظام التشغيل (زر الطاقة القصيرة للسلوك).فيديو يوتيوب:
لقطة الشاشة HereasSistant:

يهدف Wake-On-Lan (WOL) إلى تشغيل طاقة الكمبيوتر عن بُعد عبر Ethernet عن طريق إرسال ما يسمى magic packet . هذا له العديد من القيود المعروفة التي لا تنطبق على مشروع ESP هذا:
wake جهاز كمبيوتر من حالة تعليق أو إيقاف الطاقة. لا توجد وظيفة إيقاف/تعليق.sleep ، يمكن إجراء اتصال SSH بجهاز الكمبيوتر البعيد على سبيل المثال عن طريق تنفيذ أمر pm-suspend (تثبيت عبر sudo apt install pm-utils ) ، وثائق Ubuntu PM-action المرجعية. عيوب:يتكون الجهاز من ESP8266 أو ESP32 ودبابيات IO ، مثبتة على لوحة معدنية PCI (انظر الصورة أدناه). في حالتي ، استخدمت لوحة NodeMcu ESP8266. من الناحية النظرية ، يمكن استخدام أي لوحة ESP8266 أو ESP32 لهذا المشروع.

يعتمد NAS على لوحة أم Intel Core i7 ASROCK Z97 ATX ويحتوي على رؤوس ذكور قياسية 2.5 مم 2 × 5:

رأس ATX USB 2.0:
الرأس J1 Pin 1 ثابت +5 فولت الطاقة على الدبوس 1 ، حتى عندما يكون الكمبيوتر الشخصي خارج الطاقة ويستخدم لتشغيل NodeMCU. يتم تشغيل ESP8266 أو ESP32 عبر منظم 3V3 على متن الطائرة.
لوحة نظام رأس ATX:
يحتوي Header J2 على دبابيس الطاقة وإعادة الضبط و GND:
زر الطاقة دبوس 6.
إعادة تعيين زر دبوس 7.
GND PIN 5.
يتم استخدام PIN D1 لقراءة حالة الطاقة من دبوس إعادة الضبط: أعلى هو ، منخفض هو متوقف. يتم استخدام المقاوم R1 لتقليل التيار إلى الحد الأدنى عندما يتم تعيين دبوس IO بطريق الخطأ على الإخراج.
يستخدم PIN D2 لسحب زر الطاقة منخفضًا لإنشاء الضغط القصيرة أو الطويلة. يستخدم الترانزستور Q1 للعزلة الآمنة بين ESP8266 والوحة الأم.
تحذير: يجب أن تعمل جميع دبابيس ATX و ESP على 3v3.

يمكن تركيب ثنائي الفينيل متعدد الكلور DIY على رأس لوحة النظام لتوصيل زر الطاقة SW1 وإعادة تعيين زر SW2 .
هناك مساحة كافية في حالة كمبيوتر ATX لتركيب لوحة ESP. ومع ذلك ، فإن حالة الكمبيوتر محمية للمعادن ، وبالتالي فإن مسافة WiFi إلى المحطة الأساسية تتقلص. يوصى بوضع ESP خارج حالة الكمبيوتر عندما يكون اتصال WiFi غير مستقر أو المسافة منخفضة جدًا. قد يؤدي ESP32 إلى استقرار مختلف اتصال WiFi ، ولكن بشكل عام يعتمد على البيئة.
ESP8266 PCB مثبتة في الجزء الخلفي من حالة الكمبيوتر:

يمكن تحديث البرامج الثابتة لتطبيق esphome عبر اتصال USB (المنفذ التسلسلي الظاهري) أو WiFi OTA (فوق تحديث الهواء).
يتم تمكين تحديث البرامج الثابتة عبر WiFi عند تكوين ota في ملف .yaml. هذا يتطلب اتصال wifi بين الكمبيوتر المضيف و ESP. لا يعمل تحديث OTA عندما يفشل تسجيل الدخول من محطة ESP إلى WiFi الأساسية بسبب بيانات اعتماد WiFi غير الصحيحة. في هذه الحالة ، يلزم تحديث عبر المسلسل أو عبر عودة ap كما تم تكوينه في ملف .yaml.
يتكون تطبيق esphome من ملف اثنين من yaml. ملف تكوين واحد و Second secrets.yaml لتخزين كلمات المرور.
الوثائق:
تكوين الملفات التالية:
platform board .يرجى الرجوع إلى وثائق Esphome لمزيد من المعلومات حول تكوين Esphome Yaml.
قم بتوصيل كبل USB بلوحة ESP8266 أو ESP32 وأدخل الأوامر التالية. (يتم اختبار الأمثلة على Ubuntu). لمزيد من المعلومات ، راجع esphome.io.
# Clone this repository
$ git clone [email protected]:Erriez/ESPHomePCPowerControlHomeAssistant.git
# Install Python3 virtualenv
$ sudo apt install python3-virtualenv
# Create virtualenv
$ virtualenv venv
# Activate virtualenv
$ source venv/bin/activate
# Install ESPHome
$ pip install esphome
# Optional: Install platformio updates
$ platformio platform update
$ platformio upgrade
# Optional: Add user permission serial port
$ sudo usermod -a -G dialout < USERNAME >
$ sudo reboot now
# Check ESPHome installation
$ esphome --help
# Optional: Compile program without upload
$ esphome compile pc-power.yaml
# Upload program to ESP8266 or ESP32
$ esphome run pc-power.yaml
# Select serial port or WiFi to upload application
# Check logs
$ esphome logs pc-power.yamlيصف هذا القسم تكوين مساعد المنزل.
Configuration | Integrations: Add Integration: ESPHomesecrets.yml | esphome_api_password .أضف تكامل طاقة الكمبيوتر إلى لوحة القيادة عبر تحرير RAW:
title : Home
views :
- title : PC
path : pc
badges : []
cards :
- type : button
entity : switch.pc_power_toggle
show_name : true
- type : button
tap_action :
action : none
entity : binary_sensor.pc_power_state
hold_action :
action : none
- type : button
tap_action :
action : toggle
entity : switch.pc_hard_power_off
icon_height : 40px
show_state : false
show_name : true
show_icon : true أعد تشغيل مساعد المنزل وعلى استعداد للذهاب!
تم تغيير تنسيق ملف esphome yaml مع إصدار esphome 2024.6.0. يولد التنسيق القديم أخطاء مثل:
$ esphome compile ESPHomePCPowerControlHomeAssistant/pc-power.yaml
INFO ESPHome 2024.9.2
INFO Reading configuration ESPHomePCPowerControlHomeAssistant/pc-power.yaml...
Failed config
ota.unknown: [source ESPHomePCPowerControlHomeAssistant/pc-power.yaml:27]
'ota' requires a 'platform' key but it was not specified.
and:
Failed config
switch.gpio: [source ESPHomePCPowerControlHomeAssistant/pc-power.yaml:30]
Pin 4 is used in multiple places.
في هذه الحالة ، يرجى التحديث إلى تنسيق الملف الجديد في هذا المشروع.
switch.pc_power_button إلى switch.pc_power_toggle .switch.pc_power_button_long_press إلى switch.pc_hard_power_off .switch.pc_power_sense إلى switch.pc_power_state .