guerrerotook / securitas-direct-new-api

This repository contains the new securitas direct API that can be integrated in Home Assistant
Apache License 2.0
76 stars 30 forks source link

error arming but dissarming #146

Closed Ginxo closed 10 months ago

Ginxo commented 1 year ago

Hi! I've added this amazing integration to my HA instance, it works like a charm during dissarming but I can't make it work for arming (any of the arming options), Error log shown

Logger: homeassistant.components.websocket_api.http.connection
Source: custom_components/securitas/alarm_control_panel.py:209
Integration: Home Assistant WebSocket API ([documentation](https://www.home-assistant.io/integrations/websocket_api), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+websocket_api%22))
First occurred: 18:27:48 (1 occurrences)
Last logged: 18:27:48
[547686506176] 'str' object has no attribute 'operation_status'

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 226, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1974, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2011, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 870, in entity_service_call
    response_data = await _handle_entity_call(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 942, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/securitas/alarm_control_panel.py", line 325, in async_alarm_arm_home
    await self.set_arm_state("ARMDAY1")
  File "/config/custom_components/securitas/alarm_control_panel.py", line 209, in set_arm_state
    while arm_status.operation_status == "WAIT":
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'operation_status'

any clue, many thanks!

montoyra commented 1 year ago

Hi Ginxo,

Do you find any solution about it?

Thanks a lot

Ginxo commented 12 months ago

nothing yet @montoyra disarming still working like a charm, but I can't arm for now, looking forward to any reply from @guerrerotook

petarlaf commented 11 months ago

I have exactly the same issue. Are you using one of the newish Securitas direct systems? Mine was installed 12 months ago.

Ginxo commented 11 months ago

Mine is around 4-5 years old but service API should be the same, right?

petarlaf commented 11 months ago

It seems to work for everyone else, so I assumed there is a change to new systems or something... But apparently not :)

guerrerotook commented 11 months ago

Sorry for not replying before. I created this branch where I modified the alarm_control_panel.py and added more code to catch the exception and print it as output.

https://github.com/guerrerotook/securitas-direct-new-api/blob/146-error-arming-but-dissarming/custom_components/securitas/alarm_control_panel.py

Can you copy the content of the file and save in your installation only modifying that particular file? Then tell me how it goes.

Ginxo commented 10 months ago

thanks @guerrerotook sorry for the late reply I have replaced alarm_control_panel.py file content by the one you provided on previous comment on library version v2.2.0.0

after clicking on "Arm away" status change to Arming image

then few seconds later status changes to Disarmed. You can see this on logbook entries image

Disarming still working like a charm.

Arming operation logs

2023-10-20 08:39:56.679 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Running websocket_api script
2023-10-20 08:39:56.679 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Executing step device automation
2023-10-20 08:39:56.680 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=alarm_control_panel, service=alarm_arm_away, service_data=entity_id=alarm_control_panel.casa>
2023-10-20 08:39:56.681 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.casa, old_state=<state alarm_control_panel.casa=disarmed; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-20 08:37:45.376, friendly_name= Casa, supported_features=23 @ 2023-10-20T08:37:49.893341+02:00>, new_state=<state alarm_control_panel.casa=arming; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-20 08:37:45.376, friendly_name= Casa, supported_features=23 @ 2023-10-20T08:39:56.681516+02:00>>
2023-10-20 08:39:59.270 ERROR (MainThread) [custom_components.securitas.alarm_control_panel] Error calling the check status when arming
2023-10-20 08:39:59.271 ERROR (MainThread) [custom_components.securitas.alarm_control_panel] Detector de acceso con tecnología Shocksensor >> Pl_others_100_Ptrastero
2023-10-20 08:39:59.271 ERROR (MainThread) [custom_components.securitas.alarm_control_panel] 'str' object has no attribute 'operation_status'
2023-10-20 08:40:01.740 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.casa, old_state=<state alarm_control_panel.casa=arming; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-20 08:37:45.376, friendly_name= Casa, supported_features=23 @ 2023-10-20T08:39:56.681516+02:00>, new_state=<state alarm_control_panel.casa=disarmed; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-20 08:39:59.456, friendly_name= Casa, supported_features=23 @ 2023-10-20T08:40:01.740534+02:00>>

Disarming operation logs

2023-10-20 08:43:06.398 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Running websocket_api script
2023-10-20 08:43:06.399 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Executing step device automation
2023-10-20 08:43:06.400 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=alarm_control_panel, service=alarm_disarm, service_data=entity_id=alarm_control_panel.casa, code=1234>
2023-10-20 08:43:06.401 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.casa, old_state=<state alarm_control_panel.casa=disarmed; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-20 08:39:59.456, friendly_name= Casa, supported_features=23 @ 2023-10-20T08:40:01.740534+02:00>, new_state=<state alarm_control_panel.casa=disarming; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-20 08:39:59.456, friendly_name= Casa, supported_features=23 @ 2023-10-20T08:43:06.401195+02:00>>
2023-10-20 08:43:06.535 INFO (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Login is expired. Login again
2023-10-20 08:43:17.357 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.casa, old_state=<state alarm_control_panel.casa=disarming; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-20 08:39:59.456, friendly_name= Casa, supported_features=23 @ 2023-10-20T08:43:06.401195+02:00>, new_state=<state alarm_control_panel.casa=disarmed; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-20 08:43:11.770, friendly_name= Casa, supported_features=23 @ 2023-10-20T08:43:17.357392+02:00>>
guerrerotook commented 10 months ago

Can you enable the debug output for the integration and see what are the messages from the API? That would help debug what is happening. Take care because everything is being print including your username and password.

Ginxo commented 10 months ago

thanks @guerrerotook I have replaced several entries from the logs, like DEVICE_INDIGITALL , DEVICE_ID, UUID and OWA

for "Arm Home" operation without code :x:

2023-10-23 09:25:54.549 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=alarm_control_panel, service=alarm_arm_home, service_data=entity_id=alarm_control_panel.casa>
2023-10-23 09:25:54.553 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall $DEVICE_INDIGITALL
2023-10-23 09:25:54.964 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:25:54.964 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarm":{"res":"OK","msg":"Su solicitud ha sido enviada","referenceId":"OWA_______________48500734__20231023092554390________________"}}}

2023-10-23 09:25:55.966 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall $DEVICE_INDIGITALL
2023-10-23 09:25:56.080 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:25:56.080 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarmStatus":{"res":"WAIT","msg":"Petición en proceso","status":null,"numinst":null,"protomResponse":null,"protomResponseDate":null}}}

2023-10-23 09:25:57.081 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall $DEVICE_INDIGITALL
2023-10-23 09:25:57.178 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:25:57.179 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarmStatus":{"res":"WAIT","msg":"Petición en proceso","status":null,"numinst":null,"protomResponse":null,"protomResponseDate":null}}}

2023-10-23 09:25:58.181 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall $DEVICE_INDIGITALL
2023-10-23 09:25:58.313 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:25:58.313 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarmStatus":{"res":"WAIT","msg":"Petición en proceso","status":null,"numinst":null,"protomResponse":null,"protomResponseDate":null}}}

2023-10-23 09:25:59.314 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall $DEVICE_INDIGITALL
2023-10-23 09:25:59.412 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:25:59.413 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarmStatus":{"res":"OK","msg":"Tu Alarma está desconectada","status":"0","numinst":"2482298","protomResponse":"D","protomResponseDate":"2023-10-23 09:25:54.476"}}}

2023-10-23 09:25:59.414 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.casa, old_state=<state alarm_control_panel.casa=disarmed; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-23 09:25:42.846, friendly_name= Casa, supported_features=23 @ 2023-10-23T09:25:47.505196+02:00>, new_state=<state alarm_control_panel.casa=disarmed; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-23 09:25:54.476, friendly_name= Casa, supported_features=23 @ 2023-10-23T09:25:47.505196+02:00>>

for "Arm Home" operation with code :x:

2023-10-23 09:27:16.094 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=alarm_control_panel, service=alarm_arm_home, service_data=entity_id=alarm_control_panel.casa, code=1234>
2023-10-23 09:27:16.104 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.casa, old_state=<state alarm_control_panel.casa=disarmed; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-23 09:25:54.476, friendly_name= Casa, supported_features=23 @ 2023-10-23T09:25:47.505196+02:00>, new_state=<state alarm_control_panel.casa=arming; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-23 09:25:54.476, friendly_name= Casa, supported_features=23 @ 2023-10-23T09:27:16.103899+02:00>>
2023-10-23 09:27:16.105 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall $DEVICE_INDIGITALL
2023-10-23 09:27:16.353 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:27:16.354 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSArmPanel":{"res":"OK","msg":"Su solicitud ha sido enviada","referenceId":"OWA_______________48500734__20231023092716220________________"}}}

2023-10-23 09:27:17.356 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall $DEVICE_INDIGITALL
2023-10-23 09:27:17.452 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:27:17.452 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSArmStatus":{"res":"WAIT","msg":"Petición en proceso","status":null,"protomResponse":null,"protomResponseDate":null,"numinst":null,"requestId":"_pollingStatus_19760","error":null}}}

2023-10-23 09:27:18.453 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall $DEVICE_INDIGITALL
2023-10-23 09:27:23.572 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:27:23.573 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSArmStatus":{"res":"ERROR","msg":"Detector de acceso con tecnología Shocksensor >> Home Puerta Entrada","status":null,"protomResponse":null,"protomResponseDate":null,"numinst":"2482298","requestId":"_pollingStatus_1880009","error":{"code":"61303","type":"TECHNICAL_ERROR","allowForcing":false,"exceptionsNumber":null,"referenceId":null}}}}

2023-10-23 09:27:23.577 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [547210308672] 'str' object has no attribute 'operation_status'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 226, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 2012, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2049, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 876, in entity_service_call
    response_data = await _handle_entity_call(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 948, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/securitas/alarm_control_panel.py", line 332, in async_alarm_arm_home
    await self.set_arm_state("DARM1")
  File "/config/custom_components/securitas/alarm_control_panel.py", line 209, in set_arm_state
    )

AttributeError: 'str' object has no attribute 'operation_status'
2023-10-23 09:27:23.950 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=system_log, service=write, service_data=logger=frontend.js.latest.202310050, message=Unhandled promise rejection from Firefox 113.0 on Linux x86_64
{
  "code": "unknown_error",
  "message": "'str' object has no attribute 'operation_status'"
}, level=debug>

DISARM Operation with code :heavy_check_mark:

2023-10-23 09:30:29.673 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall 5$DEVICE_INDIGITALL
2023-10-23 09:30:29.770 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:30:29.770 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSDisarmStatus":{"res":"WAIT","msg":"Petición en proceso","status":null,"protomResponse":null,"protomResponseDate":null,"numinst":null,"requestId":"_pollingStatus_5753130","error":null}}}

2023-10-23 09:30:30.772 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall 5$DEVICE_INDIGITALL
2023-10-23 09:30:30.900 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:30:30.900 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSDisarmStatus":{"res":"OK","msg":"Tu Alarma ha sido desconectada","status":"0","protomResponse":"D","protomResponseDate":"2023-10-23 09:30:25.126","numinst":"2482298","requestId":"_pollingStatus_5762680","error":null}}}

2023-10-23 09:30:30.903 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall 5$DEVICE_INDIGITALL
2023-10-23 09:30:31.138 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:30:31.138 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarm":{"res":"OK","msg":"Su solicitud ha sido enviada","referenceId":"$OWA"}}}

2023-10-23 09:30:32.140 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall 5$DEVICE_INDIGITALL
2023-10-23 09:30:32.241 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:30:32.241 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarmStatus":{"res":"WAIT","msg":"Petición en proceso","status":null,"numinst":null,"protomResponse":null,"protomResponseDate":null}}}

2023-10-23 09:30:33.243 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall 5$DEVICE_INDIGITALL
2023-10-23 09:30:33.361 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:30:33.362 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarmStatus":{"res":"WAIT","msg":"Petición en proceso","status":null,"numinst":null,"protomResponse":null,"protomResponseDate":null}}}

2023-10-23 09:30:34.364 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall 5$DEVICE_INDIGITALL
2023-10-23 09:30:34.458 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:30:34.458 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarmStatus":{"res":"WAIT","msg":"Petición en proceso","status":null,"numinst":null,"protomResponse":null,"protomResponseDate":null}}}

2023-10-23 09:30:35.461 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] Making request with device_id $DEVICE_ID, uuid $UUID and idDeviceIndigitall 5$DEVICE_INDIGITALL
2023-10-23 09:30:35.613 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] --------------Response--------------
2023-10-23 09:30:35.613 DEBUG (MainThread) [custom_components.securitas.securitas_direct_new_api.apimanager] {"data":{"xSCheckAlarmStatus":{"res":"OK","msg":"Tu Alarma está desconectada","status":"0","numinst":"2482298","protomResponse":"D","protomResponseDate":"2023-10-23 09:30:31.116"}}}

2023-10-23 09:30:35.614 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.casa, old_state=<state alarm_control_panel.casa=disarming; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-23 09:25:54.476, friendly_name= Casa, supported_features=23 @ 2023-10-23T09:30:25.154285+02:00>, new_state=<state alarm_control_panel.casa=disarmed; code_format=number, changed_by=None, code_arm_required=False, message=Tu Alarma está desconectada, response_data=2023-10-23 09:30:31.116, friendly_name= Casa, supported_features=23 @ 2023-10-23T09:30:35.614502+02:00>>
guerrerotook commented 10 months ago

Thanks for the logs, let me reply to your three blocks of logs that you shared.

for "Arm Home" operation without code ❌

As you can see in the logs you started the operation and after 5 seconds the status of the operation changed from WAIT to OK and the message is Tu Alarma está desconectada. This is something that sometimes happens that you arm your alarm but at the end it doesn't arm itself. This is a behavior where there is nothing I can do, because if the server reply back to me that the operation for arming is ok and the final status is you alarm is not arm, what else I can do?

for "Arm Home" operation with code ❌

In this second operation, the issue was that you left you Home Puerta Entrada open, as it says in the string Detector de acceso con tecnología Shocksensor >> Home Puerta Entrada

I have code to check for errors but because for every user the message is different sometimes the code doesn't handle well those messages, but I have code to show a notification in Home Assistant with that message that you left one door open.

So in summary, there is nothing I can do when you arm but Securitas Direct reply back with OK and you alarm is disarmed even you request arming your alarm. FYI that also happens to me in my alarm and then after a couple of minutes the alarm, in the next background update, suddenly changes to arm. I know that because I sent a notification to my mobile phone anytime the alarm changes status. So, this is, unfortunately, an expected behavior that sometime happens.

Ginxo commented 10 months ago

man!!! that was my fear here (with the remaining open door).... you clarified it me a lot and I can setup my HA to show a message saying something "close your fug door motherfer!!! before arming the alarm", probably it will be something about HA script and mod card for this, but at least I have the clue to adapt my HA to this specific case. Many thanks!! it is now time to tweak it here and there to produce exactly what I want. Many thanks!!!

guerrerotook commented 10 months ago

Yes, The core for showing the alert is there but sometimes if fails, I'm going to use your logs to also trying to parse correctly the json, because for you it fails.

Ginxo commented 10 months ago

I produced to different scripts

One to arm

alias: Alarma - Armar
sequence:
  - device_id: 9c4077602677886ecec0be93bb7aa440
    domain: alarm_control_panel
    entity_id: 46ad8fe0674080c3bf5c7b0a4461e4f9
    type: arm_away
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - choose:
      - conditions:
          - condition: state
            entity_id: alarm_control_panel.casa
            state: armed_away
        sequence:
          - device_id: ba702e4c1e3adc921b2edb4ad1a75926
            domain: mobile_app
            type: notify
            message: La alarma se ha conectado.
            title: Casa. Alarma.
      - conditions:
          - condition: not
            conditions:
              - condition: state
                entity_id: alarm_control_panel.casa
                state: armed_away
        sequence:
          - device_id: ba702e4c1e3adc921b2edb4ad1a75926
            domain: mobile_app
            type: notify
            message: >-
              La alarma no se ha podido conectar, te has dejado alguna puerta o
              sensor abiertos?
            title: Casa. Alarma. Atención.
mode: single
icon: mdi:shield-home

one to disarm

alias: Alarma - Desarmar
sequence:
  - device_id: 9c4077602677886ecec0be93bb7aa440
    domain: alarm_control_panel
    entity_id: 46ad8fe0674080c3bf5c7b0a4461e4f9
    type: disarm
    code: "XXXXXX"
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - choose:
      - conditions:
          - condition: state
            entity_id: alarm_control_panel.casa
            state: disarmed
        sequence:
          - device_id: ba702e4c1e3adc921b2edb4ad1a75926
            domain: mobile_app
            type: notify
            message: La alarma se ha desconectado.
            title: Casa. Alarma.
      - conditions:
          - condition: not
            conditions:
              - condition: state
                entity_id: alarm_control_panel.casa
                state: disarmed
        sequence:
          - device_id: ba702e4c1e3adc921b2edb4ad1a75926
            domain: mobile_app
            type: notify
            message: La alarma no se ha podido desconectar, revisa los logs.
            title: Casa. Alarma. Error.
mode: single
icon: mdi:shield-home

Dashboard

and the conditional cards to control it... just keypad for security code is pending (but I will share it as soon as a I have it)

type: horizontal-stack
cards:
  - type: conditional
    conditions:
      - entity: alarm_control_panel.casa
        state: disarmed
    card:
      type: custom:mushroom-entity-card
      entity: alarm_control_panel.casa
      icon: mdi:shield-home
      icon_color: red
      hold_action:
        action: none
      double_tap_action:
        action: none
      tap_action:
        action: call-service
        service: script.alarma_armar
        target: {}
      name: Conectar Alarma
  - type: conditional
    conditions:
      - entity: alarm_control_panel.casa
        state: armed_home
      - entity: alarm_control_panel.casa
        state: armed_away
      - entity: alarm_control_panel.casa
        state: armed_night
      - entity: alarm_control_panel.casa
        state: armed_vacation
      - entity: alarm_control_panel.casa
        state: armed_custom_bypass
    card:
      type: custom:mushroom-entity-card
      entity: alarm_control_panel.casa
      icon: mdi:shield-home
      icon_color: green
      hold_action:
        action: none
      double_tap_action:
        action: none
      tap_action:
        action: call-service
        service: script.alarma_desarmar
        target: {}
  - type: conditional
    conditions:
      - entity: alarm_control_panel.casa
        state: arming
    card:
      type: custom:mushroom-entity-card
      entity: alarm_control_panel.casa
      icon: mdi:shield-home
      icon_color: yellow
      hold_action:
        action: none
      double_tap_action:
        action: none
      tap_action:
        action: none
      name: Armando...
  - type: conditional
    conditions:
      - entity: alarm_control_panel.casa
        state: disarming
    card:
      type: custom:mushroom-entity-card
      entity: alarm_control_panel.casa
      icon: mdi:shield-home
      icon_color: yellow
      hold_action:
        action: none
      double_tap_action:
        action: none
      tap_action:
        action: none
      name: Desarmando...