[OBSOLETE] Visonic Powermax Alarm

This integration covers a Visonic Powermax and Powermaster Alarm integration with a Wemos D1 R2, giving the following features:

  • Alarm status (arm status, battery reports and any problem text)
  • Zone status plus zone names (for most alarm panels) - these appear as separate devices in your SmartThings list
  • Alarm control to arm and disarm
  • Integration and automation through tools such as Webcore (both for alarm and for zones)
  • Integration with MQTT in addition to SmartThings integration. See this post for some instructions to get started.

(You can use other ESP8266 boards, but the Wemos is good as you need some voltage regulation chips to power the ESP from the alarm panel and this is normally 12V - powering from an external USB power supply is a recipe for damaging your panel)

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

To control/read alarm status through Webcore you will need to look at the ‘Alarm’ capability of the device (ST sees this as a bell/light and not an alarm panel). To set the alarm through Webcore you will need to change the alarm capability to ‘Siren’ (for example) which will cause the alarm to arm in away mode. Alternatively, if the alarm changes to ‘Off’ then it has been disarmed. The following states show the lookup information for alarm status: 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).

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

Donations to my beer fund are of course welcome and much appreciated, for those who have asked me for a link - PayPal.Me



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)

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.

When buying them 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. Also this can make integrating with the alarm harder if you get a bad one.

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.

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!

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

First post has his GitHub (https://github.com/cjcharles0/SmartThings/tree/master/VisonicAlarm). That should be able to get you up and running.

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


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 Pmax.zip 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?


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)

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

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.

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.

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

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.

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.