Forum
Čaute všetci. Milujem toto fórum a pár rokov sa tu inšpirujem a čítam aj veci ktoré nepotrebujem ale často je to veľmi poučné a pre mňa keďže som IT zaujímavé. Ale k veci.
Snažím sa z Loxonu dostať maximum. Kúpil som niekoľko modulov 8-kanálových relé modbus za 18€ kus. Link na tieto moduly na ebay
Trápim sa s prestávkami už rok a niekoľko krát som to vzdal a znovu skúšal. Nakoniec som kúpil 2ks Railduino ale doslova ma sere že mám škatulu relé a neviem ich použiť.
Dokázal som max aby mi tieto relé zablikali LEDkou že dostali inštrukciu z Loxone modbus extensionu. Ale samozrejme že stavy relé výstupov sa neprepli. Problém je asi v tom že v Loxone Configu viem vybrať iba 4 commands pre actuators a teda neviem poslať inštrukciu podľa návodu nižšie.
Nemá s tým niekto skúsenosť? Som ochotný zaplatiť ak mi pomôže to rozbehať 🙁
Popis 12V relé modulov
8 Channel RS485 Relay Manual
- 2CH RS485 Relay Serial HyperTerminal Enter(8-channel do not have AT command mode):
http://v.youku.com/v_show/id_XMTM0ODY4NzkxMg==.html
- 2CH RS485 Relay Modbus Poll Enter(Usage 2-channel and 8-channel is the same):
http://v.youku.com/v_show/id_XMTM0ODY4OTg5Mg==.html
Features:
1: DC 12V power supply (voltage range 9-13V )
2: Standby current (all relays closed) 12MA, 1 relay open 40MA, 2 relays open 67MA, 3 relays open 95MA,4 relays open 121MA,5 relays open 147MA,6 relays open 173MA, 7 relays open 198MA,8 relays open 223MA
3: "open" "close" "Momentary" "Self-locking" "Interlock" "Delay" 6 Commands
4: MODBUS RTU command
5: Under the "Delay" command ,the maximum delay is 255 seconds
6 MODBUS commands can be made serial HyperTerminal (serial assistant) OR "Modbus Poll" Enter;
7 Under the MODBUS command mode, it can support up to 64 devices in parallel
8 Size: 90 * 62 * 19.5mm
9 Weight: 115 g
10 Maximum load: 10A / 250VAC, 10A / 125VAC, 10A / 30VDC, 10A / 28VDC, 10A / 12VDC
Glossary:
NO : Relay normally open contact
COM : Relay common contact
NC : Relay normally closed contact
Open : NO connection COM, NC disconnect COM
Close : NO disconnect COM, NC connection COM
Momentary : Enter the Momentary command, the Rreceiver Relay is Open, delay of 0.5 seconds after, Relay is Close;
Toggle : Enter the Toggle command, the Rreceiver Relay is Open, Enter the Toggle command again, Relay is Close;
Latched : Enter the Channel 1 Latched command, the receiver Channel 1 is Open, the Channel 2 is Close.
Enter the Channel 2 Latched command the receiver Channel 2 is Open, the Channel 1 is Close.
Enter the Channel 3 Latched command the receiver Channel 1 is Close, the Channel 2 is Close.
Delay : Enter the Delay command, the Rreceiver Relay is Open, delay of 0-9999 seconds(MODBUS command is 0-255 seconds )after, Relay is Close;
During the delay, Eter the Close command, immediately close the relay
Slave ID: A0-A5 is the slave ID, you can choose 64 different slave ID.
Under the MODBUS command mode,the slave ID must be correct
command Description, Please refer to "8 Channel RS485 Relay Command"
Typical applications:
MODBUS command mode (HEX), you can control a variety of ways: Serial Hyper Terminal Control (need to manually add the CRC), Modbus Poll software control (software automatically add the CRC), PLC or MCU process control
Wiring Diagram:
1 DC 12V control circuit,Wiring diagram below. "LOAD" may be camera,LED lights, fans, motors and other DC 12V equipment
2 DC 1-100VAC 85-265V control circuit,Wiring diagram below(Note:If not DC 12V load, need another DC 12V power supply). "LOAD" may be LED lights, fans, motors Lights, fluorescent lights, solar water heaters and other DC AC equipment
____________________________________________________
8 channel rs485 commamd
MODBUS command (function code 06 is Control command,03 is Read status command)
Note :
1 MODBUS command must be HEX
2 Slave ID (device address) must be consistent with the DIP switches (A0-A5)
9600 Band ,8 Data bits,None Parity,1 Stop Bit。
MODBUS 06 Command (Control command ,HEX):
|
Bytes Number |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
MODBUS Definitions |
Slave ID |
Function |
Address |
Data |
CRC Check |
|||
|
Function |
Device Address |
Function |
Channel number |
Command |
Delay time |
CRC Check |
||
|
Open |
0x00-0x2F |
0x06 |
0x0001- 0x0008 |
0x01 |
0x00 |
2Bytes CRC |
||
|
Close |
0x00-0x2F |
0x06 |
0x0001- 0x0008 |
0x02 |
0x00 |
2Bytes CRC |
||
|
Toggle (Self-locking) |
0x00-0x2F |
0x06 |
0x0001- 0x0008 |
0x03 |
0x00 |
2Bytes CRC |
||
|
Latch Inter-locking) |
0x00-0x2F |
0x06 |
0x0001- 0x0008 |
0x04 |
0x00 |
2Bytes CRC |
||
|
Momentary (Non-locking) |
0x00-0x2F |
0x06 |
0x0001- 0x0008 |
0x05 |
0x00 |
2Bytes CRC |
||
|
Delay |
0x00-0x2F |
0x06 |
0x0001- 0x0008 |
0x06 |
0x00-0xff |
2Bytes CRC |
||
Remarks:
1 Momentary mode, delay time is 1 seconds
2 Delay mode, delay time is 0-255 seconds
Return command:
Command is active, return to send commands; instruction is invalid no return.
MODBUS 03 Command (Read status command ,HEX):
|
Bytes Number |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
MODBUS Definitions |
Slave ID |
Function |
Address |
Data |
CRC Check |
|||
|
Function |
Device Address |
Function |
Starting register address |
Register length |
CRC Check |
|||
|
Read Channel 1 State |
0x00-0x2F |
0x03 |
0x0001
|
0x0001
|
|
|||
|
Read Channel 2 State |
0x00-0x2F |
0x03 |
0x0002 |
0x0001
|
|
|||
|
Read 2 consecutive channels status |
0x00-0x2F |
0x03 |
0x0001-0x0003 |
0x0002
|
|
|||
|
Read 3 consecutive channels status |
0x00-0x2F |
0x03 |
0x0001-0x0002 |
0x0003
|
|
|||
|
Read all 8 channels status |
0x00-0x2F |
0x03 |
0x0001 |
0x0008
|
|
|||
Read status command returns (function code 03, HEX format):
|
Bytes length |
1 |
1 |
1 |
|
2 |
|
MODBUS Definitions |
Slave ID |
Function |
data length |
data |
CRC16 Check |
|
Function |
Device Address |
Function |
data length |
Relay state 0x0001 open 0x0000 close |
CRC16 Check |
|
Channel 1 open |
0x00-0x1F |
0x03 |
0x02
|
0x0001 |
|
|
Channel 1 close |
0x00-0x1F |
0x03 |
0x02
|
0x0000 |
|
|
Channel 2 open |
0x00-0x1F |
0x03 |
0x02
|
0x0001 |
|
|
Channel 2 close |
0x00-0x1F |
0x03 |
0x02
|
0x0000 |
|
|
Channel 1 open Channel 2 open |
0x00-0x1F |
0x03 |
0x04
|
0x0001 0x0001 |
|
|
Channel 1 open Channel 2 close |
0x00-0x1F |
0x03 |
0x04
|
0x0001 0x0000 |
|
|
Channel 1 close Channel 2 open |
0x00-0x1F |
0x03 |
0x04
|
0x0000 0x0001 |
|
|
Channel 1 close Channel 2 close |
0x00-0x1F |
0x03 |
0x04
|
0x0000 0x0000 |
|
MODBUS commands you can use "Modbus Poll" input, as shown below
(CRC check generated automatically)
You can also use HyperTerminal serial input, as shown below
(Manually add CRC check)
Examples (Slave ID is 1,DIP switch state)
Channel 1 Open :01 06 00 01 01 00 D9 9A
Channel 1 Close :01 06 00 01 02 00 D9 6A
Channel 1 Toggle:01 06 00 01 03 00 D8 FA
Channel 1 Latch:01 06 00 01 04 00 DA CA
Channel 1 Momentary: 01 06 00 01 05 00 DB 5A
Channel 1 Delay 10 seconds : 01 06 00 01 06 0A 5B AD
Channel 1 Delay 100 seconds: 01 06 00 01 06 64 DA 41
Channel 2 Open :01 06 00 02 01 00 29 9A
Channel 2 Close :01 06 00 02 02 00 29 6A
Channel 2 Toggle :01 06 00 02 03 00 28 FA
Channel 2 Latch :01 06 00 02 04 00 2A CA
Channel 2 Momentary : 01 06 00 02 05 00 2B 5A
Channel 2 Delay 10 seconds : 01 06 00 02 06 0A AB AD
Channel 2 Delay 100 seconds : 01 06 00 02 06 64 2A 41
Read state (assuming that the channel 1 is open, the channel 2 is close).
Read channel 1 state :01 03 00 01 00 01 D5 CA
Return open:01 03 02 00 01 79 84
Read channel 2 state :01 03 00 02 00 01 25 CA
Return close:01 03 02 00 00 B8 44
Read channel 1 and channel 2 state :01 03 00 01 00 02 95 CB
Return channel open and channel 2 close :01 03 04 00 01 00 00 AB F3
CRC check code(C51 MCU):
const unsigned char code auchCRCHi[256] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
} ;
const unsigned char code auchCRCLo[256] = {
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,0x04,
0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8,
0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10,
0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,
0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38,
0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C,
0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0,
0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,
0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,
0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C,
0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,
0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54,
0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98,
0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
} ;
unsigned int CRC_16(unsigned char *str,unsigned int usDataLen)
{
unsigned char uchCRCHi = 0xFF ; /* high byte of CRC initialized */
unsigned char uchCRCLo = 0xFF ; /* low byte of CRC initialized */
unsigned uIndex ; /* will index into CRC lookup table */
while (usDataLen--)/* pass through message buffer */
{
uIndex = uchCRCHi ^ *str++ ; /* calculate the CRC */
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex];
uchCRCLo = auchCRCLo[uIndex] ;
}
return (uchCRCHi << 8 | uchCRCLo) ;
}
Ten prvý link nefunguje. Skús uviesť aké moduli máš.
zle som pozrel, funguje
Za mna len jedina poznamka - naco si komplikovat zivot na loxone s nejakou seriovkou.
chápem kam mieriš. mal som pocit že celkové náklady budú supernízke a modbus použijem aj na elektromer (ten mi tiež nejde lebo už som otrávený)
Ano, aj ten mam v rozvadzaci a tiez ho zatial (uz rok :D) nemam zapojeny.
nevedel by si mi prosím poradiť ako nájsť niekoho komu zaplatím a porieši mi to? dúfal som že tu na fóre mi niekto pošle cenovú ponuku
Nepoznam. Samemu by sa mi s tym nechcelo srat, chce to mat doma loxone, modbus extension a jednu tu rele dosku a kopec volneho casu. S loxone a modbus nemam ziadne skusenosti, uz na zaciatku som 485 a modbus definitivne zavrhol ako totalny nezmysel v prostredi RD. Kolko mas tych rele dosiek? Pokial jednu-dve, nechces to hodit do kosa a poskladat si moje moduly a k tomu externe rele? Pripadne kupit nejaku hotovu cinsku rele dosku s ethernetom a polaborovat tymto smerom?
Ďakujem za odpoveď. Mám 8 dosiek z Číny. Ale skôr ma serie ten modbus stal dva krát toľko ako tie dosky. Prosím hod mi link na tvoje moduly. Či myslíš quido?
Omg. Uznávam že si naozaj borec. Toto sa mi zda ešte pracnejšie ako sa pozrieť na tie čínske hotove boardy. Ďakujem ešte raz za komunikáciu.
Ak by sa tu našiel niekto kto mi to je ochotný rozbehať nech napíše správu. Dohodneme sa na sume a ja mu pošlem relay boardy aj modbus extension.
Prajem všetkým čo to čítajú nech im projekty idú od ruky
Podařilo se vám to rozběhat? Myslím že pro čtení hodnot z elektroměru potřebuji z Loxone posílat příkazy 0x04 a nevím jak. Loxone podle mě posílá 0x03...
Čauko. Bohužiaľ ani som sa tomu ďalej nevenoval. Chcel som niekomu zaplatiť ale oficiálni technici z certifikovaných firiem nemajú záujem a nikoho iného som nenašiel.
Smutné ale Loxone nie je veľmi otvorený systém. To je na jednej strane dobre ale zaťažuje to peňaženku
Já byl úspěšný pomoci MODBUS TOOL. Naráz jsem vyčítal po 50 adresách a našel ji.
Není to složité.
Ahoj @xtasker, byl jsi úspěšný? Povedlo se nakonfigurovat relé desky? Umí s tím popřípadě někdo poradit?
Mam modbus rele dosky z ali na zavlahu rozhadzane rozne po zahrade. Co ti nejde?