[APP][Pro] Support for ONVIF compatible cameras (2.0.8 & test 2.0.9)

Hmm, that is confusing!
So 0.0.2 gives you the image screens but with the error message.
And with 0.0.6 the screens are missing.
Did you at anypoint see an image there?
If you go to the Advanced settings (the small cog in the top right of the picture) does the Has Motion option say yes? If not can you try switching it on to see if that helps (on version 0.0.6)?

That’s right. Now i have in advanced setting the “has motion” turned it on No(stays Yes). I started homey again and i have two screens. After that i have the “has motion” turned it on yes and started homey again and now i have four screens even the missing screen with “motion event” and the error _invalid_content_type. Also i noticed that when i switch the "has motion"from no to yes then crashed Homey. I started Homey again i have four screens even with MotioN Event and the error code. I try to show the steps as clearly as possible. I have it also tried with the second hikvision camera and i had the same problem

OK, when you have the four screens can you change the MOTION EVENT to NOW in the drop list to see if you get the ‘live’ sbapshot?

Yes i can change it to Now but i got the message unauthorized.

That’s strange. Can you enter your user name and password in the advanced settings again to make sure they have been stored correctly.
If it still doesn’t show a picture than try the log again (switch it on, restart app, look at the log) and send it to me.

Hi Adrian,

I have tried it and got the same problem. I have made also a flow with movement and then he sent me to the phone a motion or photo… this is the log you want.

  • ------ Event detected ------
  • {
    “topic”: {
    “_”: “tns1:Monitoring/ProcessorUsage”,
    ": { "Dialect": "http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet" } }, "message": { "message": { "”: {
    “UtcTime”: “2020-04-22T20:31:15.000Z”,
    “PropertyOperation”: “Changed”
    },
    “source”: {
    “simpleItem”: {
    ": { "Name": "Token", "Value": "Processor_Usage" } } }, "data": { "simpleItem": { "”: {
    “Name”: “Value”,
    “Value”: 46
    }
    }
    }
    }
    }
    }
  • “Monitoring/ProcessorUsage”
  • Event Value = 46
  • ------ Event detected ------
  • {
    “topic”: {
    “_”: “tns1:Monitoring/OperatingTime/LastClockSynchronization”,
    ": { "Dialect": "http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet" } }, "message": { "message": { "”: {
    “UtcTime”: “2020-04-22T20:31:31.000Z”,
    “PropertyOperation”: “Changed”
    },
    “source”: “”,
    “data”: {
    “simpleItem”: {
    “$”: {
    “Name”: “Status”,
    “Value”: “2020-04-22T22:31:31.000Z”
    }
    }
    }
    }
    }
    }
  • “Monitoring/OperatingTime/LastClockSynchronization”
  • Event Status = Thu Apr 23 2020 00:31:31 GMT+0200 (CEST)
  • ------ Event detected ------
  • {
    “topic”: {
    “_”: “tns1:RuleEngine/CountAggregation/Counter”,
    ": { "Dialect": "http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet" } }, "message": { "message": { "”: {
    “UtcTime”: “2020-04-22T20:32:15.000Z”,
    “PropertyOperation”: “Changed”
    },
    “source”: {
    “simpleItem”: [
    {
    ": { "Name": "VideoSourceConfigurationToken", "Value": "VideoSourceToken" } }, { "”: {
    “Name”: “VideoAnalyticsConfigurationToken”,
    “Value”: “VideoAnalyticsToken”
    }
    },
    {
    ": { "Name": "Rule", "Value": "MyCountAggregation1" } } ] }, "key": { "simpleItem": { "”: {
    “Name”: “ObjectId”,
    “Value”: 1
    }
    }
    },
    “data”: {
    “simpleItem”: {
    “$”: {
    “Name”: “Count”,
    “Value”: 0
    }
    }
    }
    }
    }
    }
  • “RuleEngine/CountAggregation/Counter”
  • Event Count = 0
  • ------ Event detected ------
  • {
    “topic”: {
    “_”: “tns1:Monitoring/ProcessorUsage”,
    ": { "Dialect": "http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet" } }, "message": { "message": { "”: {
    “UtcTime”: “2020-04-22T20:32:16.000Z”,
    “PropertyOperation”: “Changed”
    },
    “source”: {
    “simpleItem”: {
    ": { "Name": "Token", "Value": "Processor_Usage" } } }, "data": { "simpleItem": { "”: {
    “Name”: “Value”,
    “Value”: 34
    }
    }
    }
    }
    }
    }
  • “Monitoring/ProcessorUsage”
  • Event Value = 34

Unfortunately the parts I want to see, the camera startup information, are not there.
What model is the camera?
If the next update doesn’t fix the problem then I might buy one so I can get to the bottom of it.

I managed to get a cheap Foscam camera to debug a problem only to discover that it doesn’t support motion detection via ONVIF. On paper it supports motion detection and ONVIF but not together as the motion detection is done in software and not on the camera. But it did allow me to make the app more robust so not a total loss.

Okay, thanks. It’s the hikvision ds-2cd3145F-I

Adrian, I would like to make a donation to support you in further developing your App. Do you want to create a paypal link so that I can do this. You spend a lot of time on it, I read that you even want to buy an extra camera for that.

That is very kind @Octo but not necessary.
I develop apps primarily for my own use and then share them with others because I enjoy giving back to the community.
When other user have problems I consider it a challenge to make it work and although it can be frustrating at times, it does make me happy if / when I can solve it.
I must admit I have quite a collection of devices now that I have purchased so I can add support to my apps. Sometimes I find a use for them but often they sit in a box for when I ‘might’ need them :slight_smile:.

2 Likes

Hi Adrian. Super work here! I do have a request: could you add flow cards for action ‘take snapshot’ and trigger ‘snapshot created’ ? So I can create an image drop token from a flow on command. Or is there some other way of doing this?

1 Like

I can’t seem to find any of those or any ds-2cd3xxx for sale.
Does this one look to be a similar specification as yours:



Deze specs

1 Like

I have just published a new test version (0.0.9).
I have merged a few changes into the onvif lib that should make it more robust so it is a custom version of the library again.
This has many more checks for valid configuration of the camera. This includes checking for pull point support that is required for ONVIF motion events.
It also adds flow cards for 'Update Now snapshot" and “Now snapshot ready”.

Edit. If you were previously having problems with your camera then I would suggest you delete it and the add it afresh to ensure the new pairing routines capture the correct data.

1 Like

Hi Ben,

Have you had a chance to try the new test version (0.0.9)?

If it still doesn’t fix the problems you are having then I will purchase a HikVision camera that is as close to the same spec as yours as I can find.

There is a new test version (0.0.10).

New features:

  • Improves reconnecting to a camera that has been offline,
  • Added Repair feature to reconnect a camera when the IP address or login details have changed,
  • Added a button to the Log screen to send the log to me.

The send option sends exactly what you see in the log (and nothing more) so please check that there are no password, etc, being displayed. In most cases your passwords used to login to cameras are replaced with the text YOUR_PASSWORD or are in an encrypted form that changes each time you connect to a camera. Obviously this feature is only useful if you are having problems with your make / model of camera.
** If you want me to reply then leave a message on here or in GitHub as there is no identifiable information included in the log

Please let me know if this version has any issues or fixes any issues you have had.

Edit: If someone would like to test the send log feature I would be grateful as I can’t test that fully from my Homey

1 Like

New test version (0.0.11).
This fixes a pairing issue in the last test version.

@Adrian_Rockall Good morning Adrian and thank you very much for your efforts. I’m testing your App vers. 0.0.6 (the official on the store) on 3 different cams:

DBPOWER hd Cam: chinese cheep outdoor cam full HD, already included in Homey, immediately recognise and working with your app, I did not test the motion alarm yet

IMOU IPCG22: new full HD outdoor cam, already included in Homey, IP recognise but it returns the following error - Cannot read property ‘width’ of undefined

EBITCAM F220: outdoor full HD cam, IP not recognised - I’m pretty sure this cam needs a token to grab a snapshot so it my be not usable with your app

Keep these information as a record for your work up to this version, I’ll be happy to test any available upgrade. Thanks once again!

Hi @Andrea_M, Thanks for the information, I will add it to the first post.

It would be worth trying the test version to see if that fixes the issue with the width property. Also try enabling the Diagnostics log to see if that provides any more information about the error.