Closed augisbud closed 5 years ago
After many tries , go without resistors it will work just fine. I use a wemos d1 , 13,15 is only used for debugging I use the rx/tx
updated wiki
Hello, I'm trying to integrate with the Evo Paradox board, will it work? Cool you upgraded the wiki but did not see anything about the resistors, did not you use it?
yes you can do without, if the evo uses the standerd 37byte message it will work
you could start by just adding a ftdi adapter and sniffing the serial. if you see standerd 37byte messages then it will work.
Nice, thanks for the tips. Another question is, can I send commands to the card or just read?
Yes you can, I have been using it for about 6 months with nodered getting feedback and sending commands. I have all my zones doors windows as devices on openHAB. It nice arming and knowing lights will be turned off and heat turned down.
I have implemented all states for command. Arm,sleep,stay,disarm. I have implemented these on openHAB but not disarm I want that to be on the panel and with a code.
What are the paradox board models you've tested?
I have tested sp4000 and sp6000 there is also a wiki page
Congrats Maragelis, What a cool project. I am super frustrated that i bought Ip150 module for $120 instead using $2 wemos :)
Anyway. Now i am trying to connect wemos d1 mini to my Spectra 65 (SP65) but without any luck. I can not get the status nor the output through the mqtt. Here is the layout of the SP65 board
Your help and advices will make me so happy to retire the IP150 module and use the wemos instead.
Everything you need is in the wiki. I believe the sp65 is the same as the sp6000. As long as the panel users the 37byte message format the project will work. To check you will need to sniff the serial with a serial adapter and look at the serial messages.
Thanks for your fast reply!
I did everything which is related to the WIKI but it is not working at all. The wemos is connected to the MQTT server and it is not receiving any status messages nor commands. How can i check whether it is working? How to debug it? I have this module which can connect serial to usb
Also, do I need to add upfront my panel password into the ino file or i can do that with a MQTT command.
Is there a chance that the RX and TX connectors to be different pins on my SP65?
Do i have to change the name of the topic path? /home/PARADOX4000/out to /home/PARADOX65/out or with lowercase?
1.) Gpio 15 or D8 can be used to debug just connect to RS232 module RX pin 2.) panel password is sent in mqtt message 3.) sp65 looks the same as sp6000 so serial is the same pin2 from top is ground then pin 3 RX then TX 4.) no you dont need to change the names, if you want its up to you..
are you getting status messages on /home/PARADOX4000/status ? if not the wemos is not connected to the network.
try your RS232 module straight on the panel are you reading anything?
I would suggest if you want to try out branch/test its more stable and uses gpio 13/15 (D7/D8) for rx/tx and serial/usb as debug.
https://github.com/maragelis/ParadoxRs232toMqtt/tree/test
hope i helped
WeMos is not getting any status messages. It is connected to the network and also it is connected to the MQTT server for sure. I can see the IP address of the WeMos at my MQTT broker and it reads that it is connected. The problem is that I am not getting any statuses when I subscribe to /home/PARADOX4000/status
I will try to read something from the RS232 module straight to the computer. Do you know a serial monitoring software for windows 10?
If i understand you correctly... I have to connect the WeMos to the SP65 via RX/TX and then to connect RS232 module to the WeMos 13/15 to debug it? Where should i connect the serial/usb to debug it?
Originally i am using WeMos RX/TX instead of 13/15. But in your code i can see that you define gpio 13 and 15 on line 21 and 22 `#define paradoxRX 13
on init the wemos sends a hello message "ParadoxController V2.11 " this you should see if you left everything as is in the code the status message is on topic /paradox/status and not /home/PARADOX4000/status
try this listen to topic # on mqtt and see whats coming in
const char root_topicOut = "/paradox/out"; const char root_topicStatus = "/paradox/status"; const char *root_topicIn = "/paradox/in";
changed wiki to the correct topics so there is no misunderstanding. Sorry about that.
Oh wow. I've never tried it with /paradox/status topic :) According to your documentation, the topics are different
Will test it later and will keep you updated :) Thanks for your support!
Maragelis it works like a charm! Awesome!
This is the message i get for Zone event:
{ "armstatus":224, "event":0, "sub_event":7, "dummy":"Home office "}
I managed to command the system. Never thought that there is a special PC password and indeed it is 0000 :)
When i arm the system in Sleep Mode it reeds several out messages. Can you tell me what does all these messages mean because i need to port the json to my Home Assistant. Here are the messagase after i load the IN command:
{ "armstatus":226, "event":2, "sub_event":14, "dummy":"Area 2 "}
{ "armstatus":226, "event":3, "sub_event":2, "dummy":""}
{ "armstatus":226, "event":30, "sub_event":5, "dummy":""}
{ "armstatus":226, "event":2, "sub_event":8, "dummy":"Area 1 "}
{ "armstatus":226, "event":2, "sub_event":9, "dummy":"Area 1 "}
{ "armstatus":226, "event":2, "sub_event":12, "dummy":"Area 2 "}
{ "armstatus":226, "event":6, "sub_event":4, "dummy":""}
{ "armstatus":226, "event":26, "sub_event":1, "dummy":""}
{ "armstatus":226, "event":30, "sub_event":3, "dummy":""}
{ "armstatus":226, "event":6, "sub_event":27, "dummy":""}
{ "armstatus":224, "event":26, "sub_event":1, "dummy":""}
{ "armstatus":224, "event":48, "sub_event":3, "dummy":""}
The wiki has most of them just look it up. The one you want is event 6 subevent 4 which is arm sleep if I am not mistaken
I don't know much about home assistant never used it. If anyone wants to help me I can send arm trigger events on another topic, just for hassio and it can be tailored to it so no other message processing is needed.
Updated the code to use the same 4 digit code used on the keypad for security reasons. so dont use the 0000 just use the same one you use to arm disarm .
Any news on this can I close the issue ?
Hi Margolis,
I am going to share your project in the Home Assistant community forums. I am sure there will be someone who can help integrating this project into HASS
https://www.home-assistant.io/components/alarm_control_panel.manual_mqtt/ this can be used if you have node-red installed as well on the hassio pc. I think i can cook something up. Do you use node-red ? https://nodered.org/
try this with the plugin and node-red import this flow into node and the plugin should start working, just change the mqtt server
[{"id":"cdfcb044.6512c","type":"tab","label":"github","disabled":false,"info":""},{"id":"5af303dd.8907ec","type":"mqtt in","z":"cdfcb044.6512c","name":"","topic":"/paradox/out","qos":"2","broker":"240f31f6.8f29ce","x":110,"y":400,"wires":[["2184666b.a93eaa"]]},{"id":"2184666b.a93eaa","type":"switch","z":"cdfcb044.6512c","name":"","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"6","vt":"num"},{"t":"eq","v":"2","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":310,"y":400,"wires":[["7bc20bd.244f6f4"],["172bffae.5565b"]]},{"id":"7bc20bd.244f6f4","type":"switch","z":"cdfcb044.6512c","name":"Arm Codes","property":"payload.sub_event","propertyType":"msg","rules":[{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"}],"checkall":"true","outputs":2,"x":590,"y":360,"wires":[["a437b26b.63e96"],["4b32231f.ac7dbc"]],"outputLabels":["Stay Mode",""]},{"id":"a437b26b.63e96","type":"trigger","z":"cdfcb044.6512c","op1":"armed_home","op2":"","op1type":"str","op2type":"nul","duration":"2","extend":false,"units":"s","reset":"","bytopic":"all","name":"armed_home","x":790,"y":340,"wires":[["347c42d9.2b68ae"]]},{"id":"4b32231f.ac7dbc","type":"trigger","z":"cdfcb044.6512c","op1":"armed_night","op2":"","op1type":"str","op2type":"nul","duration":"2","extend":false,"units":"s","reset":"","bytopic":"all","name":"armed_night","x":790,"y":380,"wires":[["347c42d9.2b68ae"]]},{"id":"347c42d9.2b68ae","type":"change","z":"cdfcb044.6512c","name":"Set Sleep","rules":[{"t":"set","p":"Sleep","pt":"flow","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":360,"wires":[["d4469f05.ae736"]]},{"id":"5a8f90e1.5966f","type":"switch","z":"cdfcb044.6512c","name":"","property":"Sleep","propertyType":"flow","rules":[{"t":"false"}],"checkall":"true","outputs":1,"x":1070,"y":440,"wires":[["d4469f05.ae736"]]},{"id":"961cd4ae.bf9458","type":"trigger","z":"cdfcb044.6512c","op1":"armed_away","op2":"","op1type":"str","op2type":"nul","duration":"2","extend":false,"units":"s","reset":"","bytopic":"all","name":"armed_away","x":890,"y":440,"wires":[["5a8f90e1.5966f"]]},{"id":"dae4293f.8665e8","type":"delay","z":"cdfcb044.6512c","name":"","pauseType":"delay","timeout":"3","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":720,"y":440,"wires":[["961cd4ae.bf9458"]]},{"id":"172bffae.5565b","type":"switch","z":"cdfcb044.6512c","name":"Arm Codes","property":"payload.sub_event","propertyType":"msg","rules":[{"t":"eq","v":"12","vt":"num"},{"t":"eq","v":"11","vt":"num"},{"t":"eq","v":"4","vt":"num"}],"checkall":"true","outputs":3,"x":530,"y":460,"wires":[["dae4293f.8665e8"],["e1341b0e.2d7c88"],["23db5828.0a3e98"]],"outputLabels":["Full Arm","Disarm",""]},{"id":"e1341b0e.2d7c88","type":"trigger","z":"cdfcb044.6512c","op1":"disarmed","op2":"","op1type":"str","op2type":"nul","duration":"5","extend":false,"units":"s","reset":"","bytopic":"all","name":"Disarmed","x":760,"y":500,"wires":[["d6b05c08.4b539"]]},{"id":"d6b05c08.4b539","type":"change","z":"cdfcb044.6512c","name":"Set Sleep","rules":[{"t":"set","p":"Sleep","pt":"flow","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":920,"y":500,"wires":[["d4469f05.ae736"]]},{"id":"23db5828.0a3e98","type":"trigger","z":"cdfcb044.6512c","op1":"triggered","op2":"","op1type":"str","op2type":"nul","duration":"2","extend":true,"units":"s","reset":"","bytopic":"all","name":"triggered","x":780,"y":560,"wires":[["d4469f05.ae736"]]},{"id":"d4469f05.ae736","type":"mqtt out","z":"cdfcb044.6512c","name":"","topic":"home/alarm","qos":"","retain":"","broker":"240f31f6.8f29ce","x":1350,"y":480,"wires":[]},{"id":"240f31f6.8f29ce","type":"mqtt-broker","z":"","name":"","broker":"192.168.2.230","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","willTopic":"","willQos":"0","willPayload":""}]
Unfortunately, I don't have node-red. Can you explain what you did here? Is it a flow depending on what is the message?
The general issue I have is that the system gets unresponsive after the alarm event. Somehow it is unresponsive until I clear the event from the system keyboard (Mem > Clear) than it gets back with the reporting. Do you have the same issue after Alarm event? Did you ever tried it :)
no have not had that issue
Great project!
I managed to get this working with a MG5050, Home Assistant and Node-Red, this is the node Red Flow I've strung together.
[{"id":"4b73d18c.d53fa8","type":"tab","label":"Paradox","disabled":false,"info":""},{"id":"a2853419.412578","type":"mqtt in","z":"4b73d18c.d53fa8","name":"","topic":"/paradox/out","qos":"2","broker":"b02cb90a.238498","x":110,"y":160,"wires":[["32b63bda.38cdb4"]]},{"id":"94fb2be6.e30308","type":"switch","z":"4b73d18c.d53fa8","name":"event","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"2","vt":"num"},{"t":"eq","v":"6","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":160,"wires":[["89a8d178.c86aa8"],["9cdbc3fd.2e141"]]},{"id":"af3d2a82.4a60d","type":"mqtt out","z":"4b73d18c.d53fa8","name":"","topic":"home/alarm/set","qos":"","retain":"","broker":"b02cb90a.238498","x":1360,"y":140,"wires":[]},{"id":"c367e9e8.2cd6a8","type":"trigger","z":"4b73d18c.d53fa8","op1":"ARM_HOME","op2":"","op1type":"str","op2type":"nul","duration":"2","extend":false,"units":"s","reset":"","bytopic":"all","name":"armed_home","x":1150,"y":60,"wires":[["af3d2a82.4a60d"]]},{"id":"32b63bda.38cdb4","type":"json","z":"4b73d18c.d53fa8","name":"","property":"payload","action":"","pretty":false,"x":270,"y":160,"wires":[["94fb2be6.e30308"]]},{"id":"89a8d178.c86aa8","type":"switch","z":"4b73d18c.d53fa8","name":"sub_event arm/disarm","property":"payload.sub_event","propertyType":"msg","rules":[{"t":"eq","v":"12","vt":"str"},{"t":"eq","v":"11","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":600,"y":120,"wires":[["19e1a548.633aa3"],["6991acf6.88a504"]]},{"id":"6991acf6.88a504","type":"trigger","z":"4b73d18c.d53fa8","op1":"DISARM","op2":"","op1type":"str","op2type":"nul","duration":"2","extend":false,"units":"s","reset":"","bytopic":"all","name":"disarm","x":1130,"y":140,"wires":[["af3d2a82.4a60d"]]},{"id":"e824c55a.56e9","type":"mqtt in","z":"4b73d18c.d53fa8","name":"","topic":"home/alarm","qos":"2","broker":"b02cb90a.238498","x":110,"y":400,"wires":[["41a7328f.e810b4"]]},{"id":"41a7328f.e810b4","type":"switch","z":"4b73d18c.d53fa8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"disarmed","vt":"str"},{"t":"eq","v":"armed_home","vt":"str"},{"t":"eq","v":"armed_away","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":350,"y":400,"wires":[["e43022bc.412b5","1d1e4590.735a4a"],["e9627864.609c3","167593dc.f02c4c"],["f56a4eaf.7f25a","6e2eb15a.d9098"]]},{"id":"e43022bc.412b5","type":"trigger","z":"4b73d18c.d53fa8","op1":"{\"password\":\"1234\",\"Command\":\"disarm\",\"Subcommand\":\"0\"}","op2":"0","op1type":"str","op2type":"str","duration":"2","extend":false,"units":"s","reset":"","bytopic":"all","name":"disarm inside","x":570,"y":240,"wires":[["dd568678.70ad38"]]},{"id":"dd568678.70ad38","type":"mqtt out","z":"4b73d18c.d53fa8","name":"","topic":"/paradox/in","qos":"","retain":"","broker":"b02cb90a.238498","x":1170,"y":360,"wires":[]},{"id":"1d1e4590.735a4a","type":"trigger","z":"4b73d18c.d53fa8","op1":"{\"password\":\"1234\",\"Command\":\"disarm\",\"Subcommand\":\"1\"}","op2":"0","op1type":"str","op2type":"str","duration":"5","extend":false,"units":"s","reset":"","bytopic":"all","name":"disarm outside","x":580,"y":300,"wires":[["20e39d7b.084b32"]]},{"id":"e9627864.609c3","type":"trigger","z":"4b73d18c.d53fa8","op1":"{\"password\":\"1234\",\"Command\":\"sleep\",\"Subcommand\":\"0\"}","op2":"0","op1type":"str","op2type":"str","duration":"3","extend":false,"units":"s","reset":"","bytopic":"all","name":"arm home / sleep","x":590,"y":360,"wires":[["dd568678.70ad38"]]},{"id":"167593dc.f02c4c","type":"trigger","z":"4b73d18c.d53fa8","op1":"{\"password\":\"1234\",\"Command\":\"arm\",\"Subcommand\":\"1\"}","op2":"0","op1type":"str","op2type":"str","duration":"5","extend":false,"units":"s","reset":"","bytopic":"all","name":"arm outside","x":570,"y":420,"wires":[["c00a3956.6417a"]]},{"id":"f56a4eaf.7f25a","type":"trigger","z":"4b73d18c.d53fa8","op1":"{\"password\":\"1234\",\"Command\":\"arm\",\"Subcommand\":\"0\"}","op2":"0","op1type":"str","op2type":"str","duration":"2","extend":false,"units":"s","reset":"","bytopic":"all","name":"arm inside","x":570,"y":480,"wires":[["dd568678.70ad38"]]},{"id":"6e2eb15a.d9098","type":"trigger","z":"4b73d18c.d53fa8","op1":"{\"password\":\"1234\",\"Command\":\"arm\",\"Subcommand\":\"1\"}","op2":"0","op1type":"str","op2type":"str","duration":"3","extend":false,"units":"s","reset":"","bytopic":"all","name":"arm outside","x":570,"y":540,"wires":[["91d13299.83a13"]]},{"id":"19e1a548.633aa3","type":"switch","z":"4b73d18c.d53fa8","name":"arm partition","property":"payload.dummy","propertyType":"msg","rules":[{"t":"eq","v":"Inside ","vt":"str"},{"t":"eq","v":"Outside ","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":810,"y":100,"wires":[["c367e9e8.2cd6a8"],["e310de2.e8c592"]]},{"id":"9cdbc3fd.2e141","type":"switch","z":"4b73d18c.d53fa8","name":"sub_event sleep","property":"payload.sub_event","propertyType":"msg","rules":[{"t":"eq","v":"4","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":590,"y":180,"wires":[["28b32953.a15156"]]},{"id":"28b32953.a15156","type":"delay","z":"4b73d18c.d53fa8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":800,"y":180,"wires":[["2a241be9.dfa66c"]]},{"id":"2a241be9.dfa66c","type":"trigger","z":"4b73d18c.d53fa8","op1":"ARM_NIGHT","op2":"","op1type":"str","op2type":"nul","duration":"2","extend":false,"units":"s","reset":"","bytopic":"all","name":"arm_night","x":1140,"y":180,"wires":[["af3d2a82.4a60d"]]},{"id":"c90bfa65.ecfc08","type":"comment","z":"4b73d18c.d53fa8","name":"HA to Paradox","info":"","x":110,"y":340,"wires":[]},{"id":"f6607a1a.fba2e8","type":"comment","z":"4b73d18c.d53fa8","name":"Paradox to HA","info":"","x":110,"y":100,"wires":[]},{"id":"e310de2.e8c592","type":"trigger","z":"4b73d18c.d53fa8","op1":"ARM_HOME","op2":"","op1type":"str","op2type":"nul","duration":"5","extend":false,"units":"s","reset":"","bytopic":"all","name":"armed_home","x":1150,"y":100,"wires":[["af3d2a82.4a60d"]]},{"id":"20e39d7b.084b32","type":"delay","z":"4b73d18c.d53fa8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":740,"y":300,"wires":[["dd568678.70ad38"]]},{"id":"c00a3956.6417a","type":"delay","z":"4b73d18c.d53fa8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":740,"y":420,"wires":[["dd568678.70ad38"]]},{"id":"91d13299.83a13","type":"delay","z":"4b73d18c.d53fa8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":740,"y":540,"wires":[["dd568678.70ad38"]]},{"id":"b02cb90a.238498","type":"mqtt-broker","z":"","name":"","broker":"192.168.2.11","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
And this is what I added to the Home Assistant Configuration.yaml
alarm_control_panel:
Do you mind if I add this to the wiki
Not at all, please do.
@JevonW there seems to be a problem with the flow I cannot get it to import into node-red can you check it please
@maragelis Seems to have lost some markup along the way...
This is the non-compact export
[ { "id": "4b73d18c.d53fa8", "type": "tab", "label": "Paradox", "disabled": false, "info": "" }, { "id": "a2853419.412578", "type": "mqtt in", "z": "4b73d18c.d53fa8", "name": "", "topic": "/paradox/out", "qos": "2", "broker": "b02cb90a.238498", "x": 110, "y": 160, "wires": [ [ "32b63bda.38cdb4" ] ] }, { "id": "94fb2be6.e30308", "type": "switch", "z": "4b73d18c.d53fa8", "name": "event", "property": "payload.event", "propertyType": "msg", "rules": [ { "t": "eq", "v": "2", "vt": "num" }, { "t": "eq", "v": "6", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 410, "y": 160, "wires": [ [ "89a8d178.c86aa8" ], [ "9cdbc3fd.2e141" ] ] }, { "id": "af3d2a82.4a60d", "type": "mqtt out", "z": "4b73d18c.d53fa8", "name": "", "topic": "home/alarm/set", "qos": "", "retain": "", "broker": "b02cb90a.238498", "x": 1360, "y": 140, "wires": [] }, { "id": "c367e9e8.2cd6a8", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "ARM_HOME", "op2": "", "op1type": "str", "op2type": "nul", "duration": "2", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "armed_home", "x": 1150, "y": 60, "wires": [ [ "af3d2a82.4a60d" ] ] }, { "id": "32b63bda.38cdb4", "type": "json", "z": "4b73d18c.d53fa8", "name": "", "property": "payload", "action": "", "pretty": false, "x": 270, "y": 160, "wires": [ [ "94fb2be6.e30308" ] ] }, { "id": "89a8d178.c86aa8", "type": "switch", "z": "4b73d18c.d53fa8", "name": "sub_event arm/disarm", "property": "payload.sub_event", "propertyType": "msg", "rules": [ { "t": "eq", "v": "12", "vt": "str" }, { "t": "eq", "v": "11", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 600, "y": 120, "wires": [ [ "19e1a548.633aa3" ], [ "6991acf6.88a504" ] ] }, { "id": "6991acf6.88a504", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "DISARM", "op2": "", "op1type": "str", "op2type": "nul", "duration": "2", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "disarm", "x": 1130, "y": 140, "wires": [ [ "af3d2a82.4a60d" ] ] }, { "id": "e824c55a.56e9", "type": "mqtt in", "z": "4b73d18c.d53fa8", "name": "", "topic": "home/alarm", "qos": "2", "broker": "b02cb90a.238498", "x": 110, "y": 400, "wires": [ [ "41a7328f.e810b4" ] ] }, { "id": "41a7328f.e810b4", "type": "switch", "z": "4b73d18c.d53fa8", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "disarmed", "vt": "str" }, { "t": "eq", "v": "armed_home", "vt": "str" }, { "t": "eq", "v": "armed_away", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 350, "y": 400, "wires": [ [ "e43022bc.412b5", "1d1e4590.735a4a" ], [ "e9627864.609c3", "167593dc.f02c4c" ], [ "f56a4eaf.7f25a", "6e2eb15a.d9098" ] ] }, { "id": "e43022bc.412b5", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "{\"password\":\"1234\",\"Command\":\"disarm\",\"Subcommand\":\"0\"}", "op2": "0", "op1type": "str", "op2type": "str", "duration": "2", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "disarm inside", "x": 570, "y": 240, "wires": [ [ "dd568678.70ad38" ] ] }, { "id": "dd568678.70ad38", "type": "mqtt out", "z": "4b73d18c.d53fa8", "name": "", "topic": "/paradox/in", "qos": "", "retain": "", "broker": "b02cb90a.238498", "x": 1170, "y": 360, "wires": [] }, { "id": "1d1e4590.735a4a", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "{\"password\":\"1234\",\"Command\":\"disarm\",\"Subcommand\":\"1\"}", "op2": "0", "op1type": "str", "op2type": "str", "duration": "5", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "disarm outside", "x": 580, "y": 300, "wires": [ [ "20e39d7b.084b32" ] ] }, { "id": "e9627864.609c3", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "{\"password\":\"1234\",\"Command\":\"sleep\",\"Subcommand\":\"0\"}", "op2": "0", "op1type": "str", "op2type": "str", "duration": "3", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "arm home / sleep", "x": 590, "y": 360, "wires": [ [ "dd568678.70ad38" ] ] }, { "id": "167593dc.f02c4c", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "{\"password\":\"1234\",\"Command\":\"arm\",\"Subcommand\":\"1\"}", "op2": "0", "op1type": "str", "op2type": "str", "duration": "5", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "arm outside", "x": 570, "y": 420, "wires": [ [ "c00a3956.6417a" ] ] }, { "id": "f56a4eaf.7f25a", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "{\"password\":\"1234\",\"Command\":\"arm\",\"Subcommand\":\"0\"}", "op2": "0", "op1type": "str", "op2type": "str", "duration": "2", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "arm inside", "x": 570, "y": 480, "wires": [ [ "dd568678.70ad38" ] ] }, { "id": "6e2eb15a.d9098", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "{\"password\":\"1234\",\"Command\":\"arm\",\"Subcommand\":\"1\"}", "op2": "0", "op1type": "str", "op2type": "str", "duration": "3", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "arm outside", "x": 570, "y": 540, "wires": [ [ "91d13299.83a13" ] ] }, { "id": "19e1a548.633aa3", "type": "switch", "z": "4b73d18c.d53fa8", "name": "arm partition", "property": "payload.dummy", "propertyType": "msg", "rules": [ { "t": "eq", "v": "Inside ", "vt": "str" }, { "t": "eq", "v": "Outside ", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 810, "y": 100, "wires": [ [ "c367e9e8.2cd6a8" ], [ "e310de2.e8c592" ] ] }, { "id": "9cdbc3fd.2e141", "type": "switch", "z": "4b73d18c.d53fa8", "name": "sub_event sleep", "property": "payload.sub_event", "propertyType": "msg", "rules": [ { "t": "eq", "v": "4", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 590, "y": 180, "wires": [ [ "28b32953.a15156" ] ] }, { "id": "28b32953.a15156", "type": "delay", "z": "4b73d18c.d53fa8", "name": "", "pauseType": "delay", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 800, "y": 180, "wires": [ [ "2a241be9.dfa66c" ] ] }, { "id": "2a241be9.dfa66c", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "ARM_NIGHT", "op2": "", "op1type": "str", "op2type": "nul", "duration": "2", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "arm_night", "x": 1140, "y": 180, "wires": [ [ "af3d2a82.4a60d" ] ] }, { "id": "c90bfa65.ecfc08", "type": "comment", "z": "4b73d18c.d53fa8", "name": "HA to Paradox", "info": "", "x": 110, "y": 340, "wires": [] }, { "id": "f6607a1a.fba2e8", "type": "comment", "z": "4b73d18c.d53fa8", "name": "Paradox to HA", "info": "", "x": 110, "y": 100, "wires": [] }, { "id": "e310de2.e8c592", "type": "trigger", "z": "4b73d18c.d53fa8", "op1": "ARM_HOME", "op2": "", "op1type": "str", "op2type": "nul", "duration": "5", "extend": false, "units": "s", "reset": "", "bytopic": "all", "name": "armed_home", "x": 1150, "y": 100, "wires": [ [ "af3d2a82.4a60d" ] ] }, { "id": "20e39d7b.084b32", "type": "delay", "z": "4b73d18c.d53fa8", "name": "", "pauseType": "delay", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 740, "y": 300, "wires": [ [ "dd568678.70ad38" ] ] }, { "id": "c00a3956.6417a", "type": "delay", "z": "4b73d18c.d53fa8", "name": "", "pauseType": "delay", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 740, "y": 420, "wires": [ [ "dd568678.70ad38" ] ] }, { "id": "91d13299.83a13", "type": "delay", "z": "4b73d18c.d53fa8", "name": "", "pauseType": "delay", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 740, "y": 540, "wires": [ [ "dd568678.70ad38" ] ] }, { "id": "b02cb90a.238498", "type": "mqtt-broker", "z": "", "name": "", "broker": "192.168.2.11", "port": "1883", "clientid": "", "usetls": false, "compatmode": true, "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "closeTopic": "", "closePayload": "", "willTopic": "", "willQos": "0", "willPayload": "" } ]
Hello @Maragelis,
I ran across your project and find it very cool, interesting and useful project to control my MG500 panel and integrate it with openHAB. I have a few questions if you don't mind:
Thank for your time.
Hi @rjduraocosta
1.) Power i use the other two pins 12V(+) and (-) through a lm7805 or buck converter, https://www.banggood.com/LM317-DC-DC-1_5A-1_2-37V-Adjustable-Power-Supply-Board-DC-Converter-Buck-Step-Down-Module-p-1171756.html?rmmds=buy straight to the wemos 5v pin. 2.) Go direct no resistors it works great. 3.) The latest update uses the user password the same pin used to arm from the panel. 4.) Use Master, dev and Test have more functions but changes the pins around so RX/TX are used for debug 5.) i get mine from https://www.banggood.com/Wemos-D1-Mini-V3_0_0-WIFI-Internet-Of-Things-Development-Board-Based-ESP8266-4MB-p-1264245.html?rmmds=search
Hope I helped ....
You sure helped. Thanks a lot for your prompt reply. I will proceed as you mentioned and give it a go.
Thanks again.
Hello again,
I already order the suggested material and I can't to start with this. I am installing the Arduino IDE and added the board. I tried to compile the code but I am having the following errors:
C:\Wemos d1 mini\ParadoxRs232toMqtt-master\ParadoxAlarmSystem\ParadoxAlarmSystemOTA\ParadoxAlarmSystemOTA.ino: In function 'inPayload Decodejson(char*)':
ParadoxAlarmSystemOTA:538:3: error: 'DynamicJsonBuffer' was not declared in this scope
ParadoxAlarmSystemOTA:538:21: error: expected ';' before 'jsonBuffer'
ParadoxAlarmSystemOTA:539:22: error: 'jsonBuffer' was not declared in this scope
ParadoxAlarmSystemOTA:540:13: error: 'class ArduinoJson::JsonObject' has no member named 'success'
C:\Wemos d1 mini\ParadoxRs232toMqtt-master\ParadoxAlarmSystem\ParadoxAlarmSystemOTA\ParadoxAlarmSystemOTA.ino: In function 'void setup_wifi()':
ParadoxAlarmSystemOTA:667:7: error: 'DynamicJsonBuffer' was not declared in this scope
ParadoxAlarmSystemOTA:667:25: error: expected ';' before 'jsonBuffer'
ParadoxAlarmSystemOTA:668:26: error: 'jsonBuffer' was not declared in this scope
ParadoxAlarmSystemOTA:677:12: error: 'class ArduinoJson::JsonObject' has no member named 'printTo'
ParadoxAlarmSystemOTA:678:12: error: 'class ArduinoJson::JsonObject' has no member named 'printTo'
C:\Wemos d1 mini\ParadoxRs232toMqtt-master\ParadoxAlarmSystem\ParadoxAlarmSystemOTA\ParadoxAlarmSystemOTA.ino: In function 'void mountfs()':
ParadoxAlarmSystemOTA:767:9: error: 'DynamicJsonBuffer' was not declared in this scope
ParadoxAlarmSystemOTA:767:27: error: expected ';' before 'jsonBuffer'
ParadoxAlarmSystemOTA:768:28: error: 'jsonBuffer' was not declared in this scope
ParadoxAlarmSystemOTA:769:14: error: 'class ArduinoJson::JsonObject' has no member named 'printTo'
ParadoxAlarmSystemOTA:770:18: error: 'class ArduinoJson::JsonObject' has no member named 'success'
exit status 1 'DynamicJsonBuffer' was not declared in this scope
Could you please give me so help?
Another thing please, how do you configure the wifi settings (ssid, password) of my home network?
Thanks in advanced for your help.
Sorry to step in again, but I sorted out the erros part by installing the v5.13.2 the ArduinoJson library.
I still have the configuration of the wifi settings (ssid, password) of my home network doubt.
Where do I set them?
Could you please give me so help on this?
Thanks in advanced for all your help.
as soon as you turn on the chip you will find a new wifi network, connect to that and enter 192.168.4.1 into you browser. you will get a config page to set your home wifi
Perfect!
Thanks a lot for your help once again.
Hello again @maragelis,
I am wondering the following:
Sorry to bother you with these questions but I really don't whant to mess anything up.
Thanks again.
1) the lm7805 gets hot yes about 60-70 degrees centigrade, I use a buck so no heat.
2) normal alarm cable does the job.
3) I use the panel power so that I can get events even when power is out. Panel battery powers the wemos.
Check this out https://photos.app.goo.gl/okS8ujDfoXX48CQa6
Hello again,
Perfect!
Thanks a lot for sharing. Nice assembly that you have there.
I can't wait to start.
Thanks again.
Hello again,
I finally got started with this but I am stuck at the following:
I get the message at paradox/status: Paradox Connected; I get the Message at parados/status: ParadoxController V2.11
But afterwards no more topics appear again, so i commented the code lines that test if the packes are valid just to see what is happening and i get the following at paradox/out:
{ "armstatus":255, "event":255, "sub_event":255, "dummy":"����������������"}
If i connect to the panel with a serial interface at the serial port and use a serial sniffer i get the following results:
e0 14 12 09 10 0d 1e 01 03 00 00 00 76 d8 00 45 à...........vØ.E
6e 74 72 61 64 61 20 20 20 20 20 20 20 20 20 00 ntrada .
00 00 00 00 7b ....{
It is a valid 37 byte package and i can see the zone label and the first byte is E0 like it should be, but with the wemos it seems that the serial communication is not working.
When serial connection is at the wemos, which volltage levels do you get at the pin's TX/RX? When disconnected from the wemos i get 5V on both RX and TX of the panel, but when conected to the wemos i get 5V on RX of wemos and 3,8V on TX of wemos, is this normal?
I appreciate all the help i can get.
Thanks again.
How are you powering the wemos, make sure it has a good power supply, at least 1amp. Most problems with esp8266 are power related
Hello,
Thank you for your prompt reply.
I am powering the wemos just like you recommended me, direct from the panel with this buck converter:
I regulated it to output 5,1V.
I find it strange that the TX pin on the wemos has a voltage of 3,8V.
I think it is pretty close to work but there is a small piece missing.
Sorry, but do have anything else in mind?
Thanks again.
Hello, I'am trying to intergrate this to my openhab2 setup at home, and having issues with the physical connections including the resistors and pins, could you provide some sourt of schematics? The code section says 10k resistor and the wiki says 220 resistors, that's what got me confused, what resistors should I use, which pins of the ESP should I use[by the code im guessing 13,15], and I'm supposed to use the serial on my paradox alarm system right?