Elvaco CMa11W
Detaljer
Beskrivning
CMa11W är en temperatur- och luftfuktighetsmätare för inomhusbruk som
kommunicerar via M-Bus.
Bruksanvisning
CMa11w är en envägs trådlös M-Bus temperatur-/luftfuktighetssensor för inomhusbruk. Sensorn har en hög precision och användarvänlighet samt en lång batteritid (upp till 12 år), vilket gör den till det optimala valet för fastighetsägare. Avläsning och konfigurering av produkten utförs enkelt via trådlös M-bus eller med hjälp av en mobiltelefon (via NFC).M-Busstandard EN 13757
Juridisk information
Alla skript tillhandahålls i befintligt skick och all användning sker på eget ansvar. Felaktig använding kan leda till skadad eller förstörd utrustning.
Skript kod
% Skript för Mbus modul Elvaco CMa11W.
% Original 190603 Peter Widetun Abelko
%
DEVICETYPE CMa11W NAMED "Elvaco CMa11W" TYPEID 311311
IS
PARAMETER
Id : "Address"INT;
PUBLIC
IDNr : "ID number"INT;
rec1 : "Fabrication number"[""]INT;
rec2 : "Avarage duration"["min"]INT;
rec3 : "RF level units (RSSI)"["dBm"]INT;
rec4 : "Temp 0"["°C"]DEC2;
rec5 : "Temp 1"["°C"]DEC2;
rec6 : "Temp 2"["°C"]DEC2;
rec7 : "Temp 0 min"["°C"]DEC2;
rec8 : "Temp 0 max"["°C"]DEC2;
rec9 : "Temp 1 min"["°C"]DEC2;
rec10: "Temp 1 max"["°C"]DEC2;
rec11: "RH 0"["%"]DEC1;
rec12: "RH 1"["%"]DEC1;
rec13: "RH 2"["%"]DEC1;
rec14: "RH 0 min"["%"]DEC1;
rec15: "RH 0 max"["%"]DEC1;
rec16: "RH 1 min"["%"]DEC1;
rec17: "RH 1 max"["%"]DEC1;
PRIVATE
tmp;
BAUDRATE 2400;
PARITY EVEN;
CHRGAPTIMEOUT 10;
CHECKSUM SUM8 SKIP 4;
POSTBYTES 1;
TELEGRAM Init NAMED "Init" IS
QUESTION
DATA[0] := HEX(10);
DATA[1] := HEX(40);
DATA[2] := BYTE(Id);
DATA[3] <- BYTE(DATA :=Id+64;);
DATA[4] := HEX(16);
ANSWER SIZE 1
DATA[0] = HEX(E5);
TIMEOUT 5000
END;
TELEGRAM Read NAMED "Read" IS
QUESTION
DATA[0] := HEX(10);
DATA[1] := HEX(7B);
DATA[2] := BYTE(Id);
DATA[3] <- BYTE(DATA :=Id+123;);
DATA[4] := HEX(16);
ANSWER SIZE 117
DATA[0] = HEX(68);
DATA[1] = HEX(6F);
DATA[2] = HEX(6F);
DATA[3] = HEX(68);
DATA[4] = HEX(08);
DATA[5] = BYTE(Id);
DATA[6] = HEX(72);
DATA[7] -> BYTE(IDNr := (DATA & HEX(F)) + 10*(DATA & HEX(F0))/16;);
DATA[8] -> BYTE(IDNr := IDNr + 100*(DATA & HEX(F)) + 1000*(DATA & HEX(F0))/16;);
DATA[9] -> BYTE(IDNr := IDNr + 10000*(DATA & HEX(F)) + 100000*(DATA & HEX(F0))/16;);
DATA[10] -> BYTE(IDNr := IDNr + 1000000*(DATA & HEX(F)) + 10000000*(DATA & HEX(F0))/16;);
DATA[14] = HEX(1B); % Medium = Reserved
% DIF 1 Fabrication number, 8 bcd
DATA[21] -> BYTE(tmp := (DATA & HEX(F)) + 10*(DATA & HEX(F0))/16;);
DATA[22] -> BYTE(tmp := tmp + 100*(DATA & HEX(F)) + 1000*(DATA & HEX(F0))/16;);
DATA[23] -> BYTE(tmp := tmp + 10000*(DATA & HEX(F)) + 100000*(DATA & HEX(F0))/16;);
DATA[24] -> BYTE(tmp := tmp + 1000000*(DATA & HEX(F)) + 10000000*(DATA & HEX(F0))/16;);
% DIF 2 Averaging Duration, 16 bit integer
DATA[27] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec2:=(tmp-65536); ELSE rec2:=tmp; ENDIF;);
% DIF 3 RF level units (RSSI), 8 bit integer
DATA[32] -> BYTE(rec3:=DATA;);
% DIF 4 Temp 0, 16 bit integer
DATA[37] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec4 :=(tmp-65536)/100; ELSE rec4 :=tmp/100; ENDIF;);
% DIF 5 Temp 1, 16 bit integer
DATA[41] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec5 :=(tmp-65536)/100; ELSE rec5 :=tmp/100; ENDIF;);
% DIF 6 Temp 2, 16 bit integer
DATA[46] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec6 :=(tmp-65536)/100; ELSE rec6 :=tmp/100; ENDIF;);
% DIF 7 Temp 0 min, 16 bit integer
DATA[50] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec7 :=(tmp-65536)/100; ELSE rec7 :=tmp/100; ENDIF;);
% DIF 8 Temp 0 max, 16 bit integer
DATA[54] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec8 :=(tmp-65536)/100; ELSE rec8 :=tmp/100; ENDIF;);
% DIF 9 Temp 1 min, 16 bit integer
DATA[58] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec9 :=(tmp-65536)/100; ELSE rec9 :=tmp/100; ENDIF;);
% DIF 10 Temp 1 max, 16 bit integer
DATA[62] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec10:=(tmp-65536)/100; ELSE rec10:=tmp/100; ENDIF;);
% DIF 11 Relativ fuktighet 0, 16 bit integer
DATA[67] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec11:=(tmp-65536)/10; ELSE rec11:=tmp/10; ENDIF;);
% DIF 12 Relativ fuktighet 1, 16 bit integer
DATA[72] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec12:=(tmp-65536)/10; ELSE rec12:=tmp/10; ENDIF;);
% DIF 13 Relativ fuktighet 2, 16 bit integer
DATA[78] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec13:=(tmp-65536)/10; ELSE rec13:=tmp/10; ENDIF;);
% DIF 14 Relativ fuktighet 0 min, 16 bit integer
DATA[83] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec14:=(tmp-65536)/10; ELSE rec14:=tmp/10; ENDIF;);
% DIF 15 Relativ fuktighet 0 max, 16 bit integer
DATA[88] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec15:=(tmp-65536)/10; ELSE rec15:=tmp/10; ENDIF;);
% DIF 16 Relativ fuktighet 1 min, 16 bit integer
DATA[93] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec16:=(tmp-65536)/10; ELSE rec16:=tmp/10; ENDIF;);
% DIF 17 Relativ fuktighet 1 max, 16 bit integer
DATA[98] -> WORD(tmp:=DATA; IF (tmp>32767) THEN rec17:=(tmp-65536)/10; ELSE rec17:=tmp/10; ENDIF;);
TIMEOUT 5000
END;
END;
Användarnas noteringar
Du måste vara inloggad för att göra en notering. Bli medlem eller logga in. Vi använder en moderator som godkänner noteringarna innan de visas.