โปรเจ็กต์นี้ทำให้สามารถอ่านข้อมูลจากปั๊มความร้อน Panasonic Aquarea และรายงานข้อมูลไปยังเซิร์ฟเวอร์ MQTT หรือเป็นรูปแบบ JSON ผ่าน HTTP
Eine deutschsprachige README_DE.md พบว่าดีที่สุด
เนเธอร์แลนด์เปลี่ยน README_NL.md แล้วหรือยัง
ซูโอเมน คีเลลลา README_FI.md luettavissa täällä.
ยินดีให้ความช่วยเหลือในการแปลเป็นภาษาอื่น
รุ่นล่าสุดมีอยู่ที่นี่ ไบนารีที่คอมไพล์แล้ว ESP8266 สามารถติดตั้งได้บน Wemos D1 mini, บน HeishaMon PCB และโดยทั่วไปบนบอร์ดที่ใช้ ESP8266 ใดๆ ที่เข้ากันได้กับการตั้งค่า Wemos build (แฟลชอย่างน้อย 4MB) คุณยังสามารถดาวน์โหลดโค้ดและคอมไพล์ด้วยตนเองได้ (ดูไลบรารีที่จำเป็นด้านล่าง) ไบนารี ESP32-S3 มีไว้สำหรับ heishamon เวอร์ชันใหม่กว่าขนาดใหญ่
HeishaMon สามารถสื่อสารกับ Panasonic Aquarea H, J, K และ L&series ได้ ยืนยันโดยผู้ใช้ประเภท HP ที่คุณสามารถดูได้ที่นี่
หากคุณต้องการรวบรวมภาพนี้ด้วยตัวเอง ต้องแน่ใจว่าได้ใช้ไลบรารีที่กล่าวถึงและรองรับระบบไฟล์บน esp8266 ดังนั้นให้เลือกตัวเลือกแฟลชที่ถูกต้องใน arduino ide สำหรับสิ่งนั้น
เมื่อเริ่มต้น หากไม่มี wifi ที่กำหนดค่าไว้ ฮอตสปอต wifi แบบเปิดจะมองเห็นได้ ทำให้คุณสามารถกำหนดค่าเครือข่าย wifi และเซิร์ฟเวอร์ MQTT ของคุณได้ หน้าการกำหนดค่าจะอยู่ที่ http://192.168.4.1
หลังจากกำหนดค่าและบูตแล้ว อิมเมจจะสามารถอ่านและพูดคุยกับปั๊มความร้อนของคุณได้ การเชื่อมต่อ GPIO13/GPIO15 จะถูกใช้สำหรับการสื่อสาร ดังนั้นคุณจึงสามารถให้คอมพิวเตอร์/ตัวอัพโหลดเชื่อมต่อกับบอร์ดได้หากต้องการ
สามารถใช้ Serial 1 (GPIO2) เพื่อเชื่อมต่อสายอนุกรมอื่น (GND และ TX จากบอร์ดเท่านั้น) เพื่ออ่านข้อมูลการดีบักบางส่วน
ข้อมูลที่ได้รับทั้งหมดจะถูกส่งไปยังหัวข้อ MQTT ที่แตกต่างกัน (ดูคำอธิบายหัวข้อด้านล่าง) นอกจากนี้ยังมีหัวข้อ MQTT 'panasonic_heat_pump/log' ซึ่งจัดให้มีการบันทึกการดีบักและการถ่ายโอนข้อมูลฐานสิบหกของแพ็กเก็ตที่ได้รับ (หากเปิดใช้งานในเว็บพอร์ทัล)
คุณสามารถเชื่อมต่อเครือข่าย 1wire บน GPIO4 ซึ่งจะรายงานในหัวข้อ MQTT แยกกัน (panasonic_heat_pump/1wire/sensorid)
ซอฟต์แวร์ยังสามารถวัดวัตต์บนพอร์ต S0 ขนาด 2 kWh เมตร คุณจะต้องเชื่อมต่อ GPIO12 และ GND กับ S0 ของหนึ่ง kWh เมตร และหากคุณต้องการมิเตอร์ kWh ตัวที่สอง ให้ใช้ GPIO14 และ GND โดยจะรายงานหัวข้อ MQTT panasonic_heat_pump/s0/Watt/1 และ panasonic_heat_pump/s0/Watt/2 และในเอาต์พุต JSON ด้วย คุณสามารถแทนที่ 'วัตต์' ในหัวข้อก่อนหน้าด้วย 'วัตต์ชั่วโมง' เพื่อรับตัวนับปริมาณการใช้เป็น WattHour (ต่อข้อความ mqtt) หรือเป็น 'WatthourTotal' เพื่อรับปริมาณการใช้ทั้งหมดวัดเป็น WattHour หากต้องการซิงค์ WatthourTotal กับ kWh-meter ของคุณ ให้เผยแพร่ค่าที่ถูกต้องไปยัง MQTT ไปยังหัวข้อ panasonic_heat_pump/s0/WatthourTotal/1 หรือ panasonic_heat_pump/s0/WatthourTotal/2 ด้วยตัวเลือก 'retain' ขณะที่ heishamon กำลังรีบูต เมื่อรีบูต heishamon จะอ่านค่านี้เป็นค่าสุดท้ายที่ทราบที่คุณสามารถซิงค์ได้โดยใช้วิธีนี้
การอัปเดตเฟิร์มแวร์นั้นง่ายดายเหมือนกับการไปที่เมนูเฟิร์มแวร์ และหลังจากตรวจสอบสิทธิ์ด้วยชื่อผู้ใช้ 'admin' และรหัสผ่าน 'heisha' (หรืออื่นๆ ที่ให้ไว้ระหว่างการตั้งค่า) แล้ว ให้อัปโหลดไบนารี่ที่นั่น
เอาต์พุต json ของข้อมูลที่ได้รับทั้งหมด (heatpump และ 1wire) มีอยู่ที่ url http://heishamon.local/json (แทนที่ heishamon.local ด้วยที่อยู่ IP ของอุปกรณ์ heishamon ของคุณหาก MDNS ไม่ทำงานสำหรับคุณ)
ภายในโฟลเดอร์ 'บูรณาการ' คุณจะพบตัวอย่างวิธีเชื่อมต่อแพลตฟอร์มระบบอัตโนมัติของคุณกับ HeishaMon
ฟังก์ชั่นกฎช่วยให้คุณควบคุมปั๊มความร้อนจากภายใน HeishaMon เอง ซึ่งทำให้เชื่อถือได้มากขึ้นกว่าต้องจัดการกับโดโมติกาภายนอกผ่าน WiFi เมื่อโพสต์ชุดกฎใหม่ จะมีการตรวจสอบความถูกต้องทันทีและเมื่อมีการใช้อย่างถูกต้อง เมื่อชุดกฎใหม่ไม่ถูกต้อง ชุดกฎใหม่จะถูกละเว้น และชุดกฎเก่าจะถูกโหลดอีกครั้ง คุณสามารถตรวจสอบคอนโซลเพื่อดูความคิดเห็นเกี่ยวกับเรื่องนี้ได้ หากชุดกฎใหม่ที่ถูกต้องใหม่ทำให้ HeishaMon ขัดข้อง ชุดกฎนั้นจะถูกปิดใช้งานโดยอัตโนมัติในการรีบูตครั้งถัดไป ทำให้คุณสามารถทำการเปลี่ยนแปลงได้ วิธีนี้จะป้องกันไม่ให้ HeishaMon เข้าสู่ลูปการบูต
เทคนิคที่ใช้ในไลบรารีกฎช่วยให้คุณสามารถทำงานกับชุดกฎที่มีขนาดใหญ่มากได้ แต่แนวทางปฏิบัติที่ดีที่สุดคือรักษาขนาดให้ต่ำกว่า 10,000 ไบต์
โปรดสังเกตว่าการส่งคำสั่งไปยังปั๊มความร้อนเป็นแบบอะซิงโครนัส ดังนั้น คำสั่งที่ส่งไปยังปั๊มความร้อนที่จุดเริ่มต้นของไวยากรณ์ของคุณจะไม่สะท้อนให้เห็นในค่าจากปั๊มความร้อนในภายหลังในทันที ดังนั้น ค่าปั๊มความร้อนควรอ่านจากตัวปั๊มความร้อนเอง แทนที่จะอ่านตามค่าที่คุณเก็บไว้
กฎทั่วไปสองข้อคือต้องเว้นวรรคและอัฒภาคจะใช้เป็นอักขระที่สิ้นสุดบรรทัด
ชุดกฎใช้โครงสร้างตัวแปรต่อไปนี้:
#
: Globals ตัวแปรเหล่านี้สามารถเข้าถึงได้ทั่วทั้งชุดกฎ แต่ต้องกำหนดไว้ภายในบล็อกกฎ อย่าใช้ globals สำหรับตัวแปรทั้งหมดของคุณ เนื่องจากจะใช้หน่วยความจำอย่างต่อเนื่อง
$
: Locals ตัวแปรเหล่านี้อยู่ภายในบล็อกกฎ เมื่อบล็อกกฎเสร็จสิ้น ตัวแปรเหล่านี้จะถูกล้าง ซึ่งจะทำให้หน่วยความจำที่ใช้หมดไป
@
: พารามิเตอร์ Heatpump สิ่งเหล่านี้เหมือนกับที่ระบุไว้ในหน้าเอกสารประกอบการจัดการหัวข้อและที่พบในหน้าแรกของ HeishaMon ชุดกฎยังเป็นไปตามตรรกะ R/W ที่ใช้ผ่าน MQTT และ REST API นั่นหมายความว่าหัวข้อที่อ่านแตกต่างจากหัวข้อที่เขียน ดังนั้นการอ่านสถานะปั๊มความร้อนจึงทำได้ผ่าน @Heatpump_State
โดยเปลี่ยนสถานะปั๊มความร้อนผ่าน @SetHeatpump
%
: ตัวแปรวันที่และเวลา สิ่งเหล่านี้สามารถใช้สำหรับกฎที่ยึดตามวันที่และเวลา ปัจจุบันรองรับ %hour
(0 - 23), %minute
(0 - 59), %month
(1 - 12) และ day
(1 - 7) ทั้งหมดเป็นจำนวนเต็มธรรมดา จำเป็นต้องมีการกำหนดค่า NTP ที่เหมาะสมเพื่อตั้งค่าวันที่และเวลาของระบบที่ถูกต้องบน HeishaMon
?
: พารามิเตอร์เทอร์โมสตัท ตัวแปรเหล่านี้สะท้อนถึงพารามิเตอร์ที่อ่านจากเทอร์โมสตัทที่เชื่อมต่อเมื่อใช้ฟังก์ชัน OpenTherm เมื่อรองรับ OpenTherm เอกสารนี้จะถูกขยายออกไปพร้อมกับข้อมูลที่แม่นยำยิ่งขึ้น สามารถตรวจสอบแท็บ opentherm เพื่อดูตัวแปรที่สามารถใช้ได้ ชื่อการอ่านและการเขียนจะเหมือนกัน แต่ไม่ใช่ทุกค่าที่รองรับการอ่านและ/หรือการเขียน แท็บ opentherm ยังแสดงรายการสิ่งนี้ด้วย
ds18b20#2800000000000000
: ค่าอุณหภูมิ 1 สายดัลลัส ใช้ตัวแปรเหล่านี้เพื่ออ่านอุณหภูมิของเซ็นเซอร์ที่เชื่อมต่อ แน่นอนว่าค่าเหล่านี้เป็นแบบอ่านอย่างเดียว ควรวางรหัสของเซ็นเซอร์ไว้หลังแฮชแท็ก
เมื่อตัวแปรถูกเรียกแต่ยังไม่ได้ตั้งค่า ค่าดังกล่าวจะเป็น NULL
ตัวแปรอาจเป็นแบบบูลีน ( 1
หรือ 0
) ทศนิยม ( 3.14
) จำนวนเต็ม ( 10
) และประเภทสตริง การกำหนดสตริงทำได้ด้วยเครื่องหมายคำพูดเดี่ยวหรือคู่
กฎถูกเขียนไว้ในบล็อก event
หรือ function
สิ่งเหล่านี้คือบล็อกที่เกิดขึ้นเมื่อมีบางอย่างเกิดขึ้น ได้รับปั๊มความร้อนหรือค่าเทอร์โมสตัทใหม่หรือตัวจับเวลาเริ่มทำงาน หรือสามารถใช้เป็นฟังก์ชันธรรมดาก็ได้
on [event] then [...] end on [name] then [...] end
เหตุการณ์อาจเป็นพารามิเตอร์ Heatpump หรือเทอร์โมสแตท หรือตัวจับเวลา:
on @Heatpump_State then [...] end on ?setpoint then [...] end on timer=1 then [...] end
เมื่อกำหนดฟังก์ชั่น คุณเพียงแค่ตั้งชื่อบล็อกของคุณ จากนั้นคุณสามารถเรียกมันได้จากที่อื่น:
on foobar then [...] end on @Heatpump_State then foobar(); end
ฟังก์ชั่นสามารถมีพารามิเตอร์ที่คุณสามารถเรียกได้:
on foobar($a, $b, $c) then [...] on @Heatpump_State then foobar(1, 2, 3); end
หากคุณเรียกฟังก์ชันค่าน้อยกว่าฟังก์ชันจะใช้ พารามิเตอร์อื่นๆ ทั้งหมดจะมีค่า NULL
ขณะนี้มีฟังก์ชันพิเศษหนึ่งฟังก์ชันที่เรียกใช้เมื่อระบบบูตเครื่องเมื่อมีการบันทึกชุดกฎใหม่:
on System#Boot then [...] end
ฟังก์ชั่นพิเศษนี้สามารถใช้เพื่อตั้งค่าโกลบอลหรือตัวจับเวลาบางตัวในเบื้องต้น
ตัวดำเนินการปกติได้รับการสนับสนุนด้วยความเชื่อมโยงและลำดับความสำคัญมาตรฐาน วิธีนี้ช่วยให้คุณใช้คณิตศาสตร์ตามปกติได้
&&
: และ
||
: หรือ
==
: เท่ากับ`
>=
: มากกว่าหรือเท่ากับแล้ว
>
: ยิ่งใหญ่กว่านั้น
<
: น้อยแล้ว
<=
: น้อยกว่าหรือเท่ากับ
-
: ลบ
%
: โมดูลัส
*
: คูณ
/
: แบ่ง
+
: บวก
^
: พลัง
วงเล็บสามารถใช้เพื่อจัดลำดับความสำคัญของตัวดำเนินการได้เนื่องจากจะใช้ได้กับคณิตศาสตร์ทั่วไป
coalesce
ส่งกลับค่าแรกไม่ใช่ NULL
เช่น $b = NULL; $a = coalesce($b, 1);
จะส่งกลับ 1 ฟังก์ชันนี้ยอมรับอาร์กิวเมนต์ได้ไม่จำกัดจำนวน
max
ส่งกลับค่าสูงสุดของพารามิเตอร์อินพุต
min
ส่งคืนค่าต่ำสุดของพารามิเตอร์อินพุต
isset
ส่งคืนบูลีนจริงเมื่อตัวแปรอินพุตยังคงเป็น NULL
ในกรณีอื่น ๆ จะส่งคืนค่าเท็จ
round
ปัดเศษอินพุตทศนิยมให้เป็นจำนวนเต็มที่ใกล้ที่สุด
floor
ค่าจำนวนเต็มที่ใหญ่ที่สุดน้อยกว่าหรือเท่ากับค่าทศนิยมอินพุต
ceil
ค่าจำนวนเต็มที่น้อยที่สุดที่มากกว่าหรือเท่ากับอินพุตทศนิยม
setTimer
ตั้งเวลาให้ทริกเกอร์ใน X วินาที พารามิเตอร์ตัวแรกคือหมายเลขตัวจับเวลา และพารามิเตอร์ตัวที่สองคือจำนวนวินาทีก่อนที่จะเริ่มทำงาน ตัวจับเวลาจะทำงานเพียงครั้งเดียว จึงต้องตั้งค่าใหม่สำหรับกิจกรรมที่เกิดซ้ำ เมื่อตัวจับเวลาทริกเกอร์ เหตุการณ์ตัวจับเวลาจะเกิดขึ้นตามที่อธิบายไว้ข้างต้น เช่น
print
พิมพ์ค่าไปยังคอนโซล
concat
เชื่อมต่อค่าต่างๆ เข้าด้วยกันเป็นสตริงรวม เช่น: @SetCurves = concat('{zone1:{heat:{target:{high:', @Z1_Heat_Curve_Target_High_Temp, ',low:32}}}}');
on System#Boot then setTimer(3, 60); end on timer=3 then [...] setTimer(3, 60); end
เงื่อนไขที่รองรับเท่านั้นคือ if
, else
และ elseif
:
if [condition] then [...] else if [condition] then [...] end end
if [condition] then [...] elseif [condition] then if [condition] then [...] else [...] end elseif [condition] then [...] else [...] end
เมื่อระบบกฎถูกใช้โดยผู้ใช้มากขึ้นเรื่อยๆ ตัวอย่างเพิ่มเติมจะถูกเพิ่มลงในเอกสารประกอบ
กำลังคำนวณสงคราม
on calcWar($Ta1, $Tb1, $Ta2, $Tb2) then #maxTa = $Ta1; if @Outside_Temp >= $Tb1 then #maxTa = $Ta1; elseif @Outside_Temp <= $Tb2 then #maxTa = $Ta2; else #maxTa = $Ta1 + (($Tb1 - @Outside_Temp) * ($Ta2 - $Ta1) / ($Tb1 - $Tb2)); end end
จุดตั้งค่าเทอร์โมสตัท
on ?roomTemp then calcWar(32, 14, 41, -4); $margin = 0.25; if ?roomTemp > (?roomTempSet + $margin) then if @Heatpump_State == 1 then @SetHeatpump = 0; end elseif ?roomTemp < (?roomTempSet - $margin) then if @Heatpump_State == 0 then @SetHeatpump = 1; end else @SetZ1HeatRequestTemperature = round(#maxTa); end end
การรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานสามารถทำได้บนเว็บอินเทอร์เฟซ แต่หากเว็บอินเทอร์เฟซไม่พร้อมใช้งาน คุณสามารถทำการรีเซ็ตสองครั้งได้ การรีเซ็ตสองครั้งควรทำไม่เร็วเกินไป แต่ก็ไม่ช้าเกินไป โดยปกติแล้วครึ่งวินาทีระหว่างการรีเซ็ตทั้งสองควรทำเคล็ดลับ เพื่อระบุว่าการรีเซ็ตสองครั้งเป็นการรีเซ็ตเป็นค่าจากโรงงาน ไฟ LED สีฟ้าจะกะพริบอย่างรวดเร็ว (คุณต้องกดรีเซ็ตอีกครั้งตอนนี้เพื่อรีสตาร์ท HeishaMon กลับเป็นปกติ โดยที่ฮอตสปอต WiFi ควรมองเห็นได้อีกครั้ง)
ด้านล่างนี้คุณจะพบรายละเอียดทางเทคนิคเกี่ยวกับโครงการ วิธีสร้างสายเคเบิลของคุณเอง วิธีสร้าง PCB ของคุณเอง ฯลฯ
การสื่อสารสามารถสร้างได้ผ่านหนึ่งในสองซ็อกเก็ต: CN-CNT หรือ CN-NMODE หากคุณมีอินเทอร์เฟซ WiFi ของ Panasonic CZ-TAW1 ที่ต้องการแทนที่ด้วย HeishaMon เพียงเสียบสายเคเบิลออกจาก CZ-TAW1 แล้วเชื่อมต่อกับอุปกรณ์ HeishaMon ของคุณอีกครั้ง อย่างไรก็ตาม ไม่สามารถใช้ HeishaMon และโมดูล CZ-TAW1 ดั้งเดิมร่วมกันเป็นอุปกรณ์ที่ใช้งานอยู่ไม่ได้ อย่างไรก็ตาม คุณสามารถกำหนดให้ HeishaMon อยู่ในโหมด "Listen Only" ซึ่งจะทำให้ HeishaMon และโมดูล CZ-TAW1 ดั้งเดิมอยู่ร่วมกันได้ ข้อเสียเพียงอย่างเดียวคือ HeishaMon ไม่สามารถส่งคำสั่งและใช้ตัวเลือก PCB เสริมได้
พารามิเตอร์การสื่อสาร: TTL 5V UART 9600,8,E,1
CN-CNT Pin-out (จากบนลงล่าง)
1 - +5V (250mA)
2 - 0-5V TX (จากปั๊มความร้อน)
3 - 0-5V RX (ไปยังปั๊มความร้อน)
4 - +12V (250mA)
5 - GND
CN-NMODE Pin-out (จากซ้ายไปขวา)
คำเตือน! ตามที่พิมพ์บน PCB พินซ้ายคือพิน 4 และพินขวาคือพิน 1 อย่านับ 1 ถึง 4 จากซ้าย!
4 - +5V (250mA)
3 - 0-5V TX (จากปั๊มความร้อน)
2 - 0-5V RX (ไปยังปั๊มความร้อน)
1 - GND
HeishaMon จะได้รับไฟจาก Panasonic ผ่านสายเคเบิล (ไฟ 5v)
สามารถเชื่อมต่อ HeishaMon ในระยะไกลได้ ใช้งานได้สูงสุด 5 เมตรด้วยสายเคเบิลปกติ สำหรับระยะทางที่ไกลขึ้น สามารถกำหนดค่า TTL-to-RS485 ดังแสดงในรูปภาพด้านล่างได้ อย่างไรก็ตาม กำหนดให้ HeishaMon ต้องใช้พลังงานจากภายนอกโดยใช้ไฟ 5v (เช่น จากสาย USB)
RS-สั่งซื้อออนไลน์
คอนราดออกคำสั่ง
ใช้สายเคเบิล 4 ตัวนำหุ้มฉนวน 24 AWG บางเส้น
PCB ที่จำเป็นในการเชื่อมต่อกับปั๊มความร้อนได้รับการออกแบบโดยสมาชิกโครงการและมีดังต่อไปนี้ ส่วนที่สำคัญที่สุดของฮาร์ดแวร์คือการเลื่อนระดับระหว่าง 5v จาก Panasonic เป็น 3.3v ของ HeishaMon และ GPIO13/GPIO15 เปิดใช้งานบรรทัดหลังบูต
การออกแบบกรมควบคุมมลพิษจากสมาชิกโครงการ
รูปภาพ Wemos D1 เบต้า
รูปภาพ ESP12-F
เพื่อให้ทุกอย่างง่ายขึ้น คุณสามารถสั่งซื้อ PCB ที่สมบูรณ์จากสมาชิกโครงการบางส่วนได้:
ร้าน Tindie จาก Igor Ybema (หรือที่รู้จักในชื่อ TheHogNL) ในประเทศเนเธอร์แลนด์
บอร์ด:
esp8266 โดยชุมชน esp8266 เวอร์ชัน 3.0.2 Arduino
libs ทั้งหมดที่เราใช้จำเป็นสำหรับการรวบรวม
รายการหัวข้อ MQTT ที่บันทึกไว้ในปัจจุบันมีอยู่ที่นี่
ซอฟต์แวร์นี้ยังรองรับการอ่านเซ็นเซอร์อุณหภูมิ 1 สาย ds18b20 การกำหนดค่า 1 สายที่เหมาะสม (พร้อมตัวต้านทานแบบดึงขึ้น 4.7kohm) ที่เชื่อมต่อกับ GPIO4 จะถูกอ่านในแต่ละวินาทีที่กำหนดค่า (ขั้นต่ำ 5) และส่งที่หัวข้อ panasonic_heat_pump/1wire/"sensor-hex-address" บนบอร์ดที่ทำไว้ล่วงหน้า ตัวต้านทาน 4.7kohm นี้ได้รับการติดตั้งไว้แล้ว
Heishamon รุ่นใหม่ขนาดใหญ่ประกอบด้วยรีเลย์ออนบอร์ดสองตัวซึ่งสามารถเปิดและปิดได้โดยใช้คำสั่ง MQTT รีเลย์สามารถใช้สำหรับการสลับหน้าสัมผัสใดๆ แม้แต่ไฟหลัก 230V (สูงสุด 5A) ตัวอย่างเช่น การเปลี่ยนหน้าสัมผัส 230V ในปั๊มความร้อนเพื่อควบคุม 'เทอร์โมสตัทภายนอก' การเปิดหรือปิดปั๊ม หรืออุปกรณ์อื่นๆ ที่ใช้พลังงานต่ำ ฉันไม่แนะนำให้ใช้รีเลย์เป็นสวิตช์สำหรับเครื่องทำความร้อนไฟฟ้าเนื่องจากใช้พลังงานมากเกินไป หากต้องการควบคุมรีเลย์ เพียงส่งค่า 1 หรือ 0 ไปที่หัวข้อ MQTT "panasonic_heat_pump/gpio/relay/one" สำหรับรีเลย์ตัวหนึ่งหรือ "panasonic_heat_pump/gpio/relay/two" สำหรับรีเลย์ตัวที่สอง
หากบอร์ด heishamon ของคุณรองรับ opentherm ซอฟต์แวร์นี้ยังสามารถใช้เพื่อเชื่อมโยงข้อมูล opentherm จากเทอร์โมสตัทที่เข้ากันได้ไปยังระบบอัตโนมัติในบ้านของคุณผ่าน MQTT หรือ JSON และตามที่กล่าวไว้ข้างต้น ยังสามารถเชื่อมต่อในกฎโดยตรงเพื่อเชื่อมต่อข้อมูล opentherm กับปั๊มความร้อนและด้านหลังได้ เช่น เพื่อแสดงอุณหภูมิภายนอกจากปั๊มความร้อนบนเทอร์โมสแตทแบบเปิดของคุณ หากคุณเปิดใช้งานการสนับสนุน opentherm ในการตั้งค่า แท็บใหม่จะปรากฏบนหน้าเว็บ บนแท็บนั้นคุณจะเห็นค่า opentherm บางอันเป็นประเภท R(ead) และบางอันเป็น W(rite) และบางอันเป็นทั้งสองอย่าง อ่านหมายความว่าเทอร์โมสตัทสามารถอ่านข้อมูลนั้นจากเฮชามอนได้ คุณให้ข้อมูลดังกล่าวผ่าน MQTT (หรือใช้กฎ) โดยการอัปเดตค่านี้ในหัวข้อ mqtt 'opentherm/read' เช่น 'panasonic_heat_pump/opentherm/read/outsideTemp' ค่าการเขียนเป็นข้อมูลจากตัวควบคุมอุณหภูมิ เช่น 'roomTemp' มีอยู่ในหัวข้อ mqtt 'opentherm/write' คุณสามารถใช้ค่าเหล่านี้เพื่อเปลี่ยนพฤติกรรมของปั๊มความร้อนได้ตามที่คุณต้องการใช้ระบบอัตโนมัติในบ้านและคำสั่ง mqtt set-commands เพื่อ heishamon ในการใช้กฎภายใน
ตัวแปร opentherm ที่มีอยู่คือ:
chEnable ซึ่งเป็นบูลีนที่แสดงว่าควรเปิดใช้งานเครื่องทำความร้อนส่วนกลางหรือไม่ มักใช้เมื่อเทอร์โมสตัทต้องการให้บ้านของคุณร้อนขึ้น
dhwEnable ซึ่งเป็นบูลีนที่แสดงว่าควรเปิดใช้งานการทำความร้อนแบบ Dhw หรือไม่ มักใช้เป็นตัวเลือกผู้ใช้บนเทอร์โมสตัทเพื่อปิดระบบทำความร้อน DHW ในช่วงวันหยุด
CoolingEnable ซึ่งเป็นบูลีนที่แสดงว่าควรเปิดใช้งานการระบายความร้อนหรือไม่ ต้องการปริมาณความเย็นใน 'coolingControl' ดูด้านล่าง
roomTemp คือค่าจุดลอยตัวของอุณหภูมิห้องที่วัดโดยเทอร์โมสตัท
roomTempSet คือค่าจุดลอยตัวของค่าที่ตั้งไว้อุณหภูมิห้องที่ร้องขอบนเทอร์โมสตัท
chSetpoint คือค่าจุดลอยตัวของค่าที่ตั้งไว้ของน้ำที่คำนวณโดยเทอร์โมสตัท ตัวควบคุมอุณหภูมิ Opentherm พยายามตั้งค่า chSetpoint นี้ไม่ให้เกินค่าที่ตั้งไว้ของห้อง สามารถใช้ตั้งค่าจุดกำหนดน้ำบนปั๊มความร้อนได้ แต่เทอร์โมสตัทส่วนใหญ่ตอบสนองเร็วเกินไปเมื่อเทียบกับวิธีการทำงานของปั๊มความร้อน
maxRelativeModulation คือปริมาณของการมอดูเลต (0-100%) ที่ปั๊มความร้อน (ทาสของ opentherm) ได้รับอนุญาตให้ใช้ได้ (ดูการมอดูเลตแบบสัมพัทธ์ในค่า READ ซึ่งควรเท่ากับหรือต่ำกว่าค่าสูงสุดนี้เสมอ)
CoolingControl คือปริมาณความเย็น (0-100%) ที่เทอร์โมสตัทร้องขอจากปั๊มความร้อน ต้องใช้เทอร์โมสตัทแบบเปิดที่มีการรองรับการทำความเย็น
dhwSetpoint คือค่าจุดลอยตัวซึ่งเป็นค่าที่ตั้งไว้ของ DHW ปัจจุบันโดยเทอร์โมสตัท แต่ยังสามารถตั้งค่าโดย heishamon เพื่อแทนที่ค่าดังกล่าวได้ เทอร์โมสตัทบางตัวไม่รองรับสิ่งนี้ ไม่ควรตั้งค่าสูงกว่า dhwSetUppBound ดูด้านล่าง
maxTSet คือค่าจุดลอยตัวซึ่งกำหนดค่าเซ็ตพอยต์น้ำสูงสุด ผู้ใช้สามารถตั้งค่านี้บนเทอร์โมสตัทหรือตั้งค่าจากเฮอิชามอนก็ได้ ไม่ควรตั้งค่าสูงกว่า chSetUppBound ดูด้านล่าง
chPressure คือค่าจุดลอยตัวซึ่งกำหนดแรงดันน้ำที่วัดได้ของเครื่องทำความร้อนส่วนกลางที่เฮอิชามอนมอบให้
OutsideTemp คือค่าจุดลอยตัวซึ่งกำหนดอุณหภูมิภายนอกที่วัดได้ของเครื่องทำความร้อนส่วนกลางที่เฮอิชามอนมอบให้
inletTemp คือค่าจุดลอยตัวซึ่งกำหนดอุณหภูมิน้ำเข้าที่วัดได้ของเครื่องทำความร้อนส่วนกลางที่ Heishamon จัดหาให้
outletTemp คือค่าจุดลอยตัวซึ่งกำหนดอุณหภูมิทางออกของน้ำที่วัดได้ของเครื่องทำความร้อนส่วนกลางที่เฮอิชามอนจัดเตรียมไว้ให้
dhwTemp คือค่าจุดลอยตัวซึ่งกำหนดอุณหภูมิ dhw ที่วัดได้ของเครื่องทำความร้อนส่วนกลางที่จัดทำโดย heishamon
RelativeModulation คือจำนวน (0-100%) ของการมอดูเลตที่ปั๊มความร้อน (ทาสของ opentherm) กำลังทำงานอยู่ ควรต่ำกว่าหรือเท่ากับ maxRelativeModulation ที่กำหนดโดยเทอร์โมสตัทเสมอ
FlameState เป็นค่าบูลีน (ส่ง 'true', 'on' หรือ '1' เพื่อเปิดใช้งาน) ซึ่งกำหนดว่าเครื่องทำความร้อนส่วนกลางให้ความร้อนจากส่วนกลางหรือไม่
chState เป็นค่าบูลีน (ส่ง 'true', 'on' หรือ '1' เพื่อเปิดใช้งาน) ซึ่งกำหนดว่าปั๊มความร้อนอยู่ในโหมดการทำความร้อนในห้อง/ส่วนกลางหรือไม่ (เช่น วาล์ว 3 ทิศทางในห้อง ในโหมดทำความร้อน)
dhwState เป็นค่าบูลีน (ส่ง 'true', 'on' หรือ '1' เพื่อเปิดใช้งาน) ซึ่งกำหนดว่าปั๊มความร้อนอยู่ในโหมด DHW หรือไม่ (เช่น วาล์ว 3 ทางบน dhw)
CoolingState เป็นค่าบูลีน (ส่ง 'true', 'on' หรือ '1' เพื่อเปิดใช้งาน) ซึ่งกำหนดว่าปั๊มความร้อนอยู่ในโหมดทำความเย็นในห้อง/ส่วนกลาง (เช่น วาล์ว 3 ทิศทางในห้อง ในโหมดทำความเย็น)
dhwSetUppBound เป็นค่าจำนวนเต็มตั้งแต่ 0 ถึง 127 ซึ่งตั้งค่าอุณหภูมิ DHW สูงสุดที่รองรับ ดังนั้นเทอร์โมสตัทจึงไม่สามารถขอ dhwSetpoint ให้สูงกว่านี้ได้ ค่าเริ่มต้นตั้งไว้ที่ 75 หากต้องการแทนที่ ให้ส่งข้อความ MQTT ไปที่หัวข้อนี้และคงไว้เพื่อให้ heishamon ได้รับอีกครั้งหลังจากรีบูต
dhwSetLowBound เป็นค่าจำนวนเต็มตั้งแต่ 0 ถึง 127 ซึ่งตั้งค่าอุณหภูมิต่ำสุดของ DHW ที่รองรับ ดังนั้นเทอร์โมสตัทจึงไม่สามารถขอ dhwSetpoint ที่ต่ำกว่านี้ได้ ค่าเริ่มต้นตั้งไว้ที่ 40 หากต้องการแทนที่ ให้ส่งข้อความ MQTT ไปที่หัวข้อนี้และคงไว้เพื่อให้ heishamon ได้รับอีกครั้งหลังจากรีบูต
chSetUppBound เป็นค่าจำนวนเต็มตั้งแต่ 0 ถึง 127 ซึ่งตั้งค่าอุณหภูมิสูงสุด CH (น้ำร้อน) ที่รองรับ ดังนั้นเทอร์โมสตัทจึงไม่สามารถขอ chSetpoint ให้สูงกว่านี้ได้ ค่าเริ่มต้นตั้งไว้ที่ 65 หากต้องการแทนที่ ให้ส่งข้อความ MQTT ไปที่หัวข้อนี้และคงไว้เพื่อให้ heishamon ได้รับอีกครั้งหลังจากรีบูต
chSetLowBound เป็นค่าจำนวนเต็มตั้งแต่ 0 ถึง 127 ซึ่งตั้งค่าอุณหภูมิขั้นต่ำ CH (น้ำร้อน) ที่รองรับ ดังนั้นเทอร์โมสตัทจึงไม่สามารถขอ chSetpoint ที่ต่ำกว่านี้ได้ ค่าเริ่มต้นตั้งไว้ที่ 20 หากต้องการแทนที่ ให้ส่งข้อความ MQTT ไปที่หัวข้อนี้และคงไว้เพื่อให้ heishamon ได้รับอีกครั้งหลังจากรีบูต
รายการไบต์เอกสารปัจจุบันที่ถอดรหัสแล้วสามารถพบได้ที่นี่
Openhab2
ผู้ช่วยที่บ้าน
คู่มือ IOBroker
โดโมติซ