impremetation ของ sensornode สำหรับ MySensor ตัวแยกวิเคราะห์ที่อ่านรหัส OBIS และข้อมูลเมตรจากพอร์ตฮันของเครื่องวัดพลังงาน Aidon ของนอร์เวย์ สามารถทำงานได้และ Ardino พลังงานต่ำ 8 MHz
ทดสอบบน Hafslund และเครื่องวัดพลังงาน Eidsiva
ตัวแยกวิเคราะห์ถอดรหัส MBUS DataStream ตามข้อกำหนดของนอร์เวย์ Hancode - รหัส OBIS อะแดปเตอร์นี้เป็น relativ ทั่วไปโดยไม่ขึ้นกับคำสั่งซื้อและเนื้อหาของแต่ละข้อความและบันทึก
ref https://www.nek.no/wp-content/uploads/2018/11/aidon-han-interface-description-v10a-id-34331.pdf และข้อความที่ตัดตอนมา DLMS UA Blue 12.0
ฮาร์ดแวร์เป็น Arduino ที่อ่านกระแสข้อมูลแบบอนุกรมรูปแบบ MBUs ไปยังอะแดปเตอร์ TTL
ตัวแปลง MBUS เชื่อมต่อกับพอร์ตฮันของเครื่องวัดพลังงาน อะแดปเตอร์ได้รับการทดสอบด้วย Hafslund Aidon Meter, Arduino โหนดเซ็นเซอร์ของฉันและอะแดปเตอร์ MBUS: https://www.ebay.com/itm/tss721a-breakout-module-with-isolation/11335924361?hash=item1a64c72c89:g:gs0aaoswf31b5pal:rk:4:
โหนด Arduino Mysensor เชื่อมต่อกับตัวควบคุม Rasperry Domoticz ผ่านเครือข่ายตาข่าย 2.4 MHz ref mysensor.org
คำสำคัญ: AMS Powermeter, Han Port, Obis, MBUS, Cosem, Domotizc, MySensors
ซอฟต์แวร์อนุกรมสามารถใช้ในการทดสอบตัวแยกวิเคราะห์ แต่บน 3.3V บน 8MHz นี่อาจจะช้าลงเมื่อแยกวิเคราะห์ข้อความหนึ่งชั่วโมงให้ใช้ RX TX
พลังงานต่ำ 8MHz Arduino เป็นประเภทนี้: https://forum.mysensors.org/topic/2067/my-slim-2aa-battery-node
Arduno นี้อาจใช้พลังงานจากอินเตอร์เฟส MBUS สิ่งนี้ไม่ได้ทดสอบ ปัจจุบันการ์ดใช้พลังงาน 3.3V ผ่านตัวควบคุมขั้นตอนจาก 5 V ซึ่งใช้ 35mA รวมถึงการสูญเสียในหน่วยงานกำกับดูแล
ข้อมูล MySensors ถูกส่งใน senddata ()
ตัวแยกวิเคราะห์นี้เป็นตัวแยกวิเคราะห์แบบเรียกซ้ำ "จากบนลงล่าง" ซึ่งขับเคลื่อนโดยไวยากรณ์ของข้อความที่ระบุไว้ในการอ้างอิงด้านบน ไวยากรณ์พื้นฐานคือ:
hdlcPackage = startmark, packagelen, frameheader, payload, fcc, endmark
startmark = endmark =“ 7e”
Packagelen = 4 ไบต์; “ A”, จำนวนเต็ม 12 บิต
FrameHeader = 9 ไบต์; ไม่ได้ตรวจสอบจบลงด้วย CRC
payload = dataheader, อาร์เรย์, ลงทะเบียน*
dataheader =“ 0f 40 00 00 00 00 00”; อาจไม่ได้รับการแก้ไข
array = « 01 », datalen
datalen = 1 ไบต์; int
register = โครงสร้าง, structurecontent;
structurecontent = octetstring, obiscodeandcontent; รหัส SE สำหรับรายละเอียด
ส่วนหัว A0 2A 41 08 83 13 04 13 E6 E7 00: กรอบ: 10 framelength: 42
Dataheader 0F 40 00 00 00 00
Type & Len 01 01
02 03: โครงสร้าง - 3
09 06: Ocet-String Len 6
01 00 01 07 00 ff: Obis Kode '1.0.1.7.0.255
06: สองเท่าที่ไม่ได้ลงนาม (32 บิต)
00 00 06 44: ธ.ค. 1604
02 02: โครงสร้าง - 2
0f int8
00: 0
16: enum
1B: พลังที่ใช้งานอยู่
6F 92 CRC
TODO: CRC ไม่ได้ตรวจสอบ
รูปแบบการทดสอบแบบฟอร์ม MBUS
ปรับโครงสร้างตัวแยกวิเคราะห์เป็นคลาส C ++
มี ISUE กับการแยกส่วนสุดท้ายของ "ข้อความหนึ่งชั่วโมง" แต่มันไม่ส่งผลกระทบต่อข้อมูล
7e
A13E410883137F8EE6E700
// ความยาว 318 0F4000000000
010E // อาร์เรย์ 14
Meterid: 123456789012
Metertype: 6515
Obisversion: Aidon_v0001
วันที่: 0-0-0-0-0-0-0-0-36-35-31-35-
ActivePowerQ1Q4: 1872
cumulativactiveim: 2203350
ReactivePowerQ1Q2: 294
CurrentL1: 8.1000003814
Phasevl1: 237.5000000000






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