Visonic Powermax and Powermaster Integration

Hi, I’m trying to set this integration up with a PowerMaster 30 and a CH9121 2-CH UART TO ETH.

I have wired up the module to the alarm’s “IP” pins according to the documentation.
This UART to ETH module has two channels, by default the second channel is disabled so I am only using the first channel.

I can’t seem to find much documentation on how to configure the UART to Ethernet module, but I have pieced together bits to configure it like so:

I have tried to connect to the UART to Ethernet module using the address 192.168.1.200:30000.
I also tried to do a loopback test but I always get this in the logs:

2022-07-01 11:57:36 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration visonic which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-07-01 11:57:36 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-07-01 11:57:44 DEBUG (MainThread) [custom_components.visonic.pyvisonic] Initialising Protocol - Protocol Version 1.0.14.1
2022-07-01 11:57:44 DEBUG (MainThread) [custom_components.visonic.client] Initialising Client - Version 0.7.0.3
2022-07-01 11:57:45 DEBUG (MainThread) [custom_components.visonic.client] init self.config = PyConfiguration.DownloadCode {'type': 'ethernet', 'host': '192.168.1.200', 'port': '30000', 'language': 'EN', 'force_standard': False, 'force_autoenroll': True, 'sync_time': True, 'download_code': '', 'exclude_x10': [], 'exclude_sensor': [], 'motion_off': 120, 'siren_sounding': ['intruder', 'tamper'], 'panel_state_notifications': ['connectionproblem', 'sirensounding', 'invalidpin', 'commandnotsent'], 'arm_without_usercode': False, 'force_numeric_keypad': False, 'arm_away_instant': False, 'arm_home_instant': False, 'allow_remote_arm': False, 'allow_remote_disarm': False, 'allow_sensor_bypass': False, 'override_code': '', 'panellog_logentry_event': True, 'panellog_complete_event': True, 'panellog_reverse_order': False, 'panellog_csv_add_title_row': False, 'panellog_xml_filename': 'visonic_log_file.xml', 'panellog_csv_filename': 'visonic_log_file.csv', 'panellog_max_entries': 10000}
2022-07-01 11:57:45 DEBUG (MainThread) [custom_components.visonic.client] Exclude sensor list = [] Exclude x10 list = []
2022-07-01 11:57:45 DEBUG (MainThread) [custom_components.visonic.client] connect_to_alarm self.config = {'type': 'ethernet', 'host': '192.168.1.200', 'port': '30000', 'language': 'EN', 'force_standard': False, 'force_autoenroll': True, 'sync_time': True, 'download_code': '', 'exclude_x10': [], 'exclude_sensor': [], 'motion_off': 120, 'siren_sounding': ['intruder', 'tamper'], 'panel_state_notifications': ['connectionproblem', 'sirensounding', 'invalidpin', 'commandnotsent'], 'arm_without_usercode': False, 'force_numeric_keypad': False, 'arm_away_instant': False, 'arm_home_instant': False, 'allow_remote_arm': False, 'allow_remote_disarm': False, 'allow_sensor_bypass': False, 'override_code': '', 'panellog_logentry_event': True, 'panellog_complete_event': True, 'panellog_reverse_order': False, 'panellog_csv_add_title_row': False, 'panellog_xml_filename': 'visonic_log_file.xml', 'panellog_csv_filename': 'visonic_log_file.csv', 'panellog_max_entries': 10000}
2022-07-01 11:57:45 DEBUG (MainThread) [custom_components.visonic.client] Visonic Connection Device Type is ethernet {<PyConfiguration.DownloadCode: 0>: '', <PyConfiguration.ForceStandard: 9>: False, <PyConfiguration.ForceAutoEnroll: 1>: True, <PyConfiguration.AutoSyncTime: 2>: True, <PyConfiguration.PluginLanguage: 3>: 'EN', <PyConfiguration.MotionOffDelay: 4>: 120, <PyConfiguration.SirenTriggerList: 5>: ['intruder', 'tamper'], <PyConfiguration.B0_Enable: 6>: False, <PyConfiguration.B0_Min_Interval_Time: 7>: 5, <PyConfiguration.B0_Max_Wait_Time: 8>: 30}
2022-07-01 11:57:45 DEBUG (MainThread) [custom_components.visonic.pyvisonic] Setting TCP socket Options
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] Initialising Protocol - Using Home Assistant Loop
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] Force Standard set to False
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] Force Auto Enroll set to True
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] Force Auto Sync Time set to True
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] Language set to EN
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] Motion Off Delay set to 120
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] Siren Trigger List set to ['intruder', 'tamper']
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] B0 Enable set to False
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] B0 Min Interval set to 5
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Settings] B0 Max Wait Time set to 30
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Connection] Connected to local Protocol handler and Transport Layer
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [_clearList] Setting queue empty
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [StartDownload] Starting download mode
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Sending Command (Exit) raw data 0d 0f f0 0a waiting for message response []
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Command has a wait time after transmission 1.5
2022-07-01 11:57:46 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Controller] download_counter is 1
2022-07-01 11:57:48 DEBUG (MainThread) [custom_components.visonic.client] ........... connection made
2022-07-01 11:57:48 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Controller] download_counter is 2
2022-07-01 11:57:50 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Sending Command (Stop) raw data 0d 0b f4 0a waiting for message response []
2022-07-01 11:57:50 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Command has a wait time after transmission 1.5
2022-07-01 11:57:50 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Controller] download_counter is 3
2022-07-01 11:57:51 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Controller] download_counter is 4
2022-07-01 11:57:53 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Resetting expected response counter, it got to 4 Response list length before 0 after 1
2022-07-01 11:57:53 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Setting Download Mode to true
2022-07-01 11:57:53 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Sending Command (Start Download Mode) waiting for message response ['0X3C']
2022-07-01 11:58:00 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [Controller] Trigger Panel Download Attempt - Not yet received the panel details
2022-07-01 11:58:00 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [StartDownload] Starting download mode
2022-07-01 11:58:00 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Resetting expected response counter, it got to 5 Response list length before 0 after 1
2022-07-01 11:58:00 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Setting Download Mode to true
2022-07-01 11:58:00 DEBUG (MainThread) [custom_components.visonic.pyvisonic] [sendPdu] Sending Command (Start Download Mode) waiting for message response ['0X3C']
2022-07-01 11:58:22 ERROR (MainThread) [custom_components.visonic.pyvisonic] [Controller] Visonic Plugin has suspended all operations, there is a problem with the communication with the panel (i.e. no data has been received from the panel)
2022-07-01 11:58:22 DEBUG (MainThread) [custom_components.visonic.client] Visonic update event 10 {'state': 'NeverConnected', 'condition': 10}
2022-07-01 11:58:22 DEBUG (SyncWorker_2) [custom_components.visonic.client] isPanelConnected: code format none as armcode is none (panel starting up or is there a problem?)
2022-07-01 11:58:22 DEBUG (MainThread) [custom_components.visonic.client] isPanelConnected: code format none as armcode is none (panel starting up or is there a problem?)

Any ideas?

EDIT: I will post a picture of the wiring this evening.

A few suggestions:

  • I assume that the gateway is correct?
  • As its a Powermaster30, depending on the firmware version, it may be 38400 baud as described here on the wiki. Try changing 9600 to 38400
  • Whats the dest IP on the right hand side? It’s a bit weird, have you tried using this address?
  • Maybe untick the “Conn Lost” setting
  • Maybe tick the Clear Buff for reconnect
  • Can you “ping” the device, does it respond from 192.168.1.200
  • I assume that 192.168.1.200 is not in your DHCP range i.e. another device on your network doesn’t have the same IP address?
  • I assume the log snip you show is from a loopback test. With my loopback test the baud and most other RS232 settings shouldn’t matter and it’s not working. By all means power it from the panel but connect rx to tx on the device and keep trying the loopback test. The log shows “connection made” so it looks like it’s connected the Ethernet part OK.

Dave :slight_smile:

1 Like
  • The IP, mask, gateway are correct, I think.
  • I tried changing the baud rate but as you say, this shouldn’t matter for the loopback test.
  • The “Dest IP” setting is only used when Mode is set to TCP client.
  • I unticked the “conn lost” setting
  • I have ticked the “clear buff” setting
  • The device responds to pings
  • It is within the DHCP range and no other devices use this IP, I have enabled a static IP for this device on the router now
  • I have restarted HA to re-run the loop back test and the results are the same.

@davesmeghead I’m not sure what else to try, maybe I just need to buy a different adapter…

EDIT: I also just tried using a few different jumper cables for the RX-TX connection, no luck…

Here is the wiring from the adapter to the panel:
Red = 3v3 → 3.75v
Brown = Gnd → Gnd
Yelllow = Tx → Rx
Orange = Rx → Tx

It could be that the specific device is sensitive to having 3.75v on its 3.3v supply. Are you able to remove the device from the panel completely, power it using a power supply and connect Tx to Rx for a loopback test? Taking it out of the panel and trying it like this is the only way to eliminate any issues. Another example is that the gadget you’re using may be trying to draw too much power from the panels 3.75v line and the panel doesn’t like it. If it works outside the panel on a seperate power supply, you may have to use the 12v supply inside the panel and use a regulator to drop that to 5v or 3.3v.

That looks OK to me

1 Like

Good idea, I just tried to power it from a raspberry pi, trying both 3.3v and 5v, with no luck.

EDIT: I’m going to order a Wemos D1 R2 to see whether that works out better…

Has anyone managed to get their Visonic Panel exposed in a way it can be controlled by Google Assistant?

I’m using a manual Google Assistant integration - I can see the alarm in my Google Home app and I’ve defined a secure_devices_pin but I don’t seem to be able to control the alarm from there.

Working a charm now with a powerlink mode on the NodeMCU, thank you for this!
I will make sure to send a donation soon :).

A question: I saw somewhere about getting status info from sensors, like whether they have been set off / battery levels, etc.
How would I do this?
I remeber reading about turning off a setting / eco mode on the panel…

It this wiki entry what you’re looking for?

I’m pleased that you got it working :+1:

1 Like

Yes, thank you!

I’ve noticed a strange issue where sometimes the nodeMCU loses powerlink / std+ connection, this shows up as a trouble message on the alarm panel.

I ended up setting my NodeMCU up with esphome + esphome-stream-server.

EDIT: Nevermind, turns out this is just an existing issue.
I have made some changes based on that thread and will report back.

I also haven’t been able to arm the panel successfully yet, even in the times where it is supposed to be in powerlink / standard+ mode.

EDIT: Another nevermind! It’s working well now :slight_smile:

I will add documentation to the wiki for my ESPHome setup

Hi Dave,
Thank you for your answer. If you want to have a look at what is after in the log I posted last time, here it is. I hope it will be usefull to you. If you need more, I saved something like 2 hours.

I haven’t had another problem since the last time in June. But if I change the HA automation code to restart Visonic integration instead of forcing it to reconnect, am I getting it right with that code?

alias: Restart Visonic on Problem
description: ''
trigger:
  - platform: state
    entity_id:
      - alarm_control_panel.visonic_alarm
    to: Problem
    attribute: Panel Mode
condition: []
action:
  - service: homeassistant.reload_config_entry
    data: {}
    target:
      entity_id: alarm_control_panel.visonic_alarm

Hello!
Daves your first version was awesome but what you get it totally crazy! Congratulations.

Long time without being in here… I have a weird question:

Is it possible to add to Home Assistant a second Visonic panel? I have seen with the normal way is not possible (“Alarm Panel Connection Already Configured” message).

I have a PowerMax Pro and I have purschased a Powermaster 10, and I would like to have the two panels in the same Home Assistant.
Any ideas? I know this is not very normal question.

Thanks!

This is something that I’d like to add but at the moment it can’t connect to more than 1 panel. That is why the integration prevents the connection to a 2nd panel.

In theory, almost all of the Integration is class/object based which means that it is possible to do it and relatively easy to add. I’ve also recently bought a PowerMaster panel from Ebay so I do have 2 panels that I could use to develop and test this.

The problem that I have is what to call the various alarm panels and sensors that get created.

For example, at the moment I create an Entity called alarm_control_panel.visonic_alarm for the main panel. To work in HA it needs to have the domain name as alarm_control_panel so I can’t change that. So how would I name the panels? It could be visonic_alarm_1 for the 1st etc.

But then that leads on to how to name the sensors and switches.
At the moment each sensor is, for example, in this format binary_sensor.visonic_z02
What format could I use? I would have to include a panel reference in there somewhere binary_sensor.visonic_p1_z02 using in this case “p1” for panel 1.

And that leads on to renaming the services and the events

Lastly, by renaming the entities, the services and the events this would be a massive breaking change for every user. I could try to make it backwards compatible so the 1st panel creates everything as it does now and additional panels then create unique entities, events and services but that’s:

  • more work and
  • more difficult and
  • inconsistent across the panels

What are your thoughts? Or anyone else want to join in?

1 Like

Hello Dave!

I dont know about programming but I am glad to hear the in theory it is relative easy. About the names would be perfect:
First: alarm_control_panel.visonic_alarm
Second: alarm_control_panel.visonic_alarm_2
(This for not changing the name of the first panel and mess up with all the configurations of the people who use the integration).

About the sensors:
First panel: binary_sensor.visonic_z02
Second panel: binary_sensor.visonic_p2_z02

It is easy to speak, but I don’t know if it is doable. If the only chance it is have to change everything then I guess it does not deserve it (people are going to hate me :P) . But if it is possible to leave the name of the panel and sensors of the first panel, it would be great.

I don’t know how, but if I can help you just tell me.

This weekend I want to test to add the second panel to a new instance of Home Assistant, and then “share” the sensors with my main HA. Time ago I have read about this, but never tried. I will let you know.

By the way, Powermaster 10 panels are cheap in second hand sites. But sensors have rise the price a lot lately :frowning:

Have a good day!

Hello @davesmeghead

I’ve been using the integration with my Powermaster 30 for some months mainly for arming, disarming and automate some lights and everything is working fine.

But now I would like to go one step beyond… I have some other cameras that are attached to Frigate, and I’m wondering if would be possible to use Frigate events in HA to trigger the Visonic alarm, so the siren would be fired and the panel would call my phone number as it does when the visonic detectors are triggered.

I tried to trigger a violation event through a script with no luck (I guess it is read only). Would the siren port from my Powermaster 30 panel triggered by a relay perform the action I want?

I’ve had this question a lot and the answer is no unless you use a Wemos with a wired sensor on your alarm. It’s described here and then here on the wiki. This provides an ESPHome connected relay to the wired sensor on your panel (assuming you have a spare), you then use the switch in HA that ESPHome creates to “trip” the sensor. In your panel settings you can configure this sensor to do whatever you need e.g. perimeter, 24 hour etc. I’ve tried it myself on my test panel (a PM30) and it works.

1 Like

I have just released version 0.8.0.1 on to Github and made it a HACS Release.

There are 3 changes to the operation of the integration but the functionality has not changed.

  • The Integration supports multiple visonic alarm panels
  • Auto sync time has been fixed for PowerMaster panels
  • The time of the events from the event log have been fixed for PowerMaster panels

Multiple Alarm Panels
The first thing to say is, it is unlikely that many people will have more than 1 alarm panel, especially in combination with HA. So I can’t see this being used very much.
But I’ve added it anyway :slight_smile:

If you only have 1 panel, then

  • After updating to this version and restarting HA you should not notice any difference. You will not need to change any automations etc.
  • If you ever need to delete and re-create the Integration then on the 1st config window (where you choose Ethernet or USB) leave the panel identifier set to 0 and it will re-create all Entities the same as before,
  • All events and services work as before (for info, the panel number defaults to 0 when not set in a service call)
  • It is fully backwards compatible for use with a single panel

If you have multiple panels (or a single panel and wish to change the panel number > 0 in the 1st config window), using panel set to 1 as an example:

  • Alarm Panel HA Entities are named alarm_control_panel.visonic_alarm_panel_1
  • HA Sensors are named binary_sensor.visonic_p1_z01
  • HA Select are named select.visonic_p1_z01
  • HA X10 are named switch.visonic_p1_x01
  • All services and events are the same as before, there is a new attribute called “panel” that is the integer panel number (using 0 for the default). You need to set this in services and use it in events.
  • All Entities have a new attribute called “panel” that is the integer panel number (using 0 for the default)
  • In the 1st config window, when adding multiple panels, if you leave panel number set to 0 then additional panels are auto numbered

Do not have multiple panels with the same panel number → Chaos :frowning:

This is what my HA Integration entry looks like with 2 Panels
Screenshot HA Visonic

:slight_smile:

1 Like

THANK YOU SO MUCH!!!
I know there is no a lot of people who are going to use this but for me, and soon my brother, it is very helpful.
I really appreciate it. Now I am out home but at the end of the week I will install.

Thank you again.

Hi Dave,

I’m running with the following issue. I can’t arm/disarm the alarm. Although the rest is working just fine, e.g reading status of the powermax pro and the sensors.

Currently running version 0.8.01
Panel Name: PowerMax HW-V9_4_5_02 Pro
Issue is not related to 0.8.01, as this already going on quite some time.
Panel Mode: Powerlink

Hopefully it sounds familiar, and otherwise I can provide the log if you like.

Thanks

Hi,
Open the “CONFIGURE” window from the Integrations page, have you ticked the options to allow this from within Home Assistant?
image
If this isn’t the solution then I’ll need you to capture a log file from first starting HA through to it getting to Powerlink and the you trying to arm/disarm the panel. Set your log file settings like this first.
D