Penerimaan Sensornode untuk MySensor, parser yang membaca kode OBIS dan data meter dari pelabuhan Han dari meter daya Aidon Norwegia. Dapat berjalan dan ardino daya rendah 8 MHz.
Diuji pada Hafslund dan pada Eidsiva Power Meter
Parser mendekode DataStream MBUS sesuai dengan spesifikasi Hancode Norwegia - Kode OBIS. Adaptor ini relativ generik, terlepas dari urutan dan konten dari setiap pesan dan catatan.
Ref https://www.nek.no/wp-content/uploads/2018/11/aidon-han-intface-description-v10a-id-34331.pdf dan kutipan DLMS UA BURU BUKU: Kelas Antarmuka Cosem dan Sistem Identifikasi OBIS, DLMS DLMS UA UA 1000. 12.0
Perangkat keras adalah Arduino yang membaca aliran data serial membentuk adaptor MBUS ke TTL.
Konverter MBUS terhubung ke pelabuhan HAN dari meter daya. Adaptor diuji dengan Hafslund Aidon Meter, Arduino Node Sensor Saya dan Adaptor MBUS: https://www.ebay.com/itm/tss721a-breakout-module-with-isolation/113359924361?hash=item1a64c72c89:gs0aaoswf31b5pal:rk:4:pf:0
Node Arduino mysensor terhubung ke pengendali Rasperry Domoticz melalui jaringan mesh 2,4 MHz. Ref mysensor.org
Kata kunci: AMS Powermeter, Han Port, Obis, MBUS, COSEM, DOMOTIZC, MySensors
Serial perangkat lunak dapat digunakan untuk menguji parser, tetapi pada 3.3V pada 8MHz ini mungkin melambat saat mem -parsing pesan satu jam, gunakan RX TX.
Arduino 8MHz Daya Rendah adalah dari jenis ini: https://forum.mysensors.org/topic/2067/my-slim-2aa-battery-node
Arduno ini mungkin dapat ditenagai dari antarmuka MBUS. Ini tidak diuji. Saat ini kartu tersebut ditenagai dengan 3.3V melalui regulator step-down dari 5 V, mengkonsumsi 35mA, termasuk kerugian di regulator.
Data mysensor dikirim dalam sendData ().
Parser ini adalah parser rekursif "top down" yang digerakkan oleh tata bahasa pesan, yang ditentukan dalam referensi di atas. Tata bahasa dasarnya adalah:
Hdlcpackage = startmark, packageLen, frameheader, payload, fcc, endmark
startmark = endmark = "7e"
packagelen = 4 byte; "A", bilangan bulat 12 bit
frameeheader = 9 byte; Tidak diperiksa, diakhiri dengan CRC
Payload = DataHeader, Array, Daftar*
dataheader = “0F 40 00 00 00 00”; Mungkin tidak diperbaiki
array = «01», datalen
datalen = 1 byte; Int
register = struktur, structurecontent;
structureContent = octetString, obiscodeandcontent; Kode SE untuk detailnya
Header A0 2A 41 08 83 13 04 13 E6 E7 00: Frametype: 10 Framelength: 42
DataHeader 0F 40 00 00 00 00
Tipe & Len 01 01
02 03: Structur - 3
09 06: Ocet-String Len 6
01 00 01 07 00 ff: Obis Kode '1.0.1.7.0.255
06: Double-Long-Unligned (32bit)
00 00 06 44: Des 1604
02 02: Structur - 2
0F Int8
00: 0
16: enum
1b: Watt Active Power
6F 92 CRC
TODO: CRC tidak diperiksa,
uji daya membentuk mbus
Restrukturisasi parser ke kelas C ++
Ada ISUE dengan pangkalan bagian terakhir dari "satu jam pesan", tetapi tidak mempengaruhi data.
7e
A13E410883137F8EE6E700
// Panjang 318 0F4000000000
010e // Array 14
Meterid: 123456789012
Metertype: 6515
Obisversion: AIDON_V0001
Tanggal: 0-0-0-0-0-0-0-0-36-35-31-35-
ActivePowerQ1Q4: 1872
Cumulativactiveim: 2203350
ReactivePowerQ1Q2: 294
Currentl1: 8.1000003814
Phasevl1: 237.5000000000






Perangkat lunak ini disediakan oleh penulis dan kontributor `` sebagaimana adanya '' dan jaminan tersurat atau tersirat, termasuk, tetapi tidak terbatas pada, jaminan tersirat dari dapat diperjualbelikan dan kebugaran untuk tujuan tertentu ditolak. Dalam hal apa pun penulis atau kontributor tidak akan bertanggung jawab atas kerusakan langsung, tidak langsung, insidental, khusus, contoh, atau konsekuensial (termasuk, tetapi tidak terbatas pada, pengadaan barang atau layanan pengganti; hilang Kemungkinan kerusakan seperti itu.