maragelis / ParadoxRs232toMqtt

esp8266, serial bus to mqtt for Paradox alarm systems
MIT License
79 stars 22 forks source link

Physical Connections to Paradox and ESP8266 #5

Closed augisbud closed 5 years ago

augisbud commented 6 years ago

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?

maragelis commented 6 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

maragelis commented 6 years ago

updated wiki

stefanodias commented 6 years ago

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?

maragelis commented 6 years ago

yes you can do without, if the evo uses the standerd 37byte message it will work

maragelis commented 6 years ago

you could start by just adding a ftdi adapter and sniffing the serial. if you see standerd 37byte messages then it will work.

stefanodias commented 6 years ago

Nice, thanks for the tips. Another question is, can I send commands to the card or just read?

maragelis commented 6 years ago

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.

maragelis commented 6 years ago

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.

stefanodias commented 6 years ago

What are the paradox board models you've tested?

maragelis commented 6 years ago

I have tested sp4000 and sp6000 there is also a wiki page

pilievwm commented 6 years ago

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

image

Your help and advices will make me so happy to retire the IP150 module and use the wemos instead.

maragelis commented 6 years ago

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.

pilievwm commented 6 years ago

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?

maragelis commented 6 years ago

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?

maragelis commented 6 years ago

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

pilievwm commented 6 years ago

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

define paradoxTX 15`

maragelis commented 6 years ago

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

maragelis commented 6 years ago

const char root_topicOut = "/paradox/out"; const char root_topicStatus = "/paradox/status"; const char *root_topicIn = "/paradox/in";

maragelis commented 6 years ago

changed wiki to the correct topics so there is no misunderstanding. Sorry about that.

pilievwm commented 6 years ago

Oh wow. I've never tried it with /paradox/status topic :) According to your documentation, the topics are different image

Will test it later and will keep you updated :) Thanks for your support!

pilievwm commented 6 years ago

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":""}

maragelis commented 6 years ago

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

maragelis commented 6 years ago

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.

maragelis commented 6 years ago

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 .

maragelis commented 6 years ago

Any news on this can I close the issue ?

pilievwm commented 6 years ago

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

maragelis commented 6 years ago

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/

maragelis commented 6 years ago

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":""}]

pilievwm commented 6 years ago

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 :)

maragelis commented 6 years ago

no have not had that issue

JevonW commented 6 years ago

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":""}]

JevonW commented 6 years ago

And this is what I added to the Home Assistant Configuration.yaml

alarm_control_panel:

maragelis commented 6 years ago

Do you mind if I add this to the wiki

JevonW commented 6 years ago

Not at all, please do.

maragelis commented 6 years ago

@JevonW there seems to be a problem with the flow I cannot get it to import into node-red can you check it please

JevonW commented 6 years ago

@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": "" } ]

rjduraocosta commented 6 years ago

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.

maragelis commented 6 years ago

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 ....

rjduraocosta commented 6 years ago

You sure helped. Thanks a lot for your prompt reply. I will proceed as you mentioned and give it a go.

Thanks again.

rjduraocosta commented 6 years ago

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.

rjduraocosta commented 6 years ago

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.

maragelis commented 6 years ago

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

rjduraocosta commented 6 years ago

Perfect!

Thanks a lot for your help once again.

rjduraocosta commented 6 years ago

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.

maragelis commented 6 years ago

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.

maragelis commented 6 years ago

Check this out https://photos.app.goo.gl/okS8ujDfoXX48CQa6

rjduraocosta commented 6 years ago

Hello again,

Perfect!

Thanks a lot for sharing. Nice assembly that you have there.

I can't wait to start.

Thanks again.

rjduraocosta commented 5 years ago

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.

maragelis commented 5 years ago

How are you powering the wemos, make sure it has a good power supply, at least 1amp. Most problems with esp8266 are power related

rjduraocosta commented 5 years ago

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:

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

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.