Visonic Powermax and Powermaster Integration

Hi Dave,

  1. concerning the “unable to arm disarm after 15-20mins issue”, the release you suggested me to use seems to fix it. My HA-visonic integration worked consistently for the past 2 days and it is a new record :slight_smile:
    If I see any new issue I’ll tell you but for now i’d flag it as “solved”

  2. concerning the dev_B0 test on the language settings, I’ll do this test tomorrow and let you know the results hopefully within tomorrow evening. Do you want me to use the 0.9.7.7 or the 0.9.7.8?

  3. concerning the json translation file: if you want I am confident I could provide you an it.json, even though to me it is not a dramatic improvement since my entire HA environment is in english :slight_smile:

  4. I have an italian panel and my debug log is here, please let me know if you need a different file or something else

Please let me know your ideas about 2. 3. and 4.

thank you for your efforts,
paolo

Hi and thanks

  1. OK
  2. Please use 0.9.7.8 as that has the language changes in it
  3. Thankyou. I’m hoping it might get more Italian speaking people using the Integration, those where their English is not so good and have the panel in Italian.
  4. That’s an old log file from release 0.9.6.21, I need a log file from yesterdays release 0.9.7.8 please

For my last question, I asked people how they would feel about translating around 150 phrases and whether to include the strings for pmZoneName_t in the .json language files.

There are some abbreviations that get used (although I assume that abbreviations such as GSM are the same in all languages, or are they?):

"System", "Zone", "Fob", "User", "Pad", "Siren", "2Pad", "X10", "PGM", "GSM", "P-LINK", "PTag", "Rptr", "Unknown",

This is the list of approx 150 phrases.

           "None",
           # 1
           "Interior Alarm", "Perimeter Alarm", "Delay Alarm", "24h Silent Alarm", "24h Audible Alarm",
           "Tamper", "Control Panel Tamper", "Tamper Alarm", "Tamper Alarm", "Communication Loss",
           "Panic From Keyfob", "Panic From Control Panel", "Duress", "Confirm Alarm", "General Trouble",
           "General Trouble Restore", "Interior Restore", "Perimeter Restore", "Delay Restore", "24h Silent Restore",
           # 21
           "24h Audible Restore", "Tamper Restore", "Control Panel Tamper Restore", "Tamper Restore", "Tamper Restore",
           "Communication Restore", "Cancel Alarm", "General Restore", "Trouble Restore", "Not used",
           "Recent Close", "Fire", "Fire Restore", "Not Active", "Emergency",
           "Remove User", "Disarm Latchkey", "Confirm Alarm Emergency", "Supervision (Inactive)", "Supervision Restore (Active)",
           "Low Battery", "Low Battery Restore", "AC Fail", "AC Restore", "Control Panel Low Battery",
           "Control Panel Low Battery Restore", "RF Jamming", "RF Jamming Restore", "Communications Failure", "Communications Restore",
           # 51
           "Telephone Line Failure", "Telephone Line Restore", "Auto Test", "Fuse Failure", "Fuse Restore",
           "Keyfob Low Battery", "Keyfob Low Battery Restore", "Engineer Reset", "Battery Disconnect", "1-Way Keypad Low Battery",
           "1-Way Keypad Low Battery Restore", "1-Way Keypad Inactive", "1-Way Keypad Restore Active", "Low Battery Ack", "Clean Me",
           "Fire Trouble", "Low Battery", "Battery Restore", "AC Fail", "AC Restore",
           "Supervision (Inactive)", "Supervision Restore (Active)", "Gas Alert", "Gas Alert Restore", "Gas Trouble",
           "Gas Trouble Restore", "Flood Alert", "Flood Alert Restore", "X-10 Trouble", "X-10 Trouble Restore",
           # 81
           "Arm Home", "Arm Away", "Quick Arm Home", "Quick Arm Away", "Disarm",
           "Fail To Auto-Arm", "Enter To Test Mode", "Exit From Test Mode", "Force Arm", "Auto Arm",
           "Instant Arm", "Bypass", "Fail To Arm", "Door Open", "Communication Established By Control Panel",
           "System Reset", "Installer Programming", "Wrong Password", "Not Sys Event", "Not Sys Event",
           # 101
           "Extreme Hot Alert", "Extreme Hot Alert Restore", "Freeze Alert", "Freeze Alert Restore", "Human Cold Alert",
           "Human Cold Alert Restore", "Human Hot Alert", "Human Hot Alert Restore", "Temperature Sensor Trouble", "Temperature Sensor Trouble Restore",

           # New values for PowerMaster and models with partitions
           "PIR Mask", "PIR Mask Restore", "Repeater low battery", "Repeater low battery restore", "Repeater inactive",
           "Repeater inactive restore", "Repeater tamper", "Repeater tamper restore", "Siren test end", "Devices test end",
           # 121
           "One way comm. trouble", "One way comm. trouble restore", "Sensor outdoor alarm", "Sensor outdoor restore", "Guard sensor alarmed",
           "Guard sensor alarmed restore", "Date time change", "System shutdown", "System power up", "Missed Reminder",
           "Pendant test fail", "Basic KP inactive", "Basic KP inactive restore", "Basic KP tamper", "Basic KP tamper Restore",
           "Heat", "Heat restore", "LE Heat Trouble", "CO alarm", "CO alarm restore",
           # 141
           "CO trouble", "CO trouble restore", "Exit Installer", "Enter Installer", "Self test trouble",
           "Self test restore", "Confirm panic event", "n/a", "Soak test fail", "Fire Soak test fail",
           "Gas Soak test fail", "n/a", "n/a", "n/a", "n/a",

That’s a lot of work so I have not included them in the json file, I want peoples opinion if it’s worth doing or do we just leave them in English (and French and Dutch as I already have those).

Just to be clear, I’m not asking you to translate the above list, I want yours / everyones’ opinion if it’s worth it and then including them in the language json translation file.

Dave

Hi,
And another thing, for the language translation file, there’s a lot of repetition between the config and the options sections
D

Hi Dave,

I’ll edit this message while i do the different tasks so that we do not spread out too much the discussion :slight_smile:

  1. i cannot see the language settings here


    (sorry I’m pretty new to HA, started my project only a month ago)

  2. to be done

  3. Log file from 0.9.7.8 - italian panel

Hi,
The language settings are on the next config window, click submit at the bottom.

However, looking at your log file the locations of the needed data in the EPROM is inconsistent and we won’t be able to use it. I’ll remove the “Panel” language setting as its incorrect data. It was a bit of an experiment anyway.

Instead I’ll add the various settings to the language json file so they can be translated properly.

That will only leave us with the translations for lasteventname and lasteventaction.
The lasteventname can be done using the json language file but I’m still not sure about the 150 translations needed for lasteventaction.
Also, these are used in the panels event log file (the xml/csv file that gets written out) and these would not be able to use the translations from the json file anyway.

Hi All,

Please go here and vote for this feature request
Developer Tools - States, option to show language translated text - Feature Requests - Home Assistant Community (home-assistant.io)

Thanks
Dave

1 Like

So should I start translating to it the text in the en.json?

Not yet I think, I’ll take another look through to make sure and upload either a whole new release or just the en.json file

Hi,
As you’ve seen in the Issues lists I’ve just released 0.9.7.9 to dev_B0, if you get the chance please give it a try.

The en.json file in the languages directory is 99% complete. I can’t think of what the 1% is at the moment but I’ve probably missed something :wink:

Could you please take a look at having a go at a translation, there’s no hurry as I’m going on holiday soon anyway. Just a few things to note:

  • I’ve also included all 150+ lasteventaction strings in event_action attribute setting in the en.json file, please don’t feel obliged to do all of them.
  • These are ascii files so please use the proper codes in the strings for accented characters.
  • There is a lot of repetition throughout the file, I think “Armed Away” is in about 6 different places. Home Assistant has a way to manage this but only for core integrations and it doesn’t work for custom integrations like this one. So it has to be as it is unfortunately.

Thanks for the help with this, but I say again, it’s a big file with a lot of repetition so don’t feel obliged to do it all.
Dave

1 Like

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.