SmartThings Community

[RELEASE] Visonic Powermax Alarm


(cjcharles) #1

This integration covers a Visonic Powermax Alarm to give alarm status, zone status plus zone names and alarm control to SmartThings, through a Wemos D1 R2. (Note you can use other ESP8266 boards, but you will need some voltage regulation chips since the best way to power the ESP is with 12V from the Powermax panel)

I have also ensured that the Device Handler can create children devices for each sensor, so that each of the Powermax Alarm Zones can be broken out into a separate device for linking with things like CoRE. I have now ensured that the device uses the ST device handlers for these children, hence you only need to install a single device handler for all functionality.

Note that if you have certain Powermax boards then you will also need an Arduino in order for the Wemos to talk to the Powermax (UK models of Powermax+ and US Powermax Pro are the models that so far need an Arduino). Powermax Express can have an awkward power supply so you might need to do some soldering, but it is very easy and a single connection. Full instructions are on my Github page, but suggest discussions happen here since that way everybody can help each other!!

I have also linked/hacked(!) the Visonic alarm status with the ST ‘Alarm’ capability (as ST sees it as a bell/light and not an alarm panel). This allows you to set the alarm through CoRE (e.g. if button is pressed then arm away by setting it to ‘Siren’) and also to get the alarm status through CoRE (i.e. turn on lights when disarmed). In order for this to work you will need to lookup the states based on this list: Off=Disarm, Siren=ArmAway, Strobe=ArmHome, Both=Alarm . I.e. if Alarm status changes to Both then your alarm has been set off (i.e. an intruder), you should see this as an option within the Alarm Capability of CoRE.

I am also selling pre-programmed Wemos chips with all required cables and adapters to plug and play with your Powermax. If you are setting up this integration it would be lovely if you would consider supporting development by purchasing a device through me, though you can follow the steps to your hearts content! I am also selling pre-programmed Arduino’s which are needed if you have a UK Powermax+ or US Powermax Pro (plus potentially others).
Online Shop

Other improvements/advice/requests/suggestions completely welcome but I have finished the majority of points on my original list! Donations to my beer fund are of course welcome and much appreciated, for those who have asked me for a link -

Smarthings with Visonic Powermax
Wemos D1 Integration
New Home Security system - optimized for integration
How can I receive LAN messages on the ST hub (when the messages can come at any point)?
DEVELOPERS, please can you write a virtual device sync smartapp? PLEASE!
Alarm Control Panel
Smartthings home security help needed: just getting started (UK)
Investing in a Security System or continue with Smartthings - Advice & opinions welcome
Paid request - intergration with Elk M1 security panel
UK Alarm / Security System that is ST Compatible--advice needed (2018 build)
Lack of UK ....errr... well everything really!


I oversee a couple of Visonic Powermax systems and can help test.

Where did you purchase your D1 from? i.e. amazon or alliexpress (coupon)

(cjcharles) #3

Im based in London and I got it off ebay about 3 months ago. Im pretty sure you could do the same with a NodeMCU, but I havent done any testing and it doesnt have any voltage regulation circuitry so you would then need to find a decent voltage regulation board. If you can find a D1 R2 then that would be easiest I expect and can still be bought for a reasonable price, but be very careful to get a good quality one as there are some poor quality ones out there that can either make flashing very difficult or damage the Powermax.


I googled “Wemos D1 R2” and amazon wants $16 while alliexpress wants about $9. There is a new account coupon for $3 off on alliexpress. Alliexpress will take about a week to get to me so I will have plenty of time to review all your documentation carefully.

(cjcharles) #5

This looks like a cheap price from a well reviewed seller, but you just have to be careful as the serial chips can make flashing difficult as you have to faff with multiple different drivers before it starts to talk to your computer. Might be worth spending a few more mins looking as there may be one closer to home. Also it is DEFINITELY worth getting a good quality board since there are some very poorly built knock-offs on the internet that would either not last long or cause damage through shorts/current draw!


I found the latest version on ebay for $6, but will take a minute to get here so I’m going to order 2.


If anyone has a Visonic Powermax Pro I’d be interested to see if you have the same results I am. I can arm but can’t disarm, and zones names are not populating.

(cjcharles) #8

Have just pasted in a big update to the Arduino sketch and the Device handler so that virtually all Wemos configuration is now done by SmartThings, and the inactivity timers are working well (and in fact customisable through SmartThings). This will probably be my last major development for a while as it has been taking up so much of my time!

(Seima) #9

CJ, I just got my Wemos D1 from Ebay and where to start? any instruction to share?


First post has his GitHub ( That should be able to get you up and running.

(cjcharles) #11

Did you have any luck getting set up @KhMeRA? Hope my instructions werent too hard to follow!

(Seima) #12


I am just tried it and got this error "

fatal error: pmax.h: No such file or directory

#include <pmax.h>


compilation terminated.

exit status 1
Error compiling for board WeMos D1 R2 & mini.

I did place those 4 files from in that folder and also in
C:\Users\Me\Documents\Arduino\libraries folder.

By the way Here is the code in that sketch. I am not sure if I place the
code correctly.


void setup() {
// put your setup code here, to run once:
#include <pmax.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <WiFiUdp.h>
#include <ESP8266WebServer.h>
#include <ArduinoOTA.h>
#include <EEPROM.h>

//////////////////// COMMENT DEFINE OUT to disable a feature

return false; //IZIZTODO
//////End of OS specific part of PM

void loop() {
// put your main code here, to run repeatedly:


Any idea?


(cjcharles) #13

The files need to be inside a pmax folder inside the libraries folder.
The files should not be in the sketch or libraries folder either
probably (they will possibly do no harm but may cause duplicate includes)

(cjcharles) #14

@KhMeRA Did you get there in the end? Im hoping you got the include sorted, and that you sussed that the code on Github should be copied in to replace all code in your sketch.

(Seima) #15

Sorry for late responding. A bit busy. I was successfully loaded the code on it but still don’t have time to hook it up to alarm panel yet. I will let you know the result.

Edit: Hooked it up and it connected to my Wifi. Created smartthing device but cannot find the “Config” button to set the IP address for Wemos.

Edit: JC. I was able Arm my alarm panel but I cannot disarm it and there all other sensors status are inactive. I did’t do any change to zone name or zone number since my alarm panel is using zone 1 to 6.
By the way, could “Instant” arm features?
I will keep you update.


Now I cannot Arm with Smartthings app but I still could Arm (Arm only, not Disarm) with Wemos IP web. I think Powerlink failed to enroll. Does anyone know how to force power link to enroll? I cannot find “Enroll Powerlink” in “installer Mode” of my Powermax Pro Alarm.

(cjcharles) #16

Sorry I didnt see your edit, just your original post.
It seems @smoov is having the same problems as you, with the enrolling step not happening, hence it only has access to arm (not disarm or receive zonenames, or receive zoneevents). He also is using a Powermax Pro so it makes me think there is something missing for Powermax Pro enrolling.

I would love to have an answer but it is difficult without the hardware to hand for testing, so I will do a bit more digging and come back with a few options.

(Seima) #17

I reset my Powermax pro to factory and now Wemos doesn’t talk to them at all.

(cjcharles) #18

Try unplugging and re-plugging the Wemos and see if it will pair after that. It can take a few minutes or more sometimes and can require a couple of restarts (of the wemos).

Also about half way down the Arduino sketch is the initiation delay, you can try increasing it and perhaps have more luck.

//if you have a fast board (like PowerMax Complete) you can pass 0 to init function like this: pm.init(0);
//this will speed up the boot process, keep it as it is, if you have issues downloading the settings from the board.

Change this to have an 8 inside the brackets - pm.init(8);

Also, if you do plug Wemos back into your computer (or use Arduino OTA update), at the top of pmax.h is this line:

#define POWERLINK_PIN 0x3622;

Try changing it to use a 1234 pin, i.e. change the ending of the line to 0x1234;
That might also help force it to pair.

(Seima) #19

Just did what you suggested but still not working. I checked Alarm status on Wmos browser and shown “not ready”


That does sound like the same issue that I was having. I sent my panel off to get a firmware update in hopes of that being the issue, but now I’m not so sure. @KhMeRA how long have you had your panel? Mine is ~5 years old.