เอกสาร

ตัวนับที่ผู้ใช้กำหนด

หมายเหตุ: cFos Charging Manager สามารถอ่านค่าอินเวอร์เตอร์พลังงานแสงอาทิตย์ส่วนใหญ่ได้โดยใช้ SunSpec (ประเภทอุปกรณ์ "SunSpec Solar Inverter / Meter") ในกรณีนี้ คุณไม่จำเป็นต้องสร้างคำนิยามตัวนับของคุณเอง

cFos Charging Manager ช่วยให้คุณสร้างคำจำกัดความของมาตรวัดของคุณเองเพื่อรองรับมาตรวัดที่ไม่ได้อยู่ในรายการมาตรฐาน ขณะนี้มีสามประเภท: ตัวนับ Modbus, ตัวนับ HTTP/JSON และตัวนับ MQTT/JSON ไฟล์คำจำกัดความสำหรับตัวนับเหล่านี้คล้ายกันมาก ตัววัด Modbus อ่านข้อมูลผ่าน Modbus จากรีจิสเตอร์เฉพาะ ขณะที่ตัววัด HTTP/JSON รับข้อมูลผ่านคำขอ HTTP และแยกวิเคราะห์ JSON ในการตอบสนอง สำหรับตัววัด MQTT/JSON ตัวจัดการการชาร์จของ cFos จะสมัครรับข้อมูลหัวข้อ MQTT และแยกวิเคราะห์ข้อความที่เผยแพร่ภายใต้หัวข้อเป็น JSON cFos Charging Manager ใช้ "ภาษาแบบสอบถาม" ขนาดเล็กในการแยกวิเคราะห์ นี่คือเอกสารประกอบของ ความสามารถ MQTT ใน cFos Charging Manager

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

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

นี่คือตัวอย่างคำจำกัดความสำหรับ Modbus และคำจำกัดความสำหรับ HTTP/JSON:
ดาวน์โหลดคำจำกัดความตัวอย่างสำหรับ Modbus meter
ดาวน์โหลดคำจำกัดความตัวอย่างสำหรับตัววัด HTTP/JSON

ตัวจัดการการชาร์จมาพร้อมกับไฟล์ดังกล่าวบางไฟล์ แต่คุณสามารถอัปโหลดไฟล์ของคุณเองภายใต้ "การกำหนดค่าระบบ" และลบไฟล์เหล่านั้นอีกครั้ง
ที่นี่คุณจะได้พบกับคำจำกัดความเคาน์เตอร์ส่วนใหญ่ที่เรามีให้:
ดาวน์โหลดคำจำกัดความตัวนับที่ให้มา

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

ดาวน์โหลดคำจำกัดความของตัวนับสำหรับตัวนับเพิ่มเติม

โครงสร้างของไฟล์คำจำกัดความ:

คำจำกัดความของตัวนับคือไฟล์ JSON ที่มีออบเจ็กต์ JSON โกลบอลที่มีคุณสมบัติและออบเจ็กต์ย่อย 'rtype' กำหนดประเภทของการดำเนินการอ่าน: 0 = Modbus, 1 = HTTP/JSON, 2 = MQTT/JSON 'mtype' กำหนดประเภทอุปกรณ์: 0 = อุปกรณ์อื่นๆ, 1 = มิเตอร์, 2 = อินเวอร์เตอร์, 4 = ที่เก็บข้อมูลแบตเตอรี่

คุณสามารถระบุตัวเลขเป็นทศนิยมหรือฐานสิบหกโดยนำหน้า 0x อนุญาตให้ใช้ความคิดเห็นบรรทัดเดียวโดยใช้ // เราขอแนะนำให้เรียกใช้ไฟล์คำจำกัดความของคุณผ่านเครื่องมือตรวจสอบ JSON5 เช่น เครื่องมือตรวจสอบ JSON5 นี้

อย่าลืมอ่านบท สูตร เพื่อทำความเข้าใจว่าค่าใดบ้างที่สามารถใช้ในสูตรในข้อมูลอ้างอิงต่อไปนี้

คำจำกัดความ Modbus มีวัตถุ 'rtu' ที่มีคุณสมบัติดังต่อไปนี้:

Silence_period เป็นมิลลิวินาที กำหนดระยะเวลาหยุดชั่วคราวก่อนเข้าถึง Modbus RTU เพื่อให้อุปกรณ์รับรู้จุดเริ่มต้นของข้อความ
Silence_same_slave, true: การหยุดชั่วคราวจะยังคงอยู่แม้ว่าจะมีการเข้าถึงอุปกรณ์เดียวกันหลายครั้ง
ลองใหม่: จำนวนครั้งในการลองใหม่หากอุปกรณ์ไม่ตอบสนอง
rcv_timeout: หน่วยเป็นมิลลิวินาที เวลารอสูงสุดต่อการเข้าถึงจนกว่าอุปกรณ์จะตอบสนอง

คุณสมบัติส่วนกลางเหล่านี้ใช้กับ Modbus TCP และ RTU:

modbus_read: หมายเลขฟังก์ชันของคำสั่ง Modbus read โดยปกติคือ 3 หรือ 4
modbus_read_max_registers: จำนวนการลงทะเบียนสูงสุดที่สามารถอ่านได้ในครั้งเดียว
modbus_allow_gaps: true = พื้นที่ลงทะเบียนที่ไม่ได้ใช้อาจถูกอ่านในการดำเนินการอ่าน

สำหรับ Modbus TCP และ HTTP/JSON มีอ็อบเจ็กต์ 'tcp' ที่มีคุณสมบัติดังต่อไปนี้:

connect_timeout: คือ msec เวลารอสูงสุดสำหรับการเชื่อมต่อ TCP
delay_after_connect: เป็นมิลลิวินาที หยุดชั่วคราวหลังจากสร้างการเชื่อมต่อก่อนที่จะส่งคำสั่งแรก

ทั้งสองประเภทคำจำกัดความ (Modbus และ HTTP/JSON) มีคุณสมบัติดังต่อไปนี้:

upd_delay: ในมิลลิวินาที กำหนดช่วงเวลาที่อุปกรณ์สามารถอ่านได้ อุปกรณ์บางอย่างโอเวอร์โหลดเมื่อสำรวจบ่อยเกินไป
ผู้ผลิต: เชือก, ชื่อผู้ผลิต. ซึ่งจะแสดงในข้อมูลแบบขยายของไทล์
delay_accumulated: true = ค่าสะสม (kWh) จะถูกสอบถามทุกๆ 3 วินาทีหรือเมื่อมีพลังงานเพียงพอเท่านั้น เท็จ = ค่าเหล่านี้จะถูกสอบถามเสมอ
ui_addr: URL หากแตกต่างจากที่อยู่อุปกรณ์สำหรับการเรียกเว็บอินเตอร์เฟส
สงวนไว้: อาร์เรย์ที่มีค่าตีความเป็น 0 (มีประโยชน์หากอุปกรณ์รองรับค่าบางอย่างขึ้นอยู่กับรุ่น)

หากคุณละเว้นคุณสมบัติที่แสดงด้านบน cFos Charging Manager จะใช้ค่าเริ่มต้น ซึ่งทำงานได้ดีในกรณีส่วนใหญ่

ขั้นตอนต่อไปในคำจำกัดความ JSON คือคำจำกัดความของตัวแปรที่มิเตอร์ใช้ในการอ่านหรือคำนวณค่าของกระแส แรงดัน ฯลฯ ตัวจัดการการชาร์จรู้จักตัวแปรต่อไปนี้:
type_designation, version, firmware_version, serial: รูปแบบเหล่านี้เป็นการกำหนดรูปแบบตามที่แสดงในข้อมูลขยายของไทล์ สิ่งเหล่านี้จะถูกสอบถามครั้งเดียวเมื่อตั้งค่าหรือรีเซ็ตตัวนับ
voltage_l1..voltage_l3, current_l1..current_l3, power_w, power_var, power_va, power_w_l1..power_w_l3: cFos Charging Manager พยายามคำนวณค่า current_l1..l3, power_w และ power_va จากค่าเหล่านี้สำหรับ voltage_l1..l3 คุณไม่จำเป็นต้องระบุตัวแปรทั้งหมด cFos Charging Manager พยายามคำนวณค่าจากตัวแปรที่มีอยู่
import_wh, export_wh: ตัวจัดการการชาร์จใช้ตัวแปรเหล่านี้เพื่อแสดง import_wh และ export_wh ด้วยตัวนับทิศทางเดียว (เช่น อินเวอร์เตอร์) คุณควรกำหนดเฉพาะ import_wh เท่านั้น ควรกำหนด export_wh สำหรับมิเตอร์แบบสองทิศทางเท่านั้น (เช่น หน่วยความจำหรือมิเตอร์ไฟฟ้าที่ซื้อ)

soc: ใช้งานได้ทันที สถานะการชาร์จของที่เก็บแบตเตอรี่จะแสดงเป็น % ในไทล์
นอกจากนี้ คุณสามารถกำหนดตัวแปรอื่นๆ ด้วยชื่อที่แตกต่างกัน ซึ่งจะถูกอ่านออกมาพร้อมกับการอัปเดตทุกครั้งหรือคำนวณโดยใช้สูตร หากคุณกำหนดตัวแปรที่ใช้ CM เริ่มต้น เช่น CM._set_price ค่าที่กำหนดจะถูกจัดเก็บไว้ในตัวแปรตัวจัดการการชาร์จส่วนกลาง (ดูด้านล่าง) และสามารถสอบถามตามนั้น
ตัวแปรที่มี *: หากคุณกำหนดตัวแปรที่ขึ้นต้นด้วย * ตัวแปรเหล่านี้จะแสดงใน UI ในไทล์ตัวนับภายใต้ข้อมูลเพิ่มเติม เช่น อุณหภูมิของที่เก็บแบตเตอรี่

คำจำกัดความของตัวแปร:

วัตถุนี้ตั้งชื่อตามชื่อของตัวแปรที่แสดงด้านบนและมีคุณสมบัติดังต่อไปนี้:
คงที่: สตริงที่มีค่าคงที่ มีประโยชน์หากไม่สามารถกำหนดค่าได้ เช่น สำหรับการกำหนดประเภทหรือแรงดันไฟฟ้า
expr: สตริง ตัวแปรไม่ได้อ่านออก แต่ประเมินเป็นสูตร
type: ถ้าไม่คงที่หรือ expr ประเภทของตัวแปร: int16, uint16, int32, uint32, float, int64, string นี่เป็นสิ่งสำคัญสำหรับ Modbus ในการอ่านรีจิสเตอร์ในรูปแบบที่ถูกต้อง uint16 และ uint32 เป็นประเภทที่รับได้เฉพาะจำนวนบวกเท่านั้น ด้วย JSON/HTTP คุณสามารถใช้ float ได้
ความละเอียด: float ค่าที่อ่านจะคูณด้วย 'ความละเอียด' ค่าแรงดันไฟฟ้าต้องเป็นโวลต์ กระแสเป็นมิลลิแอมแปร์ กำลังเป็นวัตต์ และพลังงานเป็นวัตต์-ชั่วโมง (Wh) ด้วย 'ความละเอียด' ที่เป็นลบ คุณสามารถกลับค่าได้หากมีเครื่องหมายตรงกันข้าม
ครั้งเดียว: bool (จริงหรือเท็จ) หากเป็นจริง ค่าจะถูกอ่านเพียงครั้งเดียวเมื่อมีการเตรียมใช้งานอุปกรณ์ ไม่เช่นนั้นจะเป็นช่วงๆ
ที่อยู่: หมายเลข (Modbus) หรือสตริง (HTTP/JSON), หมายเลขลงทะเบียน Modbus หรือ URL HTTP ของค่าที่จะอ่าน
query: String สำหรับ HTTP JSON ซึ่งเป็นข้อมูลในภาษาคิวรีของผู้จัดการการเรียกเก็บเงินซึ่งค้นหาค่าที่จะอ่านในการตอบกลับ JSON
order: String สำหรับ Modbus ลำดับไบต์อาจเป็น "hl" หรือ "lh" ซึ่งมีค่าอยู่ length: number โดยที่ Modbus คือความยาวของสตริงในรีจิสเตอร์ สำหรับตัวแปร 'version' และ 'firmware_version' นั้น 'length' ใช้เพื่อเปลี่ยนเวอร์ชันตัวเลขให้เป็นสตริงที่มีจุด อนุญาตให้ใช้ค่า 2 หรือ 4 สำหรับ 'ความยาว' ซึ่งจะส่งผลให้มีรูปแบบเวอร์ชัน ab และ abcd สำหรับ 'length' 2 และพิมพ์ 'int16' หรือ 'uint16' ตัวจัดการการชาร์จจะแยกไบต์ต่ำและสูงด้วยจุด สำหรับ 'int32' หรือ 'uint32' คำต่ำและสูง สำหรับ 'int64' dword ต่ำและสูง ด้วย 'lenth' 4 และ 'int32' หรือ 'uint32' ตัวจัดการการชาร์จจะแบ่งค่าออกเป็น 4 ไบต์โดยคั่นด้วยจุด สำหรับ 'int64' ทั้ง 4 คำตรงกัน
regex: สตริง หากมีการระบุนิพจน์ทั่วไป การตอบกลับของตัวนับไม่จำเป็นต้องอยู่ใน JSON ด้วยเหตุนี้ การจับคู่นิพจน์ทั่วไปทั้งหมดหรือกลุ่มแรกจึงได้รับการประเมิน โปรดใช้เฉพาะในกรณีที่อุปกรณ์ไม่ส่งคืน JSON นี่คือรายการคุณลักษณะของนิพจน์ทั่วไปของเรา:
อักขระใด ๆ: .
คลาสที่มีชื่อ: \d \s \w \D \S \W
คลาสที่ไม่ระบุชื่อ: [a-z0-9_], [^0-9], [^\d]
กลุ่มที่มีทางเลือก: (ab|cd|ef)
กลุ่มที่ไม่ได้ถูกจับ: (?:ab|cd)
(โลภ) สักครั้งหรือไม่มีเลย: a?, a??
(โลภ) มากมายหรือไม่มีเลย: a*, a*?
(โลภ) หนึ่งครั้งหรือมากกว่า: a+, a+?
จุดเริ่มต้นของสตริง: ^
จุดสิ้นสุดของสตริง: $

คำจำกัดความของอินพุต:

ตัวจัดการการชาร์จสามารถค้นหาค่าอินพุตได้สูงสุด 32 ค่าจากการลงทะเบียนหรือองค์ประกอบ JSON ที่แตกต่างกันต่ออุปกรณ์ คุณสมบัติ "อินพุต" คืออาร์เรย์ JSON คุณต้องกำหนดคุณสมบัติต่อไปนี้สำหรับแต่ละอินพุต:
ที่อยู่: ที่อยู่ (การลงทะเบียน Modbus หรือ URL)
count: จำนวนบิตอินพุตที่อ่านด้วยคำขอนี้
แบบสอบถาม: สำหรับ HTTP/JSON ภาษาของแบบสอบถามเพื่อค้นหาค่าในการตอบกลับ

ในการอัปเดตแต่ละครั้ง cFos Charging Manager จะอ่านอินพุตทั้งหมดที่กำหนดไว้ด้วยวิธีนี้ และวางบิตภายในอาร์เรย์ที่สามารถสืบค้นได้ในสูตร Input1..InputN

คำจำกัดความของผลลัพธ์:

ตัวจัดการการชาร์จสามารถเปลี่ยนได้สูงสุด 32 เอาต์พุตต่ออุปกรณ์ เอาต์พุตถูกกำหนดภายใต้ "เอาต์พุต" เป็นอาร์เรย์ JSON ของอ็อบเจ็กต์เอาต์พุต เอาต์พุตทั้งหมดจะเปลี่ยนเมื่อสิ้นสุดรอบการอัปเดตแต่ละรอบ หากสถานะของเอาต์พุตที่เกี่ยวข้องมีการเปลี่ยนแปลง
คุณต้องกำหนดคุณสมบัติต่อไปนี้ในอ็อบเจกต์เอาต์พุตสำหรับแต่ละเอาต์พุต:
ที่อยู่: HTTP URL พร้อมวิธี HTTP ทางเลือก เช่น GET//} ในการตั้งค่าการลงทะเบียน Modbus คุณสามารถใช้ cFos Charging Manager HTTP API ตัวจัดการการชาร์จรับรู้การเข้าถึงที่เหมาะสมไปยัง localhost และเปลี่ยนเส้นทางคำขอไปยังตัวจัดการภายใน ดังนั้นคุณไม่จำเป็นต้องมีการอนุญาต เช่นเดียวกับการเข้าถึง HTTP API ภายนอก หาก URL ว่างเปล่าหลังจากการแทนที่ทั้งหมด จะไม่มีการตั้งค่าเอาต์พุต ตัวอย่างเช่น คุณสามารถสลับเอาต์พุตได้ก็ต่อเมื่อมีตัวแปรบางตัวอยู่ (ดูสูตร: ฟังก์ชันที่มีอยู่ ()) คุณยังสามารถระบุ ${address} และ ${id} ในที่อยู่ได้อีกด้วย นี่คือที่อยู่อุปกรณ์ปัจจุบันและ ID Modbus ตามที่กำหนดไว้ในการตั้งค่า ที่อยู่และรหัสจะใช้สำหรับการใช้ Modbus API เป็นหลัก (ดูด้านล่าง)
body: เนื้อหา HTTP ทางเลือกสำหรับ POST หรือ PUT
ใน URL และเนื้อหา คุณสามารถใช้สูตร ${expr} ที่อ้างอิงตัวแปรตัวจัดการการชาร์จส่วนกลางหรือจากตัววัดที่เกี่ยวข้อง สูตร 'expr' จะได้รับการประเมินเมื่อมีการตั้งค่าเอาต์พุตและแทนที่ด้วยข้อความของ URL หรือเนื้อหา ในตัวอย่างด้านบน หาก//ตั้งค่าเอาต์พุตและ//ล้างข้อมูล คุณสามารถกำหนดตัวแปร 'var1' และตั้งค่าได้ เป็น 1 ตามต้องการหรือตั้งค่า 0 ด้วยวิธีนี้ คุณยังสามารถเขียนค่าตัวเลขเพื่อควบคุมประสิทธิภาพของหน่วยความจำในการลงทะเบียน Modbus ที่คุณเคยเก็บไว้ในตัวแปรโดยใช้สูตร
หากแทนที่จะส่งค่าตัวเลขใน URL คุณต้องแทนที่ข้อความด้วยข้อความอื่นโดยขึ้นอยู่กับสูตร เช่น ด้วยซ็อกเก็ต Shelly WLAN คุณสามารถเขียนดังนี้: ${if expr`text1`text2} "เครื่องหมายอัญประกาศเดี่ยว" คือเครื่องหมายย้อนกลับ (รหัส ASCII 96) ถ้า 'expr' != 0 จะใช้ text1 มิฉะนั้นจะใช้ text2 URL สำหรับซ็อกเก็ต Shelly WLAN มีลักษณะดังนี้: http://<ip-addr>/relay/0?turn=${if expr`on`off} เช่น ถ้า expr != 0 ตัวจัดการการชาร์จ โทร http ://<ip-addr>/relay/0?turn=on หรือ http://<ip-addr>/relay/0?turn=off

หากคุณป้อนเส้นทางสัมพัทธ์เป็น URL ตัวจัดการการชาร์จจะใช้ที่อยู่ที่กำหนดค่าสำหรับอุปกรณ์ที่เกี่ยวข้อง หากคุณป้อน 'localhost' เป็นโดเมน ตัวจัดการการชาร์จจะใช้ที่อยู่ของอุปกรณ์ที่ใช้งานอยู่ หากตรวจพบการเข้าถึง API ของตัวเอง จะใช้ตัวจัดการภายในแทนการดำเนินการเข้าถึง HTTP เต็มรูปแบบ ดังนั้นคุณจึงไม่ต้องเก็บชื่อผู้ใช้และรหัสผ่านในคำจำกัดความของมิเตอร์ URL ที่ขึ้นต้นด้วย * ทำให้ตัวจัดการการชาร์จทำการเข้าถึง HTTP เต็มรูปแบบเสมอ

รีเซ็ตเอาต์พุต: นอกจากอาร์เรย์ "เอาต์พุต" แล้ว คุณยังสามารถกำหนดอาร์เรย์ชื่อ "รีเซ็ต" ซึ่งมีโครงสร้างเหมือนกับอาร์เรย์ "เอาต์พุต" ซึ่งหมายความว่าสามารถรีเซ็ตเอาต์พุตเป็นค่าเริ่มต้นได้เมื่อปิดใช้งานอุปกรณ์ เมื่อรวมกับตัวแปรที่ผู้ใช้กำหนดและ "once": true จะช่วยให้คุณกู้คืนอุปกรณ์กลับสู่สถานะเริ่มต้นได้
เขียนเอาต์พุตเป็นระยะ: สำหรับอุปกรณ์บางอย่าง ต้องเขียนเอาต์พุตเป็นระยะ มิฉะนั้น อุปกรณ์จะรีเซ็ตค่าเป็น "ค่าเริ่มต้น" ตัวอย่างเช่น หน่วยความจำ Kostal ใช้กฎมาตรฐานอีกครั้ง หากตัวควบคุมหน่วยความจำไม่ได้ถูกเขียนมาระยะหนึ่ง ในการตั้งค่าเอาต์พุตเป็นระยะ คุณสามารถนำหน้าที่อยู่ด้วย #xxx# โดยที่ xxx ระบุจำนวนวินาทีที่เอาต์พุตจะถูกเขียนใหม่ แม้ว่าค่าที่จะเขียนจะยังคงเดิมก็ตาม ตัวอย่างเช่น ถ้าที่อยู่คือ /cnf?cmd=set_cm_vars&name=test&val=42 คุณสามารถใช้ #30#/cnf?cmd=set_cm_vars&name=test&val=42 เพื่อให้แน่ใจว่าค่านี้ถูกเขียนทุกๆ 30 วินาทีจะกลายเป็น

คำจำกัดความของภาษาแบบสอบถาม:

ปัจจุบัน ชื่อสมาชิกและตัวดำเนินการ "." สามารถใช้ในนิพจน์การค้นหา "query" และ "[]" ใช้ ตัวอย่าง:

ทดสอบองค์ประกอบที่ชื่อว่า "test"
name1.name2องค์ประกอบชื่อ "name2" ในออบเจ็กต์ลูก "name1"
ชื่อ [idx]องค์ประกอบ "idx" ขององค์ประกอบ "ชื่อ" ของวัตถุ "idx" อาจเป็นตัวเลขได้ เช่น สำหรับอาร์เรย์หรือสตริง
ชื่อ ["u2"]องค์ประกอบ "u2" ขององค์ประกอบวัตถุ "ชื่อ" สอดคล้องกับ "name.u2"
ชื่อ[{"el1": "v1", "el2": 3}].valueเลือกองค์ประกอบอาร์เรย์ที่ตรงตามเงื่อนไขสัญกรณ์วัตถุและประเมินองค์ประกอบที่ชื่อ 'ค่า' ตัวอย่างเช่น ที่นี่ องค์ประกอบถูกเลือกในอาร์เรย์ 'ชื่อ' ที่มีองค์ประกอบวัตถุ 'el1' ที่มีค่า 'v1' และ 'el2' ด้วยค่า 3 จากนั้นค่าขององค์ประกอบ 'ค่า' จะถูกส่งคืนจากวัตถุนี้ .

ตัวแปรตัวจัดการการชาร์จทั่วโลก:

คุณสามารถสร้างตัวแปรในการกำหนดค่าตัวจัดการการชาร์จ คุณสามารถใช้ค่าคงที่หรือสูตรเป็นค่าได้ เมื่อสิ้นสุดรอบการอัปเดตแต่ละครั้ง ตัวจัดการการชาร์จจะคำนวณค่าของตัวแปรนี้ใหม่หากจำเป็น จากนั้นคุณสามารถใช้ค่าเหล่านี้ใน (บางส่วน) พารามิเตอร์ตัวจัดการการชาร์จ กฎการชาร์จ หรือเพื่อควบคุมเอาต์พุต คุณยังสามารถเขียน E x.member หรือ M x.member เป็นตัวแปรได้อีกด้วย ที่นี่ E x และ M x คือรหัสอุปกรณ์ของกล่องติดผนังหรือมิเตอร์ที่ตั้งค่าในตัวจัดการการชาร์จ สมาชิกคือตัวแปร "กำหนดโดยผู้ใช้" ที่เก็บไว้ในอุปกรณ์ที่เกี่ยวข้อง ตัวแปรบางตัวมีความหมายพิเศษ: ด้วย KEBA "out1" เป็นเอาต์พุตการสลับ โดย ABB B23 เมตร "out1" และ "out2" เป็นเอาต์พุตการสลับ (สำหรับรุ่นที่รองรับสิ่งนี้) A 1 สลับเอาต์พุต, 0 ปิดอีกครั้ง

หากคุณมีอุปกรณ์ที่ต้องเปิดภายใต้เงื่อนไขบางอย่างแต่ต้องเปิดใช้งานไปชั่วขณะ (เช่น เครื่องซักผ้า เครื่องล้างจาน) คุณสามารถกำหนดตัวแปรเป็น "ทริกเกอร์" ได้เช่นกัน จากนั้นสูตรของตัวแปรคือเงื่อนไขที่กำหนดตัวแปรเป็น 1 หลังจากปรับเวลาได้ จะถูกรีเซ็ตเป็น 0 "เงื่อนไขรีทริกเกอร์" อนุญาตให้ขยายเวลาจนกว่าจะปิดสวิตช์ (เช่น ตั้งค่าตัวแปรเป็น 0) ครั้งแล้วครั้งเล่าตราบเท่าที่ตรงตามเงื่อนไข

เพื่อวัตถุประสงค์ในการทดสอบ คุณสามารถแสดงตัวจัดการการชาร์จและตัวแปรมิเตอร์ได้ เช่น ราคาปัจจุบันจาก Awattar:


                        ภาพหน้าจอของตัวแปรตัวนับ

ผลลัพธ์ของตัวจัดการการชาร์จทั่วโลก:

ในการกำหนดค่าตัวจัดการการชาร์จ คุณสามารถกำหนดค่าเอาต์พุตทั่วโลกตามที่อธิบายไว้ข้างต้นในคำจำกัดความของมิเตอร์ภายใต้ 'เอาต์พุต' สิ่งเหล่านี้ถูกตั้งค่าเมื่อสิ้นสุดรอบการอัปเดตแต่ละครั้ง หากสถานะมีการเปลี่ยนแปลง หากคุณต้องการควบคุมเอาต์พุตการสลับในอุปกรณ์ที่ผู้ใช้กำหนด ขอแนะนำแบบแผนข้างต้น (ดูตัวแปรตัวจัดการการชาร์จ): คุณตั้งค่าตัวแปรด้วยชื่อ "out1", "out2" ฯลฯ ในมิเตอร์ที่ผู้ใช้กำหนดและตั้งค่า เอาต์พุตในมิเตอร์ที่ผู้ใช้กำหนดซึ่งอยู่ใน สลับเอาต์พุตตามค่าของตัวแปรนี้

Global Modbus API ของตัวจัดการการชาร์จ:

Modbus API ของ Charging Manager ใช้เพื่อควบคุมอุปกรณ์ Modbus ที่มีที่อยู่ Modbus RTU หรือ TCP (ซึ่งสามารถเข้าถึงได้โดยตัวจัดการการชาร์จ) ป้อน COMx,bd,8,p,s เป็นที่อยู่สำหรับ Modbus RTU เช่นเดียวกับการกำหนดค่าของอุปกรณ์แต่ละตัว โดยที่ x คือหมายเลขพอร์ต COM bd คืออัตราบอด p คือพาริตี ('N', ' E' หรือ ' O') และ s คือจำนวนบิตหยุด (1 หรือ 2) ด้วย Modbus TCP ที่อยู่คือที่อยู่ IP ของอุปกรณ์ในเครือข่าย Charging Manager รวมถึงหมายเลขพอร์ต
URL (สำหรับ HTTP GET) ของ Modbus API คือ:
/cnf?cmd=modbus_get หรือ /cnf?cmd=modbus_set
cFos Charging Manager รองรับพารามิเตอร์การสืบค้นเพิ่มเติมต่อไปนี้:
addr: ที่อยู่อุปกรณ์ Modbus RTU หรือ TCP ด้านบน
func: หมายเลขฟังก์ชัน Modbus เช่น 3 หรือ 4 สำหรับการอ่าน 6 หรือ 16 สำหรับการเขียน
id: ID อุปกรณ์ของอุปกรณ์ Modbus
reg: หมายเลขทะเบียน Modbus ค่าสามารถระบุเป็นทศนิยมหรือฐานสิบหก (พร้อมคำนำหน้า 0x)
val: ตัวเลข ค่าที่จะเขียนลงในทะเบียน ละเลยในขณะที่อ่าน
ชนิด: 'w' 16 บิต (ค่าเริ่มต้น), d = 32 บิต, f = float, q = 64 บิต, s = สตริง
cnt: number, ความยาวสูงสุดของสตริงในรีจิสเตอร์, ละเว้นสำหรับประเภทอื่นหรือตั้งค่าเป็น 1
order: สตริงที่มีลำดับไบต์ ไม่ว่าจะเป็น "hl" หรือ "lh"

หมายเหตุ: หากใช้ 'เครื่องวัด' เป็นหลักในการควบคุม คุณสามารถตรวจสอบตัวเลือก 'ซ่อนอุปกรณ์' ในการตั้งค่าของไทล์นี้ เพื่อไม่ให้อุปกรณ์นี้ปรากฏในหน้าเริ่มต้น

หมายเหตุ: บางเมตรที่อ่านผ่าน HTTP ต้อง ใช้ชื่อผู้ใช้/รหัสผ่าน เป็นการอนุญาต คุณสามารถระบุสิ่งนี้ในที่อยู่สำหรับการเข้าถึง HTTP เช่นด้วย http://username:password@192.168.2.111 หากชื่อผู้ใช้หรือรหัสผ่านของคุณมี "@" คุณต้องแทนที่ด้วย "%40"