Implémetation de Sendorode pour Mysensor, un analyseur qui lisait les codes OBIS et les données du compteur du port HAN d'un compteur de puissance norvégien Aidon. Peut fonctionner et un ardino de faible puissance de 8 MHz.
Testé sur un compteur de puissance Hafslund et Eidsiva
L'analyseur décode un datasteream MBUS en fonction de la spécification norvégienne Hancode - codes OBIS. Cet adaptateur est générique relativ, indépendant de l'ordre et du contenu de chaque message et enregistrement.
Ref https://www.nek.no/wp-content/uploads/2018/11/aidon-han-interface-description-v10a-id-34331.pdf et Excerpt dlms ua blue livre: COSEM Interface Classes et OBIS d'identification Système, Excellent DLMS UA 1000-1 Ed. 12.0
Le matériel est un arduino qui lit un flux de données série Formulaire un adaptateur MBUS vers TTL.
Le convertisseur MBUS est connecté au port HAN du compteur de puissance. L'adaptateur est testé avec Hafslund Aidon Meter, un nœud arduino mon capteur et un adaptateur MBUS: https://www.ebay.com/itm/tss721a-breakout-module-with-isolation/113359924361?hash=item1a64c72c89: gs:gs0aaoswf31b5pal:rk:4:pf:0
Le nœud Arduino MySensor est connecté à un contrôleur Rasperry Domoticz via un réseau de maillage de 2,4 MHz. Ref mysensor.org
Mots-clés: AMS PowerMètre, Han Port, OBIS, MBUS, Cosem, Domotizc, MySensors
Software Serial peut être utilisé pour tester l'analyseur, mais sur un 3,3 V sur 8 MHz, cela peut être ralenti lors de l'analyse du message d'une heure, utilisez RX TX.
La faible puissance 8 MHz Arduino est de ce type: https://forum.mysensors.org/topic/2067/my-slim-2aa-battery-node
Cet arduno peut probablement être alimenté à partir de l'interface MBUS. Ce n'est pas testé. Actuellement, la carte est alimentée avec 3,3 V via un régulateur de bas de 5 V, il consomme 35 mA, y compris la perte dans le régulateur.
Les données MySensors sont envoyées dans SendData ().
Cet analyseur est un analyseur récursif "haut vers le bas" entraîné par la grammaire du message, spécifié dans la référence ci-dessus. La grammaire de base est:
Hdlcpackage = startmark, packagelen, frameheader, charge utile, FCC, Endarin
startmark = ENDMARK = "7E"
packagelen = 4 octets; «A», entier 12 bits
FrameHeader = 9 octets; Non vérifié, se termine par un CRC
charge utile = dataheader, array, enregistrement *
DataHeader = «0f 40 00 00 00 00»; pourrait ne pas être fixé
Array = «01», Datalen
Datalen = 1 octet; Int
registre = structure, structureContent;
StructureContent = OctetString, ObiscodeAndContent; Code SE pour plus de détails
En-tête A0 2A 41 08 83 13 04 13 E6 E7 00: Frametype: 10 Framelngle: 42
DataHeader 0f 40 00 00 00 00
Type & Len 01 01
02 03: Structure - 3
09 06: Ocet-String Len 6
01 00 01 07 00 FF: Obis Kode '1.0.1.7.0.255
06: Double-longuement (32 bits)
00 00 06 44: décembre 1604
02 02: Structure - 2
0f Int8
00: 0
16: Enum
1b: puissance active Watt
6f 92 CRC
TODO: CRC n'est pas vérifié,
puissance de test Formez les MBU
restructurer l'analyseur à une classe C ++
Il y a un ISUe avec la mise en parcourir les dernières parties du "message d'une heure", mais il n'affecte pas les données.
7E
A13E410883137F8EE6E700
// longueur 318 0f4000000000
010E // Array 14
Meterid: 123456789012
MetType: 6515
OBISSORITION: AIDON_V0001
Date: 0-0-0-0-0-0-0-0-36-35-31-35-
Activepowerq1q4: 1872
cumulativactiveM: 2203350
ReactivePowerq1q2: 294
Currentl1: 8.1000003814
Phasevl1: 237.5000000000






Ce logiciel est fourni par l'auteur et les contributeurs `` tel quel '' et toute garantie expresse ou implicite, y compris, mais sans s'y limiter, les garanties implicites de qualité marchande et d'adéquation à un usage particulier sont déclinées. En aucun cas, l'auteur ou les contributeurs ne seront responsables de tout dommage directement, indirect, accessoire, spécial, exemplaire ou consécutif (y compris, mais sans s'y limiter La possibilité de tels dégâts.