Visonic Powermax and Powermaster Component

After the weekend I will check my code again and let you know what it expects. Long time ago I check the Visonic programmer software how it detects the movement, but that is also not an easy why of doing things. The Master10/30 are just not great usage for motion detection, the older models work much better.

Hey,

So I have grabbed the lastest github version, ran then same tests but started with:
set home mode one and then off, waited and then walked around the same route
then after walking around. I set the home mode again and walked down stairs to the hall (saw the light) disarmed the alarm & then walked around again (did not open doors though)

https://pastebin.com/JRup82Tc

Please tell me, I can not achieve the display of the numeric keypad. Reinstalled several times. What can be done?

Hi Phil,

I’ve analysed your log file and the receipt of the B0 messages looks fairly random to me, the biggest problem I have is that I can see that data is changing but I have no way to correlate these changes to you walking around your house.

So I have uploaded 0.3.2.2 to github with code to try to determine motion from the sensors using the PowerMaster “B0 03 04” message. It waits a minimum of 30 seconds (default) between triggers and then needs 2 consecutive “B0 03 04” messages (within 5 seconds (default)) to use the data differences to assume motion detection. This is in the code for testing for now so you’ll need to add the following to your configuration.yaml file. I didn’t want everyone getting it yet in case it messed things up :slight_smile: but everyone with a PowerMaster is welcome to try it and feedback here.

  b0_enable_motion_processing: 'yes'
  b0_min_time_between_triggers: 30
  b0_max_time_for_trigger_event: 5

If you have time to experiment I’ve included the 2 timing values in the configuration.yaml file.

Note that once a detection is made and if you see a motion zone triggered in the Frontend then it will be a minimum of “b0_min_time_between_triggers” seconds before you see another.

If you get chance to try it then let me know how it goes.

You only get the numeric keypad if it remains in “Standard” Mode. If it gets to “Standard Plus” or “Powerlink” then it has downloaded your EEPROM and it knows the user code. It then does not display the numeric keypad.

So, my question back to you is “What is the Panel Mode”?

Excuse me. Perhaps I didn’t ask the question correctly. And I do not understand the answer. Perhaps translate.google is to blame :))
I did not ask a question about “Panel Mode”
I am asking how to finish the output of a numeric keypad? It’s comfortable. When I had Hassio, there was a digital panel. Now on Hassbian - and there is no such imagination.
My settings:
“device:
type: ethernet
host: !secret visonic_ip
port: !secret visonic_port
motion_off: 120
language: ‘EN’
force_standard: ‘no’
sync_time: ‘yes’
allow_remote_arm: ‘yes’
allow_remote_disarm: ‘yes’
override_code: !secret visonic_override_code
download_code: !secret visonic_download_code
arm_without_usercode: ‘yes’”

Apologies but my answer was too quick and too short and I didn’t explain very well. I’ll try to keep what I say simple so it hopefully works in google translate.

When you start Home Assistant, it starts all the components.
When my Visonic Component starts, it tries to connect to the panel and download the EPROM.

If it fails to download the EPROM, it stays in “Standard” Mode.
If it gets the EPROM data then is goes to “Standard Plus” Mode
If it gets the EPROM and the Powerlink data then it goes to “Powerlink” Mode

If it gets the EPROM data, then it has your “user code” from the panel.
If it gets the EPROM data, it does not display the numeric keypad.

In my opinion:

  1. When you had Hassio, it remained in “Standard” Mode and displayed the numeric keypad.
  2. In Hassbian, I think it is in “Standard Plus” or “Powerlink” and does not display the numeric keypad.

So the Panel Mode is very important, what is it?

If you want to force it to stay in “Standard” Mode and show the numeric keypad then:

force_standard: ‘yes’

and remove the following line

override_code: !secret visonic_override_code

I’m new to HA (I just recently installed it together with the Visonic component). Everything works great, but I’ve got one question. I have a Visonic KP-160 PG2 (touch-screen keypad with proximity/RFID tags) and we use it to arm and disarm the alarm. Every proximity tag is assigned an id and I wonder if it’s possible to use the Visonic component to show who armed or disarmed the alarm?

No, it does not work
“Attempt to send a command message to the panel that has been denied, wrong pin code used”
Log: https://pastebin.com/wgD8Y7zT

In the “alarm_control_panel.visonic_alarm” Entity I create an Attribute called “Panel Last Event”. This is a string that has the last action, a forward slash “/” and then the user or gadget that did it. Take a look at what it gets set to for the various ways you arm and disarm your system and let me know if that does what you want.
Edit: Just thought, this only works if you’re in “Powerlink” Mode as it uses the A7 messages

I will try to keep my English simple so you can translate it.

I’ve looked at your log file and cannot see this message.
I can see that you have forced “Standard” Mode.
Is it displaying the numeric keypad?
What panel type is it. Is it PowerMax or PowerMaster?

Can you try again and upload another log file please.

Thank you for your help. I’m using the Powerlink mode, but the attribute “Panel Last Event” is “None”. I do get the following line in the log though:

2019-09-09 07:15:58 WARNING (MainThread) [custom_components.visonic.pyvisonic] [handle_msgtypeA7]      A7 message contains too many messages to process : 255   data=ff bd cf 55 01 ff 00 0a 00 00 43

Ah yes, I’ve seen those A7 messages before, hence the log warning entry, I don’t know how to process that message format.

If you have the log level set to debug there should be other A7 messages in the log file for when the panel has Armed and Disarmed (but not Arming, you need to let if Arm). When the “Panel Last Event” is “None” implies that it has never Armed and then Disarmed. Can you set your log level to debug for this Component, Arm the panel with one of your Fobs (let it fully arm and not just arming with exit delays etc) and then Disarm (maybe with a different Fob) and then upload your log file to pastebin and I’ll take a look through.
EDIT: Oh Wait, Arming and Disarming puts your user code in the log file. Before you upload, do a search and replace for your user code to something else. Say your user code us 6789 then search for “67 89” with a space in the middle and replace with “12 34”.

Panel: Power Max +
log without “override_code” - https://pastebin.com/xfHB5F3F
log with “override_code” - https://pastebin.com/W000Yt6c
the numeric keypad does not appear

Can you try changing this in your config, setting it to ‘no’

arm_without_usercode: ‘no’

This setting, including in Standard Mode is when your Panel does not need a user code to arm the panel. When this is set ‘yes’ and the panel is disarmed then it does not display the numeric keypad.

EDIT: Just to add, there will not be a numeric keypad if any of the following are true:

  1. The Component has achieved Powerlink or Standard Plus Mode
  2. The Component is starting up and the first zone status has not been received (this usually happens in the first 20 seconds or so)
  3. The Panel is in the Disarmed state and ‘arm_without_usercode’ is set to ‘yes’ in your configuration.yaml file
  4. The Override code is set in the configuration.yaml file and it is 4 digits

So to make certain you get a numeric keypad, in your configuration.yaml

  1. Set force_standard to ‘yes’
  2. Do not set the ‘override_code’
  3. Set arm_without_usercode to ‘no’ (this is the default so do not set it)

Works!!! It works now!!! Thank you very much!
P.S. Now I need to understand for myself! As it was better before or now.:man_facepalming:

That’s really good. If I can be of any more help then let me know.

Since HA supports multiple users now, I wondered if I could get the users name and use this as part of the decision to show the numeric keypad.
For example. If I had an android tablet mounted on my wall in the house I would want that to show the keypad for users to enter the arm/disarm code. However, on my phone I just want to arm and disarm without entering the code.

That is what I was talking about. I switched to Home Assistant from OpenHab. There is a module showing the last state. Status. You can track the status. Example. My wife and my child and my guest have different codes. Do you know who unlocked the system - guest, me or my son. In addition, in OpenHab you can find out which particular sensor caused the alarm. It’s comfortable. It would be nice if this can be implemented here.
I apologize. Perhaps this is difficult to implement.

What you ask for should already be there but you’ll need to connect in Powerlink Mode as it’s only available with A7 messages. All HA interfaces are the same i.e. they will all present the numeric keypad or not.

If you look at the “Panel Last Event” Attribute of the alarm_control_panel.visonic_alarm Entity.

Go in to Developer Tools --> States and take a look.

As I said in a previous post, this is the “Action” a forward slash “/” and then the User/Fob that made that action.
To get detailed:
The Action is line 287 in pyvisonic.py (pmLogEvent_t)
The User/Fob is line 361 in pyvisonic.py (pmLogUser_t)
Note that these are language dependencies if you use them.

When your Wife, Child, guest enter their own user codes, this should be differentiated in the text after the “/” in the User/Fob data.

OK, I know I’m quoting myself :slight_smile:

ScorpionSPB : I have uploaded a new version to Github, version 0.3.3.
This allows you to force the display of the numeric keypad.

Can you try the following in your configuration.yaml file please

visonic:
  device:
    type: ethernet
    host: !secret visonic_ip
    port: !secret visonic_port
  motion_off: 120
  language: ‘EN’
  force_standard: ‘no’
  sync_time: ‘yes’
  allow_remote_arm: ‘yes’
  allow_remote_disarm: ‘yes’
  download_code: !secret visonic_download_code
  arm_without_usercode: ‘no’
  force_numeric_keypad: 'yes'

I have copied your example configuration.yaml from a few days ago and modified it.
This should connect to the Panel in Powerlink Mode (to give you the A7 panel status).
This will always display the numeric keypad.
This will force your users to enter a code.
This does not support multiple HA users.
You should get different “Panel Last Event” atrribute data for each different panel user.

Give it a try and let me know.

  1. You should get the numeric keypad
  2. It should go in to Powerlink Mode, please check
  3. You should see the “Panel Last Event” atrribute in the Developer Tools → States change