Visonic Powermax and Powermaster Integration

Hi,
I’ve just released 0.9.7.10 to dev_B0, if you get the chance please give it a try.

It’s mainly for Powermax+ panels to try and get it working but since it needs to work with all panels I’d be interested in anyone testing it.

The only other thing to add, I’ll be away with work and then holiday for week or so. Please don’t expect any updates or responses to github issues, I’ll try when I can but … :wink:

Dave

Enjoy some holiday and thanks for your hard work with the integration :grinning:

Hi Dave,
I’m currently running 0.9.7.9 on powermax complete, it’s running well, responsiveness has been great.

I’ve noticed a (beneficial ) behaviour change since moving to your major new release (0.9.6.x) which I though I’d check if it’s by design or accident.

Currently when a PIR battery runs out, the panel double beeps every few minutes unit it’s changed. I’ve never been able to find anywhere in the panel configuration to prevent this - as it’s a nightmare if the occurs overnight (also really freaks my rescue dog out making her shake). Anyway, yesterday a battery died & the panel double beeped once - and hasn’t done so since!!

Also noticed an automation I setup ages ago (which didn’t previously work) to send a notification to my phone when a battery dies, started working.

Any idea why either of these things now work?
And please keep whatever’s caused this :grinning:

UPDATE: looks like after a few hours the double beeping comes back. restarting the integration stops it again for a few hours

Sorry new person here… I have a initial setup/connection problem.

I basically found my Visonic Powermaster 33 and kp-250 after a garage clean out after a move and was going to sell it on apart from i noticed you clever sods or Dave has got it working with Home Assistant. So I setup Home Assistant on my home little server in docker and off i went.

So I, started again by factory resetting the Powermater-33 (jumper E+F), that worked, connected the KP-250 to the Powermater 33, setup a couple of sensors, just motion and a door sensor. I have a Powerlink and have set a static IP. I can ping it and everything is good. I also think I changed the download code, little bit different on the KP-250, i think it is Installer Mode → 04:Communication → 6: Up/Download → PSTN Up/Download → Inst.UL/DL code → 5650.

I have setup v0.9.7.9-dev_b0 build in Home Assistant

But I can’t for the life of me get it connected… Under the entity it just says unavailable. I have tried Powerlink Emulator and Standard modes. I have gone through the post and got a little confused as a lot has gone on but couldn’t find much that can help.

I think it might be my port? Or have I not set the Download code correctly?

Any help from one Dave to another would be amazing, sorry for being a noob on this but I am stuck and would love to utalise this. (I am new to home assistant too)

      "2024-09-05 20:04:07.077396+01:00  D P0  init panel 0  language en",
      "2024-09-05 20:04:07.077544+01:00  D P0  reset client panel variables",
      "2024-09-05 20:04:07.077834+01:00  I P0  Exclude sensor list = []     Exclude x10 list = []",
      "2024-09-05 20:04:07.078025+01:00  D P0  ........... connection attempt 1 of 1",
      "2024-09-05 20:04:07.078254+01:00  D P0  connect_to_alarm self.config = {'panel_number': 0, 'type': 'ethernet', 'host': '192.168.1.10', 'port': '30000', 'path': '', 'baud': 9600, 'emulation_mode': 'Powerlink Emulation', 'download_code': '5650', 'show_eeprom_attributes': True, 'exclude_x10': [], 'exclude_sensor': [], 'siren_sounding': ['intruder'], 'panel_state_notifications': ['connection_problem', 'siren_sounding'], 'sensor_event_list': ['problem'], 'retry_connection_count': 1.0, 'retry_connection_delay': 90.0, 'motion_off_delay': 120.0, 'magnet_closed_delay': 5.0, 'emergency_off_delay': 120.0, 'arm_without_usercode': False, 'force_numeric_keypad': False, 'arm_home_enabled': True, 'arm_night_enabled': True, 'arm_away_instant': False, 'arm_home_instant': False, 'allow_remote_arm': False, 'allow_remote_disarm': False, 'allow_sensor_bypass': False, '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}",
      "2024-09-05 20:04:07.078371+01:00  D P0  Connection Device Type is ethernet",
      "2024-09-05 20:04:07.080283+01:00  D P0  [getConfigData] Replacing default English names with provided list:",
      "2024-09-05 20:04:07.088367+01:00  D P0  [getConfigData] Emulation Mode Powerlink Emulation so setting ForceStandard to False, DisableAllCommands to False",
      "2024-09-05 20:04:07.089140+01:00  D P0  Setting TCP socket Options Exception [Errno 111] Connection refused",
      "2024-09-05 20:04:07.089285+01:00  D P0  reset client panel variables",
      "2024-09-05 20:04:07.089424+01:00  D P0  Client: Sending HA Event visonic_alarm_panel_state  {'panel': 0, 'panel_id': 'alarm_control_panel.visonic_alarm', 'action': 'connection', 'state': 'failedattempt', 'attempt': 1}",
      "2024-09-05 20:04:07.089555+01:00  D P0  notification_config ['connection_problem', 'siren_sounding']",
      "2024-09-05 20:04:07.089595+01:00  I P0  HA Notification: Failed to connect into Visonic Alarm Panel 0. Check Your Network and the Configuration Settings.",
      "2024-09-05 20:04:07.090551+01:00  D P0  Creating Alarm Panel Entity"
2024-09-05 20:04:07.088 DEBUG (MainThread) [custom_components.visonic.client] P0  [getConfigData] Emulation Mode Powerlink Emulation so setting ForceStandard to False, DisableAllCommands to False
2024-09-05 20:04:07.089 DEBUG (MainThread) [custom_components.visonic.client] P0  Setting TCP socket Options Exception [Errno 111] Connection refused
2024-09-05 20:04:07.089 DEBUG (MainThread) [custom_components.visonic.client] P0  reset client panel variables
2024-09-05 20:04:07.089 DEBUG (MainThread) [custom_components.visonic.client] P0  Client: Sending HA Event visonic_alarm_panel_state  {'panel': 0, 'panel_id': 'alarm_control_panel.visonic_alarm', 'action': 'connection', 'state': 'failedattempt', 'attempt': 1}
2024-09-05 20:04:07.089 DEBUG (MainThread) [custom_components.visonic.client] P0  notification_config ['connection_problem', 'siren_sounding']
2024-09-05 20:04:07.089 INFO (MainThread) [custom_components.visonic.client]  P0  HA Notification: Failed to connect into Visonic Alarm Panel 0. Check Your Network and the Configuration Settings.
2024-09-05 20:04:07.089 DEBUG (MainThread) [custom_components.visonic] [Visonic Setup] Setting client ID for entry id 01J71S53548MC1J6TVK101A3EM
2024-09-05 20:04:07.089 DEBUG (MainThread) [custom_components.visonic] [Visonic Setup] Returning True for entry id 01J71S53548MC1J6TVK101A3EM
2024-09-05 20:04:07.090 DEBUG (MainThread) [custom_components.visonic.client] P0  Creating Alarm Panel Entity
2024-09-05 20:04:07.090 DEBUG (MainThread) [custom_components.visonic.alarm_control_panel] Initialising alarm control panel Visonic Alarm panel 0

Currently you cannot use this integration with the power link module. You have to replace the module with different hardware. See here how to set it up:

1 Like

Hi All,

Well I’ve returned from my jolly holidays and spend a few hours last night and this morning making changes to the code to try and fix the latest round of issues reported on Github. I’ve just uploaded a development dev_B0 release 0.9.8.0 with notes as follows:


Fixes for PowerMax+ panels: Revert back to using Download commands and ‘Bump’ doesn’t work with older panels. Various changes to the sequencer because of this. Startup will now take longer across all panels due to this change.

Changes to panel event handling: Added PanelEventCoordinator to manage the panel events from A5, A7 and B0 (Powermaster only) messages. Hopefully this both reduces replication of generated events and only sends the event that is most relevant (e.g. ignores ‘system’ events when there’s a better one with more info). Also, some panels use ‘system’ when they don’t need an arm code. Also, ‘arming’ is not a panel event so it will be inconsistent with ‘state’, this is intentional.

Time representation consistent: The time representation is consistent across all visonic entities.

This release also includes:

  • a tweak to en.json for the X10 switch attributes.
  • an update to hopefully cater for disabled entities

A bit more info for the PowerMax+ situation…

Whilst experimenting about a year ago I found a command that I could send to the panel to get it to report back it’s panel type etc. I called this the ‘Bump’ command and using it made startup much quicker. However, Powermax+ users have reported that Bump doesn’t work with their panels and as the whole point of using Bump is to quickly get the panel type, I do not know beforehand that I can’t use Bump. Using Bump, seeing whether it works and if not using Download takes longer than just using Download for it all (getting the panel type and then downloading EPROM) so I have reverted back to using Download and not using Bump. Hence, overall the startup sequence takes longer than previous 0.9.x.x releases.

A bit more on the Event Handling…

  • All panels have a ‘state’ i.e. disarmed, armed home etc.
  • All panels generate ‘events’ that represent panel changes such as tamper alarms etc.

However, the ‘events’ overlap with the panels ‘state’ and it is this overlap that has been causing inconsistencies between the alarm panel ‘state’ attribute and the ‘lastevent’ attribute set. The inconsistencies mainly come from the outputting of messages from the panel, sometimes the panel will output a message and sometimes not.
Getting more technical now…

  • Panel ‘state’ comes from ‘A5’ and ‘B0 24’ messages (although only a PowerMaster outputs B0 messages). ‘state’ data is limited to the state of the panel i.e. disarmed, armed home etc.
  • Panel ‘events’ come from ‘A7’ messages. A7 ‘event’ data also includes events such as communication failure, tamper alerts etc. Note that “arming” is not an event. When you Arm your panel, the event is the point at which it is Armed.

To take an example of Disarming the panel. Sometimes the panel sends all ‘state’ and ‘event’ messages (including a powermaster sending separate A5 and B0 24 messages for the same state). Sometimes the panel only sends 1 of the messages and not the others, you can imaging the possible combinations of having 2 (powermax: A5 or A7) or 3 (powermaster: A5, B0 24 or A7) sources of ‘state’ and ‘event’.

So I have added a coordinator to the code to try and figure out what’s going on and to only output an HA Event (and update lastevent* attributes) when needed, to try and reduce duplication (when the panel sends repeated A7 event messages) and coordinate the multiple sources of the same thing in to a single HA Event.

Please give it a try if you can download the zip file and copy the files across, and let me know of any issues, either here or as Github Issues
Dave

1 Like

Hello, where do i get the dev_B0 release 0.9.8.0?
Best regards

Hi,

Here
davesmeghead/visonic at dev_b0 (github.com)

Click on Green “Code” and then “Download Zip”.
You then need to delete backup the existing visonic directory in your /config/custom_components (to put it back if you need to later) and replace it with the visonic directory from the zip file. Then restart Home Assistant.

Please note that this is a development release and not very well tested

Dave

Ok, thank you! I will give it a try.
Stefan

Hi, i did some job here here, could you have a look at it and give me a feedback? :slight_smile:
No rush at all :slight_smile:

1 Like

I will work on the pt.json to have the tranlations for Portuguese.

Hello Dave,

I Also have a Powermax+ and since a while Powerlink did not work.

Powerlink is working since version 0.9.8.0.
Only when I restart H.A. Powerlink it is broken.
After that when I manually enroll the powerlink again it works again.

What is the best way to give a log?
The “Panel Log Entry Event” and Panel Log Completion Event, are not created.
While I activated the tick boxes.

Hi All,

I’ve just released 0.9.8.1 to dev_B0 as a development release.
This is purely a language translation development release
There are no other changes for the startup sequence etc that are related to the other issues.
I believe that I’ve captured 99% of the language settings for the panel (is anyone ever 100%, I’m sure that someone will spot something than needs adding to the translations).

The English translation file en.json is the basis of the translations. To translate to any other language please use this as your starting point and rename it e.g. German would be de.json, Spanish would be es.json

I have also included an Italian it.json that is about 40% complete (thankyou iaxexo) and I have had a go at the French (about 20% complete, but my French isn’t that good). So if anyone wants to have a go at updating or just checking them and commenting then let me know so you all don’t double up doing the same language.

Joao Sousa has also offered to do a Portuguese translation i.e pt.json.

To change your language settings in Home Assistant you need to change 2 settings:

  • The Settings / General language setting, don’t forget to click update
  • Select your name icon bottom left, change the language

I don’t know why there are 2 settings

EDIT: I’ve also messed up some of the accented characters so if anyone knows what they should be and how to fix them then please go for it :slight_smile:

Dave

Thanks for making a good start on this, I’m not a good person to comment on your Italian translations so I’ve just included it in the latest 0.9.8.1 release. I merged your file in to the main much larger file. If you want to continue and do the remaining translations then please do so.

Ah OK, you’re getting confused. The Panel log file that the integration creates is about the panel events.

With some older panels such as very early Powermax+ panels you’ll need to manually enrol after restarting, but I can take a look at a Home Assistant debug log file to check for you.

To create a Home Assistant log file with debug information please add this to your configuration.yaml file and then zip the log file. Either upload it to Dropbox or similar and place a link here or create an Issue on Github and that will allow you to include zip files in the issue itself.

logger:
  default: error
  logs:
    custom_components.visonic: debug

Dave

Hallo Dave, because there is no panel log created, I was indeed confused.

About the manually enrol. In the past I never had te enroll it after a restart.
Thats way I was wondering if its normal or not.

I have created a log file. There ar some other errors to work on at :slightly_smiling_face:

Log file

Hi all,

Development release 0.9.8.2 uploaded to dev_B0 on github.

This development release is for a test for a Powermax+ (and other panels that manually enrol) and an update to the 3 current language files.

For language file development it’s probably best if we track updates as Github Issues:
French here
Italian here
Dutch here

As before,

Please can you create an Issue on Github for it i.e. “Translation in Portuguese” for inclusion and discussion.

Please give this release a try. In your log file the panel is sending Powerlink alive messages from the start but refusing to download EPROM until you manually enrol. So in this release, if it receives Powerlink alive messages at the start it asks to panel to enrol, I want to see if this fixes your issue or if not then I want to see how the panel responds. So please be prepared, this might not be a fix but I’d like to see a log file in either case to see what the panel response is.

For all the panels that automatically enrol, I’ve tried to test using my panels but only once did I get the right conditions i.e. the panel outputting an alive at the start, and it seemed to work but be prepared for it not working just in case. In other words this release has had very limited testing.

Thanks for your patience with this issue
Dave :grin: :+1:

Yes, I can. Thank you.

Thanks for your patience with this issue `

No problem at all.

I have replaced the files this morning.
With version 0.9.8.2 I still have to manual enroll the powerlink after a restart.

Log 0-8-9-2

Hi all,

I’ve just uploaded 0.9.8.3 with language updates, linked entities to devices and various fixes.

French is just about 100% complete, if you have any problems then please add to the Github Issue on the French Translation.
Translation in french · Issue #154 · davesmeghead/visonic (github.com)

I have added a translation for the Netherlands but this only includes the text in the original integration so is very dodgy and only about 20% complete. If anyone wants to edit it to complete it or just improve it further then post in the Github Issue
Translation for Netherlands · Issue #157 · davesmeghead/visonic (github.com)

Entities are now linked to their Device so for example the Image and Select Entities are linked to the Binary Sensor Device.

Dave