craigjmidwinter / total-connect-client

Python Client for TotalConnect based alarm systems
MIT License
13 stars 14 forks source link

Ability to see myQ device when integrated? #213

Open DrD00der opened 10 months ago

DrD00der commented 10 months ago

Total Connect lets you integrate myQ into your total connect app, but it seems the HA integration doesn't support the garage status/control. Is there way to integrate that so we can regain myQ control in HA if we have it already integrated in our TC system? Thanks!

austinmroczek commented 10 months ago

We need to see what it looks like in TCC. I don't have it to see. Please follow the Troubleshooting instructions and post your results.

DrD00der commented 10 months ago

here ya go. It shows the garage door listed as a device as you'll see below

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.10.3",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.5",
    "docker": true,
    "arch": "aarch64",
    "timezone": "redacted",
    "os_name": "Linux",
    "os_version": "6.1.21-v8",
    "supervisor": "2023.11.0",
    "host_os": "Home Assistant OS 11.1",
    "docker_version": "24.0.6",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {},
  "integration_manifest": {
    "domain": "totalconnect",
    "name": "Total Connect",
    "codeowners": [
      "@austinmroczek"
    ],
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/totalconnect",
    "iot_class": "cloud_polling",
    "loggers": [
      "total_connect_client"
    ],
    "requirements": [
      "total-connect-client==2023.2"
    ],
    "is_built_in": true
  },
  "data": {
    "client": {
      "auto_bypass_low_battery": false,
      "module_flags": {
        "Security": "1",
        "Video": "1",
        "Automation": "1",
        "GPS": "1",
        "VideoPIR": "1",
        "ReadState": "1",
        "IsAlexaEnabled": "1",
        "SPAEnabled": "0",
        "ShowPrivacyLink": "0"
      },
      "retry_delay": 6,
      "invalid_credentials": false
    },
    "user": {
      "master": true,
      "user_admin": true,
      "config_admin": true,
      "security_problem": true,
      "features": {
        "Master": "1",
        "User Administration": "1",
        "Configuration Administration": "1"
      }
    },
    "locations": [
      {
        "location_id": 2352644,
        "name": "REDACTED",
        "module_flags": {
          "Security": "1",
          "Video": "0",
          "Automation": "1",
          "GPS": "0",
          "VideoPIR": "1",
          "TimeTriggeredEvent": "1",
          "TemperatureUnits": "F",
          "ConfigureContent": "1",
          "SyncLocation": "0",
          "ConfigureSlideshow": "0",
          "TimezoneOffset": "-7.0",
          "SmartAction": "1",
          "CustomArm": "0",
          "NoTriggerScene": "1",
          "NoScene": "1",
          "AutoSyncEnabled": "1",
          "WiFIThermostatEnabled": "1",
          "SupportsOnlyHDPhotos": "1",
          "SyncStatusSupported": "1",
          "WiFiHBSupported": "1",
          "DoorBellSupported": "1",
          "masterUserCodeSync": "0",
          "GeofenceStatus": "2",
          "RSISupported": "0",
          "VideoServiceEnabled": "0",
          "HasAddressUpdated": "1",
          "WifiGaragedoorSupported": "1",
          "OutboundServiceEnabled": "0",
          "HasSmartScenes": "1",
          "MotionViewerServiceEnabled": "0",
          "VavEnabled": "0",
          "UserManagementDisabled": "0",
          "HomeCardUpdatedTimestamp": "4/30/2021 2:00:45 PM",
          "CameraPartitionFTUE": "False",
          "PostalCodeType": "NA",
          "IsGoogleHomeSupported": "False",
          "SmsCarrierEnabled": "True",
          "IsEMEALocation": "0",
          "EdimaxServiceDisabled": "True",
          "UnicornSupported": "0",
          "IsManageDevicesSupported": "True",
          "IsAlexaSupported": "False",
          "MonitoringType": "-1"
        },
        "security_device_id": 4658223,
        "ac_loss": false,
        "low_battery": false,
        "auto_bypass_low_battery": false,
        "cover_tampered": false,
        "arming_state": {
          "__type": "<enum 'ArmingState'>",
          "repr": "<ArmingState.DISARMED: 10200>"
        },
        "devices": [
          {
            "device_id": 4658223,
            "name": "Security System",
            "class_id": 1,
            "serial_number": "**REDACTED**",
            "security_panel_type_id": null,
            "serial_text": null,
            "flags": {
              "PromptForUserCode": "0",
              "PromptForInstallerCode": "0",
              "PromptForImportSecuritySettings": "0",
              "AllowUserSlotEditing": "0",
              "CalCapable": "1",
              "CanBeSentToPanel": "1",
              "CanArmNightStay": "0",
              "CanSupportMultiPartition": "0",
              "PartitionCount": "0",
              "MaxPartitionCount": "0",
              "OnBoardingSupport": "0",
              "PartitionAdded": "0",
              "DuplicateUserSyncStatus": "0",
              "PanelType": "10",
              "PanelVariant": "1",
              "BLEDisarmCapable": "0",
              "ArmHomeSupported": "0",
              "DuplicateUserCodeCheck": "1",
              "CanSupportRapid": "0",
              "IsKeypadSupported": "1",
              "WifiEnrollmentSupported": "1",
              "IsConnectedPanel": "0",
              "ArmNightInSceneSupported": "0",
              "BuiltInCameraSettingsSupported": "1",
              "ZWaveThermostatScheduleDisabled": "0",
              "MultipleAuthorityLevelSupported": "0",
              "VideoOnPanelSupported": "0",
              "EnableBLEMode": "0",
              "IsPanelWiFiResetSupported": "0",
              "IsCompetitorClearBypass": "0",
              "IsNotReadyStateSupported": "0",
              "isArmStatusWithoutExitDelayNotSupported": "0",
              "UserCodeLength": "4",
              "UserCodeLengthChanged": "0",
              "DoubleDisarmRequired": "0",
              "TMSCloudSupported": "0",
              "IsAVCEnabled": "0"
            }
          },
          {
            "device_id": 6420201,
            "name": "Automation",
            "class_id": 3,
            "serial_number": "**REDACTED**",
            "security_panel_type_id": null,
            "serial_text": null,
            "flags": {}
          },
          {
            "device_id": 449890,
            "name": "Garage Door",
            "class_id": 303,
            "serial_number": "**REDACTED**",
            "security_panel_type_id": null,
            "serial_text": null,
            "flags": {
              "PrerequisiteDeviceID": "6420201",
              "PrerequisiteDeviceClassID": "3"
            }
          },
          {
            "device_id": 4658224,
            "name": "Built-In Camera",
            "class_id": 6,
            "serial_number": "**REDACTED**",
            "security_panel_type_id": null,
            "serial_text": null,
            "flags": {}
          },
          {
            "device_id": 6420202,
            "name": "Video DoorBell",
            "class_id": 7,
            "serial_number": "**REDACTED**",
            "security_panel_type_id": null,
            "serial_text": null,
            "flags": {}
          }
        ],
        "partitions": [
          {
            "partition_id": 1,
            "name": null,
            "is_stay_armed": false,
            "is_fire_enabled": false,
            "is_common_enabled": false,
            "is_locked": false,
            "is_new_partition": false,
            "is_night_stay_enabled": -1,
            "exit_delay_timer": 0
          }
        ],
        "zones": [
          {
            "zone_id": 3,
            "description": "Front Door",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.ENTRY_EXIT1: 1>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 4,
            "description": "Back Door",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.ENTRY_EXIT1: 1>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 5,
            "description": "Backdoor window Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 6,
            "description": "Bedrom patio Door",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.ENTRY_EXIT1: 1>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 7,
            "description": "Master Back Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 8,
            "description": "Master window Front Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 9,
            "description": "Master bath Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 10,
            "description": "Patio Tv room Door",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.ENTRY_EXIT1: 1>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 11,
            "description": "Guest Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 12,
            "description": "Guet bathroom Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 13,
            "description": "Guest front East facing Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 14,
            "description": "Guest front South Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 15,
            "description": "Kitchen front Right Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 16,
            "description": "Kitchen front Left Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 17,
            "description": "Kitchen Sink Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 18,
            "description": "Dining Room Left Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 19,
            "description": "Dining Room Right Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 20,
            "description": "Living Room Left Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 21,
            "description": "Living Room Right Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 22,
            "description": "Hallway bathroom Window",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 23,
            "description": "Kitchen Glass Break",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 24,
            "description": "Living Room Glass Break",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.PERIMETER: 3>"
            },
            "can_be_bypassed": 1,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 280,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 281,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 282,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 283,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 284,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 285,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 286,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 287,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 288,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 289,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 290,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 291,
            "description": "Temperature",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.MONITOR: 12>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 850,
            "description": "Back door Keypad",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.LYRIC_KEYPAD: 50>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 995,
            "description": "Fire",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.FIRE_SMOKE: 9>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 998,
            "description": "Local Alarm",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.LYRIC_LOCAL_ALARM: 89>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          },
          {
            "zone_id": 999,
            "description": "Police",
            "partition": 1,
            "status": 0,
            "zone_type_id": {
              "__type": "<enum 'ZoneType'>",
              "repr": "<ZoneType.SILENT_24HR: 6>"
            },
            "can_be_bypassed": 0,
            "battery_level": -1,
            "signal_strength": -1,
            "sensor_serial_number": null,
            "loop_number": null,
            "response_type": null,
            "alarm_report_state": null,
            "supervision_type": null,
            "chime_state": null,
            "device_type": null
          }
        ]
      }
    ]
  }
}
austinmroczek commented 10 months ago

Do you know what the "Automation" device (6420201) is ? In the Garage Door section it says it is a "prerequisite device". Not sure what that means.

Since I don't have a Chamberlain garage door, can you describe the functions available in the TotalConnect 2.0 app and/or website ? And please use the wording the app uses, as that may help give some clues.

Can you see the status of the door (up/down)? Can you see status of the safety sensor (IR beam across opening of the garage door)? Can you open/close the door?

The trick is finding a likely API call from the list at https://rs.alarmnet.com/TC21api/tc2.asmx. There is nothing jumping out at me. "garage" is not found on the page. "door" is only found as part of "doorbell". We might be able to try "AutomationDevice".

austinmroczek commented 10 months ago

We played around with AutomationDevice a little bit in the past.

total_connect_client/live/zwave.py tries to call a few API calls. We thought it might have been Z-wave stuff but were not successful in getting anything to work. Maybe it's for garage doors ?

If you could run that script and post any results here that might help.

DrD00der commented 10 months ago

In the TC app/website, it lists the garage door under devices and let's you open/close and shows current open/close status. Will see later if I'm able to run that script. The Lyric controller which integrates to TC does support z-wave devices and works as an automation hub. I'm guessing that's what is calling in that script but maybe we'll get lucky and they integrate garage in there too. I don't believe however, that garage door integrates into TC for automations, just for basic control.

IMG_C3DB81483826-1

DrD00der commented 10 months ago

Where would I call the zwave script? Been trying to figure it out but haven't done that before and not seeing an obvious way to do it.

dulitz commented 10 months ago

See this alarmgrid page which shows how to set this up. It is definitely an "automation." My TotalConnect 2.0 is not enabled for automations (yet -- I have requested it) so I can't attach the garage door controller.

As a total guess, ControlASwitch would be the SOAP operation that I'd investigate first.

Probably the easiest way to see some of the parameters being sent would be to bring up the TotalConnect website in Chrome and use the Chrome inspector to look at the network traffic that occurs when you open and close the garage door. You should see the deviceid of your garage door used somehow.

I don't think the website uses the SOAP endpoint, but my guess is that the parameter values needed by ControlASwitch or ControlALock should be visible on the endpoint that the website does use.

austinmroczek commented 10 months ago

Where would I call the zwave script? Been trying to figure it out but haven't done that before and not seeing an obvious way to do it.

Unfortunately there is no way to call this script from within the Total Connect integration in Home Assistant. You can do it from any computer that has Python 3.7+ using a command line.

pip install total_connect_client
python -m total_connect_client.live.zwave username password AutomationDeviceID DeviceID DeviceTypeID LocationID

AutomationDeviceID, DeviceID, DeviceTypeID, and LocationID are from your previous post above.

DrD00der commented 10 months ago

Well I'm close to being to run this. Getting a python error and very out of my knowledge base.
I ran: python -m total_connect_client.live.zwave username password 6420201 449890 6420201 2352644 and I get the following output/error:

Traceback (most recent call last):
  File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/username/.local/lib/python3.9/site-packages/total_connect_client/live/zwave.py", line 27, in <module>
    result = TC.request(f"GetAutomationDeviceStatus(self.token, {AUTOMATION_DEVICE})")
TypeError: request() missing 1 required positional argument: 'args'
austinmroczek commented 10 months ago

Sorry it seems I forgot to update that code before I pointed you to it. I just pushed an update to fix it.

Please do pip install --upgrade total_connect_client and then try again

DrD00der commented 10 months ago

Script runs now, but I think I don't have the right settings on my alarm side for it to work. While I have the garage integrated to TC, I don't have the automations integration:

('unknown result code -12104', OrderedDict([('ResultCode', -12104), ('ResultData', 'Automation - We are unable to load your automation devices, please try again or contact your security dealer for support'), ('AutomationData', None)]))

Not sure it will work on my end unless I upgrade my security system to include the automations.

dulitz commented 10 months ago

How did you integrate it to TC without the automations integration being active on your account?

If the automations integration isn't active, do you still have the automations tab in the app?

On Fri, Nov 17, 2023 at 6:58 AM Doctor @.***> wrote:

Script runs now, but I think I don't have the right settings on my alarm side for it to work. While I have the garage integrated to TC, I don't have the automations integration:

('unknown result code -12104', OrderedDict([('ResultCode', -12104), ('ResultData', 'Automation - We are unable to load your automation devices, please try again or contact your security dealer for support'), ('AutomationData', None)]))

Not sure it will work on my end unless I upgrade my security system to include the automations.

— Reply to this email directly, view it on GitHub https://github.com/craigjmidwinter/total-connect-client/issues/213#issuecomment-1816578039, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVWYJJI4USZ7VAVMYHA5ADYE53RXAVCNFSM6AAAAAA7IKKKLGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJWGU3TQMBTHE . You are receiving this because you commented.Message ID: @.***>

austinmroczek commented 10 months ago

And to be clear, upgrading your account may still not make this work. The script runs a few random API calls that seem relevant but we really don't know what they are for because the API docs are so bad.

DrD00der commented 10 months ago

How did you integrate it to TC without the automations integration being active on your account? If the automations integration isn't active, do you still have the automations tab in the app?

I have it set up as a "device" instead of an automation (see my screenshot a few posts above). It lets you control it in the TC app but doesn't let you set up automations. I'd have to upgrade my TC account to another tier to get automations.

dulitz commented 10 months ago

That is awesome. Can you describe or link to the procedure for doing so? I could try that. Instructions I have found show use of the automations tab.

On Sat, Nov 18, 2023, 07:45 Doctor @.***> wrote:

How did you integrate it to TC without the automations integration being active on your account? If the automations integration isn't active, do you still have the automations tab in the app?

I have it set up as a "device" instead of an automation (see my screenshot a few posts above). It lets you control it in the TC app but doesn't let you set up automations. I'd have to upgrade my TC account to another tier to get automations.

— Reply to this email directly, view it on GitHub https://github.com/craigjmidwinter/total-connect-client/issues/213#issuecomment-1817541764, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVWYJKAV623RD3JDG27SO3YFDJZ3AVCNFSM6AAAAAA7IKKKLGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJXGU2DCNZWGQ . You are receiving this because you commented.Message ID: @.***>

DrD00der commented 10 months ago

I simply emailed my alarm company and asked them to add the MyQ integration to my TC app. I just requested they add the automation section as well so I'll see if that adds anything useful. I think my plan actually does allow automations after reviewing it.

austinmroczek commented 10 months ago

@DrD00der I pushed a new script that significantly expands on the one I asked you to run. Please do the following:

pip install --upgrade total_connect_client
python -m total_connect_client.live.experimental username password

@dulitz if you could run it too, may be good to see differences

DrD00der commented 10 months ago

I can that script, but holy moly did it give a long output! Any particular section you want me to report back on?

DrD00der commented 10 months ago

I see two outputs with reference to garage door:

Message: 'HTTP Response from %s (status: %d):\n%s'
Arguments: ('https://rs.alarmnet.com/TC21api/tc2.asmx', 200, '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><LoginAndGetSessionDetailsResponse xmlns="https://services.alarmnet.com/TC2/"><LoginAndGetSessionDetailsResult><ResultCode>0</ResultCode><ResultData>Success</ResultData><ModuleFlags>Security=1,Video=1,Automation=1,GPS=1,VideoPIR=1,ReadState=1,IsAlexaEnabled=1,SPAEnabled=0,ShowPrivacyLink=0</ModuleFlags><SessionID>3E93D8BD-1512-4EFA-B162-FC19CC80E799</SessionID><PrivacyStatementUrl>https://www.resideo.com/us/en/corporate/legal/eula/english-us/#_PRIVACY_RESIDEO</PrivacyStatementUrl><UserInfo><UserID>6481322</UserID><Username>reidwings@gmail.com</Username><Fullname>Reid Wainess</Fullname><Language>0</Language><LocaleID>0</LocaleID><UserFeatureList>Master=1,User Administration=1,Configuration Administration=1</UserFeatureList><ClientPreferences /><IsEulaAccepted>true</IsEulaAccepted><IsSMSEulaAccepted>false</IsSMSEulaAccepted><DateFormatID>1</DateFormatID><TimeFormatID>0</TimeFormatID><PushNotificationStatus>2</PushNotificationStatus><HasResetPassword>true</HasResetPassword><IsRootedDeviceAccepted>false</IsRootedDeviceAccepted><IsLocalyticsEnabled>0</IsLocalyticsEnabled><IsAppStoreLogEnabled>0</IsAppStoreLogEnabled><IsMarketingOptionEnabled>0</IsMarketingOptionEnabled><IsMarketingDefaultValue>0</IsMarketingDefaultValue><IsMonitoringDefaultValue>-1</IsMonitoringDefaultValue><IsOtpSupported>1</IsOtpSupported><IsOtpEnabled>0</IsOtpEnabled></UserInfo><Locations><LocationInfoBasic><LocationID>2352644</LocationID><LocationName>Reid Wainess</LocationName><PhotoURL /><LocationModuleFlags>Security=1,Video=0,Automation=1,GPS=0,VideoPIR=1,TimeTriggeredEvent=1,TemperatureUnits=F,ConfigureContent=1,SyncLocation=0,ConfigureSlideshow=0,TimezoneOffset=-8.0,SmartAction=1,CustomArm=0,NoTriggerScene=1,NoScene=1,AutoSyncEnabled=1,WiFIThermostatEnabled=1,SupportsOnlyHDPhotos=1,SyncStatusSupported=1,WiFiHBSupported=1,DoorBellSupported=1,masterUserCodeSync=0,GeofenceStatus=2,RSISupported=0,VideoServiceEnabled=0,HasAddressUpdated=1,WifiGaragedoorSupported=1,OutboundServiceEnabled=0,HasSmartScenes=1,MotionViewerServiceEnabled=0,VavEnabled=0,UserManagementDisabled=0,HomeCardUpdatedTimestamp=4/30/2021 2:00:45 PM,CameraPartitionFTUE=False,PostalCodeType=NA,IsGoogleHomeSupported=False,SmsCarrierEnabled=True,IsEMEALocation=0,EdimaxServiceDisabled=True,UnicornSupported=0,IsManageDevicesSupported=True,IsAlexaSupported=False,MonitoringType=-1</LocationModuleFlags><SecurityDeviceID>4658223</SecurityDeviceID><DeviceList><DeviceInfoBasic><DeviceID>4658223</DeviceID><DeviceName>Security System</DeviceName><DeviceClassID>1</DeviceClassID><DeviceSerialNumber>00D02DA0A445</DeviceSerialNumber><DeviceFlags>PromptForUserCode=0,PromptForInstallerCode=0,PromptForImportSecuritySettings=0,AllowUserSlotEditing=0,CalCapable=1,CanBeSentToPanel=1,CanArmNightStay=0,CanSupportMultiPartition=0,PartitionCount=0,MaxPartitionCount=0,OnBoardingSupport=0,PartitionAdded=0,DuplicateUserSyncStatus=0,PanelType=10,PanelVariant=1,BLEDisarmCapable=0,ArmHomeSupported=0,DuplicateUserCodeCheck=1,CanSupportRapid=0,IsKeypadSupported=1,WifiEnrollmentSupported=1,IsConnectedPanel=0,ArmNightInSceneSupported=0,BuiltInCameraSettingsSupported=1,ZWaveThermostatScheduleDisabled=0,MultipleAuthorityLevelSupported=0,VideoOnPanelSupported=0,EnableBLEMode=0,IsPanelWiFiResetSupported=0,IsCompetitorClearBypass=0,IsNotReadyStateSupported=0,isArmStatusWithoutExitDelayNotSupported=0,UserCodeLength=4,UserCodeLengthChanged=0,DoubleDisarmRequired=0,TMSCloudSupported=0,IsAVCEnabled=0</DeviceFlags></DeviceInfoBasic><DeviceInfoBasic><DeviceID>6420201</DeviceID><DeviceName>Automation</DeviceName><DeviceClassID>3</DeviceClassID><DeviceSerialNumber>00D02DA0A445</DeviceSerialNumber><DeviceFlags /></DeviceInfoBasic><DeviceInfoBasic><DeviceID>449890</DeviceID><DeviceName>Garage Door</DeviceName><DeviceClassID>303</DeviceClassID><DeviceSerialNumber>-2</DeviceSerialNumber><DeviceFlags>PrerequisiteDeviceID=6420201,PrerequisiteDeviceClassID=3</DeviceFlags></DeviceInfoBasic><DeviceInfoBasic><DeviceID>4658224</DeviceID><DeviceName>Built-In Camera</DeviceName><DeviceClassID>6</DeviceClassID><DeviceSerialNumber>00D02DA0A445</DeviceSerialNumber><DeviceFlags /></DeviceInfoBasic><DeviceInfoBasic><DeviceID>6420202</DeviceID><DeviceName>Video DoorBell</DeviceName><DeviceClassID>7</DeviceClassID><DeviceSerialNumber>BF482AA7237C</DeviceSerialNumber><DeviceFlags /></DeviceInfoBasic></DeviceList><ServiceType>3</ServiceType><CanSupportMultiPartition>0</CanSupportMultiPartition><IsLocationToBeDisplayed>false</IsLocationToBeDisplayed></LocationInfoBasic></Locations><InterfaceSchemaConfigInfo><AppleDownloadURL /><AndroidDownloadURL /><LatestSupportedAppVersion /></InterfaceSchemaConfigInfo></LoginAndGetSessionDetailsResult></LoginAndGetSessionDetailsResponse></soap:Body></soap:Envelope>')

and

Message: 'HTTP Response from %s (status: %d):\n%s'
Arguments: ('https://rs.alarmnet.com/TC21api/tc2.asmx', 200, '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetDeviceStatusResponse xmlns="https://services.alarmnet.com/TC2/"><GetDeviceStatusResult><ResultCode>0</ResultCode><ResultData>Success</ResultData><deviceInfo /></GetDeviceStatusResult></GetDeviceStatusResponse></soap:Body></soap:Envelope>')
OrderedDict([('ResultCode', 0),
             ('ResultData', 'Success'),
             ('deviceInfo', None)])
Device 449890 (Garage Door)
austinmroczek commented 10 months ago

Please send it all.

If you do

python -m total_connect_client.live.experimental username password > info.txt

It will go into a file you can attach here

austinmroczek commented 9 months ago

@DrD00der can I ask for one more run of the script.

I made more updates, so please do:

pip install --upgrade total_connect_client
python -m total_connect_client.live.experimental username password
austinmroczek commented 5 months ago

@DrD00der please let me know if you're able to help with testing this, or if I should close this issue.