eufy_security icon indicating copy to clipboard operation
eufy_security copied to clipboard

Doorbell Dual Package Detection

Open ejpenney opened this issue 2 years ago • 2 comments

Eufy Doorbell dual supports package detection but no sensor for this exists in the Eufy Security component.

It would be really cool if we had a binary sensor that turned on when a package was detected.

I've been trying to use IFTTT to capture Android Package notifications and send web requests, but that's been unreliable, to say the least.

Glancing through eufy-security-client it looks like some support for turning on and off package guard has been added. I'm not seeing anything related to package detection, but I'm just searching the source for the word "package".

ejpenney avatar Jul 27 '22 20:07 ejpenney

You should be able to see the whole device attributes under entity state attributes. Can you confirm if any attribute changes when you drop a package after camera detection.

After your validation, i can expose the state attribute as a binary sensor.

fuatakgun avatar Jul 27 '22 21:07 fuatakgun

I'm not seeing anything but I'm not sure I'm looking in the right place? Do you mean the primary entity? In my case, alarm_cotrol_panel.doorbell? If so, I'm not seeing anything but package detection is unreliable. I'll play and update if anything pops up.

I just realized I mixed up my two tickets as well. I've asked upstream if this is supported here I've updated my link for the other question

In the meantime, let's see what bropat says...

ejpenney avatar Jul 27 '22 21:07 ejpenney

He marked this completed with the 1.0.0 release, but I've noticed just pulling the 1.0.0 container isn't enough to enable this. I'm not seeing anything related to packages in the main device's attributes. Haven't tried with 1.0.1 or 1.0.2.

Sounds like there are other compatibility issues on this side of the fence that need to be worked on, correct?

ejpenney avatar Nov 10 '22 23:11 ejpenney

This is the ticket I meant it for:

How's this work? I'm running add-on 1.3.0 and component 2.10.0 and don't see the package status. Is there supposed to be a binary_sensor, or should I look for an event?

ejpenney avatar Dec 28 '22 17:12 ejpenney

You need to move into alpha release and share your debug sensor attributes for device so i can take a look at fields.

Furthermore, you can share the device with me following readme file and i can debug it.

fuatakgun avatar Dec 28 '22 18:12 fuatakgun

delivered in ALPHA version (v5.x.x)

fuatakgun avatar Dec 29 '22 23:12 fuatakgun

Hi,

Installed 6.0..0 the other day, great work, streams are more reliable and the binary_sensors for motion/person detection are super snappy.

I assume you mean this data from binary_sensor.doorbell_debug_device:

properties:
  name: Doorbell
  model: T8203
  serialNumber: T8203P1122020012
  hardwareVersion: P1
  softwareVersion: 2.0.6.6
  type: 93
  stationSerialNumber: T8203P1122020012
  wifiRssi: -39
  wifiSignalLevel: 4
  enabled: true
  autoNightvision: true
  statusLed: true
  motionDetection: true
  motionDetectionType: 0
  motionDetectionSensitivity: 4
  motionDetected: false
  personDetected: false
  personName: ''
  watermark: 1
  pictureUrl: REDACTED
  state: 1
  ringing: false
  speakerVolume: 80
  ringtoneVolume: 80
  audioRecording: true
  videoStreamingQuality: 1
  videoWdr: true
  notificationType: 2
  notificationRing: true
  notificationMotion: true
  deliveryGuard: true
  deliveryGuardPackageGuarding: false
  deliveryGuardPackageGuardingVoiceResponseVoice: 1
  deliveryGuardPackageGuardingActivatedTimeFrom: '00:00'
  deliveryGuardPackageGuardingActivatedTimeTo: '23:59'
  deliveryGuardUncollectedPackageAlert: false
  deliveryGuardUncollectedPackageAlertTimeToCheck: '20:00'
  deliveryGuardPackageLiveCheckAssistance: true
  dualCamWatchViewMode: 12
  ringAutoResponse: true
  ringAutoResponseVoiceResponse: true
  ringAutoResponseVoiceResponseVoice: 1100476313
  ringAutoResponseTimeFrom: '00:00'
  ringAutoResponseTimeTo: '23:59'
  packageDelivered: false
  snooze: false
  snoozeTime: 0
  snoozeStartTime: 0
  snoozeHomebase: false
  snoozeMotion: false
  snoozeChime: false
  packageTaken: false

ejpenney avatar Jan 05 '23 15:01 ejpenney

do you have any missing sensor that you would like to have?

fuatakgun avatar Jan 05 '23 16:01 fuatakgun

Yes, I would like a sensor indicating a package is currently detected.

ejpenney avatar Jan 05 '23 16:01 ejpenney

don't you have already packageDelivered sensor?

fuatakgun avatar Jan 05 '23 16:01 fuatakgun

Or, anything you see in your device state, I can expose it as a sensor :) please check what you have and what not and ask from that list

fuatakgun avatar Jan 05 '23 16:01 fuatakgun

Well, I did... I just setup a template sensor to read from the debug sensor, as an experiment. Was fooling around trying to get the sensor to trip, unsuccessfully, seems like it's not updating? Anyways, I updated to 6.1.0 and the packageDelivered property disappeared.

properties:
  name: Doorbell
  model: T8203
  serialNumber: T8203P1122020012
  hardwareVersion: P1
  softwareVersion: 2.0.6.6
  type: 93
  stationSerialNumber: T8203P1122020012
  wifiRssi: -39
  wifiSignalLevel: 4
  enabled: true
  autoNightvision: true
  statusLed: true
  motionDetection: true
  motionDetectionType: 0
  motionDetectionSensitivity: 4
  motionDetected: false
  personDetected: false
  personName: ''
  watermark: 1
  pictureUrl: REDACTED
  state: 1
  ringing: false
  speakerVolume: 80
  ringtoneVolume: 80
  audioRecording: true
  videoStreamingQuality: 1
  videoWdr: true
  notificationType: 2
  notificationRing: true
  notificationMotion: true
  deliveryGuard: true
  deliveryGuardPackageGuarding: true
  deliveryGuardPackageGuardingVoiceResponseVoice: 1
  deliveryGuardPackageGuardingActivatedTimeFrom: '00:00'
  deliveryGuardPackageGuardingActivatedTimeTo: '23:59'
  deliveryGuardUncollectedPackageAlert: true
  deliveryGuardUncollectedPackageAlertTimeToCheck: '20:00'
  deliveryGuardPackageLiveCheckAssistance: true
  dualCamWatchViewMode: 12
  ringAutoResponse: false
  ringAutoResponseVoiceResponse: false
  ringAutoResponseVoiceResponseVoice: 1100476313
  ringAutoResponseTimeFrom: '00:00'
  ringAutoResponseTimeTo: '23:59'
  snooze: false
  snoozeTime: 0
  snoozeStartTime: 0
  snoozeHomebase: false
  snoozeMotion: false
  snoozeChime: false

ejpenney avatar Jan 05 '23 16:01 ejpenney

I just reverted to 6.0.0 and the packageDelivered property came back.

ejpenney avatar Jan 05 '23 17:01 ejpenney

I don't think this is related to 6.0 vs 6.1. I can't get packageDelivered to switch to True, I tried laying down a package, got a notification in the Eufy app that a package had been delivered, but the property remained False. I restarted the Add-On and no change, I reload the integration and it requires a reboot. When I rebooted the property disappeared again. So it seems the property comes and goes.

ejpenney avatar Jan 05 '23 17:01 ejpenney

I've enabled debug logging. I don't have any more time to experiment right now, but I'll poke at it again a little more later.

ejpenney avatar Jan 05 '23 17:01 ejpenney

Not seeing anything in the System Log with debug enabled but I saw this in the Add-On log:

2023-01-05 22:41:05.494  ERROR Invalid Property packageDelivered error 
 InvalidPropertyError  Property packageDelivered invalid
error stack:
• device.ts:568 getPropertyMetadata
    node_modules/eufy-security-client/src/http/device.ts:568:15
• device.ts:76 updateProperty
    node_modules/eufy-security-client/src/http/device.ts:76:48
• device.ts:1956 processPushNotification
    node_modules/eufy-security-client/src/http/device.ts:1956:34
• eufysecurity.ts:978 <anonymous>
    node_modules/eufy-security-client/src/eufysecurity.ts:978:32
• eufysecurity.ts:976 <anonymous>
    node_modules/eufy-security-client/src/eufysecurity.ts:976:25
• task_queues:96 processTicksAndRejections
    node:internal/process/task_queues:96:5
2023-01-05 22:41:15.502  ERROR Invalid Property packageDelivered error 
 InvalidPropertyError  Property packageDelivered invalid
error stack:
• device.ts:568 getPropertyMetadata
    node_modules/eufy-security-client/src/http/device.ts:568:15
• device.ts:76 updateProperty
    node_modules/eufy-security-client/src/http/device.ts:76:48
• device.ts:1959 <anonymous>
    node_modules/eufy-security-client/src/http/device.ts:1959:38
• timers:559 listOnTimeout
    node:internal/timers:559:17
• timers:502 processTimers
    node:internal/timers:502:7

ejpenney avatar Jan 06 '23 00:01 ejpenney