jason0x43 / hacs-hubitat

A Hubitat integration for Home Assistant
MIT License
189 stars 46 forks source link

Life360 devices do not update information from Hubitat to HA #241

Closed jiipee-blob closed 6 months ago

jiipee-blob commented 6 months ago

Hi,

I added Hubitat's Life360 devices to show up in HA. Some of the attributes were hidden, so I unhid e.g. address attribute. For some reason, e.g. the address attribute does not update itself when the attribute changes. I have to manually go to Hubitat Integration in HA and select Reload from the integration to update the address information of the Life360 devices. Automatically, this information is not updated for some reason using the integration from Hubitat to HA. Is this a bug or what could it be?

jiipee-blob commented 6 months ago

And just to add, the problem is in no way related to the ongoing Life360 problem, from which Facebook e.g. buzzing.

jason0x43 commented 6 months ago

Hmmm...good question, I don't think I've ever tried Hubitat's Life360 integration (although I've used HA's). I'll try it out and see if I can reproduce the issue.

jason0x43 commented 6 months ago

Hmm...I can't seem to login to Life360 outside of the app at all, so I can't directly test this.

Can you enable debug logging for the integration and record an address change event? And see if any errors show up in the HA log when the Life360 device is updating?

jiipee-blob commented 6 months ago

Sure. I'll get back to you. Just to make sure. I have to add those logger lines to configuration.yaml and then I will automatically get log lines when Life360 sensor tries to change address or other attribute or do I need to "record" an event someway differently? After adding that logger section to conf.yaml I'm able to see for example few custom_components.hubitat.hubitatmaker.hub lines there so it should be ok right. I'm leaving in a few hours so those address changes should show up..?

jiipee-blob commented 6 months ago

Now that I tested it.. There is nothing moving between Hubitat life 360 devices and HA. It seems like none of the attribute changes are something that HA will receive.

jiipee-blob commented 6 months ago

And probably for that reason there is no log events either?

jason0x43 commented 6 months ago

Hmmm... So, you were able to add the Life360 device(s) to the Maker API in Hubitat? If so, what do you get if you retrieve the capabilities of those devices?

jiipee-blob commented 6 months ago

Hmmm... So, you were able to add the Life360 device(s) to the Maker API in Hubitat? If so, what do you get if you retrieve the capabilities of those devices?

Here's what I get:

{
    "id": "1818",
    "name": "Life360 - Jiii",
    "label": "Life360 - Jiii",
    "type": "Life360+ Driver",
    "room": null,
    "attributes": [
        {
            "name": "charge",
            "currentValue": "false",
            "dataType": "ENUM",
            "values": [
                "true",
                "false"
            ]
        },
        {
            "name": "shareLocation",
            "currentValue": "1",
            "dataType": "STRING"
        },
        {
            "name": "powerSource",
            "currentValue": "BTRY",
            "dataType": "ENUM",
            "values": [
                "battery",
                "dc",
                "mains",
                "unknown"
            ]
        },
        {
            "name": "inTransit",
            "currentValue": "false",
            "dataType": "ENUM",
            "values": [
                "true",
                "false"
            ]
        },
        {
            "name": "battery",
            "currentValue": 100,
            "dataType": "NUMBER"
        },
        {
            "name": "speed",
            "currentValue": 0.0,
            "dataType": "NUMBER"
        },
        {
            "name": "switch",
            "currentValue": "on",
            "dataType": "ENUM",
            "values": [
                "on",
                "off"
            ]
        },
        {
            "name": "address1prev",
            "currentValue": "XXXXXXXXXXXXXXXX",
            "dataType": "STRING"
        },
        {
            "name": "html",
            "currentValue": null,
            "dataType": "STRING"
        },
        {
            "name": "contact",
            "currentValue": "closed",
            "dataType": "ENUM",
            "values": [
                "closed",
                "open"
            ]
        },
        {
            "name": "status",
            "currentValue": "At Home",
            "dataType": "STRING"
        },
        {
            "name": "since",
            "currentValue": 1704620170,
            "dataType": "NUMBER"
        },
        {
            "name": "wifiState",
            "currentValue": "true",
            "dataType": "ENUM",
            "values": [
                "true",
                "false"
            ]
        },
        {
            "name": "battery",
            "currentValue": 100,
            "dataType": "NUMBER"
        },
        {
            "name": "acceleration",
            "currentValue": "inactive",
            "dataType": "STRING"
        },
        {
            "name": "address1",
            "currentValue": "Home",
            "dataType": "STRING"
        },
        {
            "name": "acceleration",
            "currentValue": "inactive",
            "dataType": "ENUM",
            "values": [
                "inactive",
                "active"
            ]
        },
        {
            "name": "distance",
            "currentValue": 0.01,
            "dataType": "NUMBER"
        },
        {
            "name": "savedPlaces",
            "currentValue": "{\"XXX\":\"6XXXX;XXXX1;XXX.4\",\"Koti\":\"XXXX005;XXXXX50.2\",\"Koulu\":\"XXX1;XXX0C9;XXX1.2\"}",
            "dataType": "STRING"
        },
        {
            "name": "phone",
            "currentValue": "XXXXXXXXX",
            "dataType": "STRING"
        },
        {
            "name": "memberName",
            "currentValue": "XXXXXXXXX",
            "dataType": "STRING"
        },
        {
            "name": "email",
            "currentValue": "XXXXXXXXXXX",
            "dataType": "STRING"
        },
        {
            "name": "isDriving",
            "currentValue": "false",
            "dataType": "ENUM",
            "values": [
                "true",
                "false"
            ]
        },
        {
            "name": "accuracy",
            "currentValue": 50,
            "dataType": "NUMBER"
        },
        {
            "name": "longitude",
            "currentValue": XXXXXXXXX,
            "dataType": "NUMBER"
        },
        {
            "name": "lastUpdated",
            "currentValue": "Mon Jan 08 06:58:00 EET 2024",
            "dataType": "DATE"
        },
        {
            "name": "presence",
            "currentValue": "present",
            "dataType": "ENUM",
            "values": [
                "present",
                "not present"
            ]
        },
        {
            "name": "avatarHtml",
            "currentValue": null,
            "dataType": "STRING"
        },
        {
            "name": "switch",
            "currentValue": "on",
            "dataType": "STRING"
        },
        {
            "name": "avatar",
            "currentValue": "https://www.life360.com/img/user_images/XXXXXXXXXXXXXXXXXXXX",
            "dataType": "STRING"
        },
        {
            "name": "latitude",
            "currentValue": XXXXXXXXXXX,
            "dataType": "NUMBER"
        },
        {
            "name": "contact",
            "currentValue": "closed",
            "dataType": "STRING"
        }
    ],
    "capabilities": [
        "Actuator",
        "PowerSource",
        {
            "attributes": [
                {
                    "name": "powerSource",
                    "dataType": null
                }
            ]
        },
        "Refresh",
        "Battery",
        {
            "attributes": [
                {
                    "name": "battery",
                    "dataType": null
                }
            ]
        },
        "ContactSensor",
        {
            "attributes": [
                {
                    "name": "contact",
                    "dataType": null
                }
            ]
        },
        "AccelerationSensor",
        {
            "attributes": [
                {
                    "name": "acceleration",
                    "dataType": null
                }
            ]
        },
        "Switch",
        {
            "attributes": [
                {
                    "name": "switch",
                    "dataType": null
                }
            ]
        },
        "Sensor",
        "PresenceSensor",
        {
            "attributes": [
                {
                    "name": "presence",
                    "dataType": null
                }
            ]
        }
    ],
    "commands": [
        "arrived",
        "departed",
        "historyClearData",
        "off",
        "on",
        "refresh",
        "refreshCirclePush",
        "sendHistory",
        "sendTheMap"
    ]
}

I did those XXXX for the private information so don't worry about that. All attributes seems to be there but they just do not update the same way like other devices exposed from hubitat to ha. For example door open/close sensor reports changes immediately. All attributes under life360 devices needs to force update manually for some reason.

jiipee-blob commented 6 months ago

And... updated the latest Hubitat integration via HACS and that fixed it. Not sure what you did or what happened but now these attributes are updating the way the should. Thanks!!

jason0x43 commented 6 months ago

Do you see any events in the device’s Events tab in Hubitat? (At the top of the device view.) If so, do you see corresponding event messages in the Home Assistant log? (The home-assistant.log file)

jiipee-blob commented 6 months ago

Latest update did something.. Its working.