การตรวจสอบแสง X10 – การตรวจสอบฮับโซนโพรบ

การส่งโดย: Marcus Warrington บทนำเช่นโมดูล UK X10 ที่มีอยู่ทั้งหมดในปัจจุบัน LD11 ไม่สนับสนุนการตอบสนองสถานะ เมื่อรวมกับความจริงที่ว่าคำสั่ง x10 สามารถในบางกรณี“ ไปหลงทาง” และดูเหมือนจะหายไปในอีเธอร์ไฟฟ้าก่อนที่จะถึงอุปกรณ์ที่เลือกหมายความว่าการติดตามสถานะปัจจุบันของอุปกรณ์นั้นมีข้อผิดพลาดมาก

ตัวควบคุมอัจฉริยะเช่น HomeVision และซอฟต์แวร์เช่น Homseer ใช้ความพยายามอย่างกล้าหาญในการติดตามสถานะปัจจุบันของอุปกรณ์โดยการฟังสัญญาณ x10 บนสาย แต่คำสั่งในบางกรณีไม่ได้ยินหรืออาจผิดพลาดและอุปกรณ์ใด ๆ ที่ควบคุมในท้องถิ่นจะมีมัน รัฐเปลี่ยนไปโดยไม่มีการเปลี่ยนแปลงสถานะที่ประกาศบนสาย จุดสุดท้ายนี้เป็นข้อผิดพลาดที่แท้จริงสำหรับฉันฉันแค่ไม่รู้ว่ามีคนเปิดไฟด้วยมือหรือไม่

บริการที่เป็นไปได้หนึ่งบริการใหม่สำหรับปัญหานี้คือการใช้ระบบโพรบของ Frank McAlinden ระบบนี้ได้รับการพัฒนา แต่เดิมเพื่อให้ homeVision ได้รับสถานะปัจจุบันของอุปกรณ์ A/V ในหลายโซน (ดูบทความนี้) แต่ตอนนี้แฟรงค์ได้ขยายสิ่งนี้ด้วยโพรบที่ใช้ LED สีขาวสดใสและเครื่องตรวจจับที่พัฒนาขึ้นเพื่ออ่าน สถานะของหน่วย LD11

ฮาร์ดแวร์

Probe Zone Hub (PZH) – สิ่งนี้เชื่อมต่อโดยตรงกับพอร์ตภายในหน่วย HV หรือผ่านการขยาย Franks HomeVision I/O expander (ไปยังรถบัสภายใน HomeVision) หรือผ่านอินเทอร์เฟซอนุกรม (9600 BAUD) ฮับโซนโพรบเสนอพลังงาน (12V) และดึงสถานะของโพรบโซนใด ๆ ที่ติดตั้งโพรบ สามารถติดตั้งจอภาพโซนโพรบได้สูงสุด 8 ตัวกับฮับโซนโพรบเดี่ยว สิ่งนี้ให้อุปกรณ์ทั้งหมด 48 เครื่องที่สามารถสอบถามได้

* ควรสังเกตว่าระบบต้องการให้ผู้ใช้จัดหาแหล่งจ่ายไฟ 12V ของตนเอง

Probe Zone Monitor (PZM) – การตรวจสอบโซนโพรบแต่ละตัวสามารถตรวจสอบอุปกรณ์ที่แตกต่างกันได้ 6 เครื่องหรืออุปกรณ์ 4 เครื่องและโพรบเทอร์โมมิเตอร์ Dallas 2 เครื่อง จอภาพโซนโพรบแต่ละตัวเชื่อมต่อกับ PZH ผ่านสายเคเบิล Cat5 ทั่วไปชิ้นเดียว สิ่งนี้ให้บริการพลังงานและการสื่อสารด้วยการตรวจสอบโพรบโซนและอนุญาตให้มีการแจกจ่ายมอนิเตอร์โซนโพรบรอบบ้านด้วยจุดที่สะดวก

Probe LED – สิ่งนี้ตรวจพบเมื่ออุปกรณ์เปิดอยู่ (โดยปกติโดยการตรวจจับ LED เปิด/ปิดของอุปกรณ์ แต่ในกรณีของเราพวกเขาค้นพบ LED สีขาวสว่างมากที่เชื่อมต่อกับ LD11) คุณต้องการหนึ่งในเหล่านี้ต่อ LD11 แต่ละโพรบมีความยาวประมาณ 1 เมตรพร้อมแจ็คสเตอริโอที่ปลายด้านหนึ่งและแจ็คโมโนอีกด้านหนึ่ง แจ็คสเตอริโอเสียบเข้ากับด้านหลังของจอภาพโซนโพรบในขณะที่แจ็คโมโนเสียบเข้ากับโมดูล LED

Super Bright LED โมดูล – สิ่งนี้เชื่อมต่อกับเอาต์พุตของ LD11 และคุณจะต้องใช้หนึ่งในโมดูล LD11 เหล่านี้ LED (และเครื่องตรวจจับ) ตั้งอยู่ในสกรู 16 มม. พร้อมกันทรงกระบอกพลาสติก สิ่งนี้ให้การแยก Opto อย่างมีประสิทธิภาพระหว่าง LD11 (เอาต์พุตแรงดันสูง) และระบบโพรบ (12 โวลต์)

แฟรงค์ยังขายสิ่งเหล่านี้ในรูปแบบชุดเพื่อให้คุณทำขึ้นเอง

homevision io expander
เชื่อมต่อโดยตรงกับบัส HV (หรือผ่านอินเทอร์เฟซอนุกรม) และอนุญาตให้ HV สื่อสารกับหน่วย PZH ผ่านบัส IC2

อะแดปเตอร์ Probe Mutli – กล่องดำง่าย ๆ ที่ช่วยให้คุณตรวจสอบ LD11 หลายตัวผ่านอินพุตโพรบเดียวบน PZM สิ่งนี้จะเป็นประโยชน์หากคุณมีธนาคารไฟหลายแห่งในห้อง (แสงไฟ) และคุณไม่สนใจที่จะรู้ว่าธนาคารแห่งแสงใดเปิดใช้งานจริงมีเพียงอย่างน้อยหนึ่งในนั้น

สร้างคุณภาพ – สิ่งแรกที่ทำให้คุณเกี่ยวกับฮาร์ดแวร์คือการตกแต่งอย่างมืออาชีพอย่างมืออาชีพและสร้างคุณภาพของหน่วย แต่ละหน่วยได้รับการจารึกอย่างมืออาชีพด้วยตัวอักษรสีขาวบนแผงด้านหน้าที่มีรายละเอียดพอร์ตและไฟสถานะ หน่วยมีความรู้สึกที่แข็งแกร่งและใช้งานได้เกี่ยวกับมันแต่ละหน่วยยังมีหมายเลขซีเรียลของตัวเองบาร์โค้ดและฉลากข้อมูลการรับประกันที่แนบมา

ติดตั้งโมดูล LED สีขาวสดใสมาก – แต่ละโมดูลต้องการการขุดเจาะรูขนาดเล็ก 16 มม. ในหน่วยผู้บริโภคด้านบนแต่ละ LD11 โมดูล LED ประกอบด้วยพลาสติกสองส่วนที่สกรูเข้าด้วยกัน ด้านหนึ่งของหน่วยถือ LED ที่สว่างมากและมีสองสาย (สดและเป็นกลาง) สำหรับการเชื่อมต่อกับโมดูล LD11 อีกครึ่งหนึ่งเป็นที่ตั้งของเครื่องตรวจจับ LED และมีซ็อกเก็ตแจ็คสำหรับการเชื่อมต่อกับหน่วย PZM

วิธีนี้ช่วยให้ส่วนประกอบแรงดันไฟฟ้าต่ำแยกออกจากส่วนประกอบแรงดันไฟฟ้าสูงภายในหน่วยผู้บริโภค ฉันอยากจะแนะนำให้ใช้สว่านไม้ขนาด 16 มม

การติดตั้งของฉัน – การติดตั้ง x10 ของฉันเป็นเรื่องติดตั้งเพิ่มเติมและเช่นนี้ LD11 นั้นตั้งอยู่ใน 3 สถานที่ที่แตกต่างกันรอบ ๆ บ้านตู้ห้องใต้หลังคาตู้เก็บของบนพื้นชั้นหนึ่งและเหนือห้องรับประทานอาหารที่แขวนอยู่

เนื่องจาก PZM แต่ละตัวเชื่อมต่อกับ PZH ผ่าน CAT5 ทั่วไป (สำหรับทั้งพลังงานและสถานะ) สิ่งนี้จึงบอกเป็นนัยว่าฉันสามารถวาง PZM ไว้ที่แต่ละคนสถานที่เหล่านี้และเชื่อมต่อพวกเขากลับไปที่ PZH ซึ่งตั้งอยู่ในสถานที่แยกต่างหากสำหรับบ้านของฉัน ในที่สุด Homevison และ PZH จะถูกย้ายไปที่ Node0 ของฉัน (เมื่อฉันทำเสร็จ)

ในการเริ่มต้นโครงการกลิ้งฉันเลือกที่จะมีสมาธิในสถานที่เดียวและดูว่าสิ่งต่าง ๆ เป็นอย่างไร ตู้ใต้บันไดบนชั้นแรกประกอบด้วยสี่หน่วยผู้บริโภคที่อยู่อาศัย 13 โมดูล LD11; อาหารเหล่านี้ทั้งหมดห้องนอนชั้นหนึ่งห้องน้ำห้องโถงและการลงจอดและห้องด้านหน้า ฉันติดตั้งโพรบไปแล้ว 6 ห้องที่ครอบคลุมห้องนอนหลักและโถงทางเดิน

การแนบไปกับ HomeVision – นี่เป็นขั้นตอนที่ค่อนข้างง่าย แต่เกี่ยวข้องกับการเปิดหน่วย HomeVision เพื่อติดตั้งเคเบิลสายเคเบิล HV IO Ribbon ไปยังบัส HV ผ่านตัวเชื่อมต่อบล็อกแบบพุช ใครก็ตามที่เคยเชื่อมต่อไดรฟ์ IDE กับพีซีควรไม่มีปัญหาในการทำเช่นนี้ อีกด้านหนึ่งของเคเบิลทีวีริบบิ้นนี้ต้องเชื่อมต่อภายในตัวขยาย HV IO ในขั้นตอนที่คล้ายกัน ตัวขยาย HV IO จากนั้นเสียบเข้ากับขั้วต่อชาย DB9 ที่ด้านหลังของ PZH นอกจากนี้ยังมีตัวเชื่อมต่อ RJ12 ที่ด้านหน้าของหน่วยที่เป็นตัวเชื่อมต่ออนุกรมสำหรับการสื่อสารกับอุปกรณ์ผ่านพอร์ตอนุกรม (เพิ่มเติมในภายหลัง)

เมื่อทุกอย่างเชื่อมต่อ (และทุกอย่างตรวจสอบสองครั้ง) ถึงเวลาในการเขียนโค้ดและทดสอบทุกอย่าง การทดสอบโพรบจากซอฟต์แวร์ HomeVision HV HV IO Expander ของ Frank ใช้รถบัส HomeVison IC2 และต้องใช้แพตช์รีจิสทรีเพื่อให้สามารถเข้าถึงได้ แต่ถ้าคุณใช้ homeVisionxl แทนซอฟต์แวร์ดั้งเดิมของ HomeVisions แทนที่.

สถานะโพรบถูกประเมินโดยการสำรวจ Expander HV IO โดยใช้รหัสที่ระบุในเอกสาร เมื่อป้อนรหัสแล้วการทดสอบสถานะโพรบเป็นเพียงเรื่องของการตั้งค่าตัวแปรสองตัว (หมายเลขโพรบและหมายเลขโซน) การเรียกแมโครแล้วทดสอบสถานะ (สถานะโพรบ) กระบวนการทั้งหมดนี้ดูเหมือนจะใช้เวลาประมาณ½วินาทีตั้งแต่ต้นจนจบ

การทดสอบเบื้องต้นคือการทดสอบสถานะของแสงเดียวโดยการเรียกใช้แมโครเพื่อสำรวจสถานะของโพรบเฉพาะ โพรบ LED นั้นมีความอ่อนไหวมากและสามารถค้นพบว่าแสงเปิดอยู่แม้ว่าจะอยู่ที่การตั้งค่า DIM ต่ำที่สุด

ในขั้นต้น PZM (และ PZH) รายงานแสงอย่างต่อเนื่องไฟ LED ของมันแสดงสีแดงจนกระทั่งฉันเข้าใจว่าฉันได้เชื่อมต่อโพรบผิดวิธีรอบตัว แจ็คสเตอริโอเสียบเข้ากับ PZM และปลั๊กปลายแจ็คโมโนเข้ากับโมดูล LED

การทดสอบครั้งที่สองคือการเรียกใช้แมโครนี้อย่างต่อเนื่องทุก 3 วินาทีเพื่ออัปเดตสถานะสถานะภายใน HomeVision และสะท้อนสถานะของแสงไปยังโคมไฟตั้งโต๊ะของเรา สิ่งนี้ใช้งานได้อย่างยอดเยี่ยมและอนุญาตให้โคมไฟตั้งโต๊ะเข้ามาโดยอัตโนมัติ (ภายใน3½วินาที) ของใครบางคนที่เปิดไฟหลัก

กรีดร้องถ้าคุณต้องการที่จะไปเร็วขึ้น – เมื่อเห็นว่าการติดตามสถานะไฟและสะท้อนไปยังโคมไฟตั้งโต๊ะฉันก็พยายามใช้การเชื่อมต่ออนุกรมเพื่อให้สถานะโพรบได้เร็วขึ้น เหตุผลที่ว่าทำไมสิ่งนี้จะเร็วขึ้นคือโปรโตคอลอนุกรมอนุญาตให้ทำการทดสอบโพรบทั้งหมดในโซนในหนึ่งคำขอและข้อความปฏิกิริยา

หน่วยโพรบใช้โปรโตคอลอนุกรมที่ง่าย แต่มีประสิทธิภาพซึ่งประกอบด้วยอักขระ ASCII เพียงไม่กี่ตัวซึ่งถูกยกเลิกโดยอักขระการส่งคืนแบบตัวเดียว

เช่น. “#QA1 (CR)” = สถานะการสืบค้นของโพรบทั้งหมดในโซน 1
เช่น. “#Q14 (CR)” = สถานะการสืบค้นของโพรบ 4 บนโซน 1

PZH ตอบกลับด้วย;
เช่น. “#ra1: Ynyyyn (Cr)” โดยที่ Ynyyyn เป็นสถานะของแต่ละโพรบ 1 – 6
เช่น. “#r14: y (cr)”

ไม่มีพอร์ตอนุกรมที่สองในหน่วยงาน HomeVision ของฉันฉันตั้งค่าขั้นตอนง่าย ๆ โดยที่รีโมท IR สามารถสลับพอร์ต HV comms inbuilt ระหว่างถูกใช้เพื่อสอบถาม HV บนพื้นฐานที่สอดคล้องกัน (ที่อัตราการรับส่ง 9600) พอร์ตควบคุมที่เชื่อมต่อกับพีซี (ในอัตราการรับส่ง 19200)

รหัสเพื่อสลับพอร์ตอนุกรม inbuilt นั้นค่อนข้างง่าย เมื่อได้รับสัญญาณ IR ที่รู้จัก

ถ้า
ตัวจับเวลา #8 (probehub_serialscanningtimer) หยุดลง)
แล้ว
; เปิด – การสแกนอนุกรมฮับโพรบ
; ———————————————
คำสั่งคอนโทรลเลอร์: ปิดการใช้งานโหมดรายงานต้นแบบ
คำสั่งคอนโทรลเลอร์: ตั้งอัตราการรับส่งข้อมูลเป็น 9600
;
; ตั้งค่า bit0 เพื่อตั้งค่าสถานะที่ไม่เป็นที่รู้จักและควรจะเริ่มต้น
; นี่ก็หมายความว่าเหตุการณ์จะยิงสำหรับแต่ละโพรบสำหรับการโทรครั้งแรก
ตั้งค่าบิต 0 ใน var #5 (probescan_zone1_laststate)
;
โหลดตัวจับเวลา #8 (probehub_serialscanningtimer) ด้วย 0: 00: 01: 00 และเริ่มต้น
;
คำสั่งคอนโทรลเลอร์: เปิด LED ผู้ใช้
อื่น
; ปิด – Probe Hub Serial Scanning – เปลี่ยนกลับไปเป็น HV Control
; —————————————————————————————
หยุดและล้างตัวจับเวลา #8 (probehub_serialscanningtimer)
หยุดและล้างตัวจับเวลา #9 (probehub_failsafe_qa #)
คำสั่งคอนโทรลเลอร์: ตั้งอัตราการรับส่งข้อมูลเป็น 19200
คำสั่งคอนโทรลเลอร์: เปิดใช้งานโหมดรายงานต้นแบบ
;
คำสั่งคอนโทรลเลอร์: ปิด LED ผู้ใช้
สิ้นสุดถ้า

รหัสเพื่อขอ PZH ส่งสถานะของโพรบทั้งหมดในโซน 1 จะวิ่งโดยอัตโนมัติทุก 3 วินาทีผ่านตัวจับเวลา #8: probehub_serialscanningtimer;

; trasnmit“ สอบถามทั้งหมด pเสื้อคลุมบนโซน 1”
หยุดและล้างตัวจับเวลา #9 (probehub_failsafe_qa #)
พอร์ตอนุกรม 1: ส่งสตริง ‘#qa1’
พอร์ตอนุกรม 1: ส่งไบต์ ‘0d’
;
; ล้มเหลวปลอดภัย .. หากฮับไม่ได้กลับมาอีกครั้งใน 10 วินาทีจากนั้นกลับมาสืบค้นอีกครั้ง
รอ 0: 00: 10:00 น
ถ้า
ตัวจับเวลา #8 (probehub_serialscanningtimer) ไม่หยุด
แล้ว
โหลดตัวจับเวลา #8 (probehub_serialscanningtimer) ด้วย 0: 00: 00: 01 และเริ่มต้น
สิ้นสุดถ้า
สิ้นสุดรอ

เมื่อมีการส่งคำขอแล้วจะไม่มีการส่งอะไรอีกจนกว่าจะมีการตอบสนองต่อการสืบค้น “ probehub_failsafe_qa# ตัวจับเวลา” ใช้ในกรณีที่ไม่พลาดปฏิกิริยาและจะส่งคำขออีกครั้งหากไม่ได้รับปฏิกิริยาภายใน 10 วินาที

ปฏิกิริยาของแบบสอบถามจะถูกจับในเหตุการณ์“ อินพุตข้อมูล” ของ serialport 1 ของ homevision รหัสตรวจสอบสถานะโพรบแต่ละสถานะกับสถานะที่รู้จักล่าสุดและการโทรมาโคร“#5 (ProbestatusChange)” หากสถานะโพรบเปลี่ยนไป รหัสได้รับการย่อให้แสดงเฉพาะการทดสอบของโพรบ 1 เพื่อเห็นแก่ความกระชับ ในการทดสอบโพรบอื่น ๆ เพียงแค่ทำซ้ำรหัส“ ทดสอบโพรบ 1” การเปลี่ยนโครงการของ“ var #2” และ“ การทดสอบบิต” ในแต่ละครั้ง

; บิต 0 set = เริ่มต้น LastState เช่นแมโครคอลสำหรับการเปลี่ยนแปลงสถานะโพรบโดยไม่คำนึงถึง
; บิต 1 -6 เป็นธงเพื่อจัดเก็บสถานะที่รู้จักสุดท้ายดังนั้นโทรแมโครหากสถานะโพรบเปลี่ยนไป
ถ้า
ตัวจับเวลา #8 (probehub_serialscanningtimer) ไม่หยุด
และพอร์ตอนุกรม 1: อักขระอินพุตอนุกรมหมายเลข 1 ถึง 3 คือ ‘#RA’
แล้ว
พอร์ตอนุกรม 1: ใส่มูลค่าของถ่าน 4 ที่ได้รับเป็นค่าผลลัพธ์
var #1 (บัฟเฟอร์โซน) = ค่าผลลัพธ์
;
; ทดสอบโพรบ 1 ————————————————
var #2 (บัฟเฟอร์โพรบ) = 1
ถ้า
พอร์ตอนุกรม 1: อักขระอินพุตอนุกรมหมายเลข 6 ถึง 6 คือ ‘Y’
แล้ว
; โพรบเปิดอยู่
ถ้า
var #5 (probescan_zone1_laststate) บิต 1 ไม่ได้ตั้งค่า
หรือ var #5 (probescan_zone1_laststate) บิต 0 ถูกตั้งค่า
แล้ว
; โพรบเปลี่ยนสถานะเนื่องจากการสแกนครั้งสุดท้าย
ตั้งค่าสถานะ #6 (probescan_state)
ทำมาโคร #5 (probestateChanged) หนึ่งครั้ง
สิ้นสุดถ้า
ตั้งค่าบิต 1 ใน var #5 (probescan_zone1_laststate)
อื่น
; โพรบปิดอยู่
ถ้า
var #5 (probescan_zone1_laststate) บิต 1 ถูกตั้งค่า
หรือ var #5 (probescan_zone1_laststate) บิต 0 ถูกตั้งค่า
แล้ว
; โพรบเปลี่ยนสถานะเนื่องจากการสแกนครั้งสุดท้าย
ล้างธง #6 (probescan_state)
ทำมาโคร #5 (probestateChanged) หนึ่งครั้ง
สิ้นสุดถ้า
ล้างบิต 1 ใน var #5 (probescan_zone1_laststate)
สิ้นสุดถ้า
; ————————————————————
;
; รับประกันว่าตอนนี้บิตเริ่มต้นนั้นชัดเจน
ล้างบิต 0 ใน var #5 (probescan_zone1_laststate)
;
; เริ่มลำดับอีกครั้งโดยส่งคำขอสำหรับสถานะทั้งหมด ‘
โหลดตัวจับเวลา #8 (probehub_serialscanningtimer) ด้วย 0: 00: 00: 50 และเริ่มต้น
;
สิ้นสุดถ้า

marcro #5 probestateChanged – แมโครนี้สามารถใช้ทำสิ่งที่คุณต้องการทำ ฉันมีการตั้งค่ารหัสเพื่อให้แสงของชั้นวางเปิดและปิดด้วยแสงหลัก

ถ้า
ตั้งค่าสถานะ #6 (Probescan_state)
แล้ว
; สถานะใหม่เปิดอยู่
ถ้า
var #1 (บัฟเฟอร์โซน) = 1
แล้ว
ถ้า
var #2 (บัฟเฟอร์โพรบ) = 1
แล้ว
; 1 = ห้องนอน 1 (ห้องกล่องหน้า)
X-10: A 7 (ห้องนอน 1 ชั้นวางของ
สิ้นสุดถ้า
สิ้นสุดถ้า
อื่น
; สถานะใหม่ปิดอยู่
ถ้า
var #1 (บัฟเฟอร์โซน) = 1
แล้ว
ถ้า
var #2 (บัฟเฟอร์โพรบ) = 1
แล้ว
; 1 = ห้องนอน 1 (ห้องกล่องหน้า)
X-10: A 7 (ห้องนอน 1 ชั้นวางของ
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า

การใช้วิธีนี้มีความหมายว่าโพรบทั้ง 6 ตัวในโซนสามารถสแกนได้ประมาณ 1 วินาที สิ่งนี้เปรียบเทียบกับประมาณ½วินาทีต่อโพรบ (เช่น 3+ วินาที) โดยใช้วิธีการขยาย HV IO

อะแดปเตอร์โพรบหลายตัวในห้องน้ำของฉันฉันมีไฟเพดาน 6 ขนาด 6 ที่จัดขึ้นใน 3 ธนาคารที่มีไฟสองดวง แต่ละธนาคารแห่งแสงจะถูกต่อสายกลับไปยังโมดูล LD11 โดยมีสวิตช์ไฟหลักเดียวที่ถูกต่อสายเข้ากับ 3 LD11 แต่ละตัว เหตุผลนี้ก็คือ (ในที่สุด) ฉันวางแผนที่จะมีแสงสว่างในห้องน้ำที่ควบคุมโดย IR หรือ WiFi เป็น pocketpc ความคิดคือฉันสามารถมีแสงไฟเหนืออ่างอาบน้ำหรี่ลงไปถึง 50% ในขณะที่ส่วนที่เหลือของห้องจะหรี่ลงไปที่ 10-20% ให้บรรยากาศที่ไม่เคยมีมาก่อนในขณะที่อาบน้ำและดูทีวีห้องน้ำ (ที่ฉัน

Leave a Reply

Your email address will not be published. Required fields are marked *