kerberos-io / web

(DEPRECATED) An open source GUI to configure the machinery and to view events that were detected by the machinery.
https://www.kerberos.io
225 stars 69 forks source link

Webhook no longer working #161

Open cwjackso opened 4 years ago

cwjackso commented 4 years ago

Describe the bug I am no longer seeing webhooks on camera motion. Video recording is working fine.

To Reproduce Steps to reproduce the behavior:

  1. Go to settings
  2. setup a webhook
  3. trigger some motion
  4. observe that a recording is made
  5. no webhook received

Expected behavior A webhook is received, or at least a useful error to say why it is failing

This is using the latest docker image via docker-compose and the same config as was working on the previous docker image. the address I am posting to is https are there maybe missing certificates in the new image?

cedricve commented 4 years ago

Can you share your Docker compose file?

cwjackso commented 4 years ago
version: "3"
services:
  Kerberos:
    restart: always
    container_name: kerberos
    networks:
      - traefik_proxy
    volumes:
     - ~/xxxxxx/kerberos-config:/etc/opt/kerberosio/config
     - ~/xxxxxx/kerberos-capture:/etc/opt/kerberosio/capture
     - ~/xxxxxx/kerberos-logs:/etc/opt/kerberosio/logs
    environment:
     - KERBEROSIO_SECURE_SSL=true
     - APP_URL=https://xxxx.xxxx
    image: kerberos/kerberos
    labels:
      - "traefik.enable=true"
      - "traefik.cctv.frontend.rule=Host:xxxx.xxxx"
      - "traefik.cctv.port=80"
      - "traefik.cctv.frontend.passHostHeader: true"
      - "traefik.stream.frontend.rule=Host:xxxx.xxxx.xxxx"
      - "traefik.stream.port=8889"
      - "traefik.stream.frontend.passHostHeader: true"

networks:
  traefik_proxy:
    external: true
cedricve commented 4 years ago

thanks, can you also validate with http?

cwjackso commented 4 years ago

Validate if the webhook works over http?

cedricve commented 4 years ago

exactly

cwjackso commented 4 years ago

See what I can do, need to just play with my traefik config...

cedricve commented 4 years ago

thanks ;)

cwjackso commented 4 years ago

No HTTP didn't make a difference, still nothing

Also having an issue if I try to use MQTT instead, whenever I configure MQTT the camera stream entirely stops working. (using https://www.cloudmqtt.com/)

cedricve commented 4 years ago

Interesting can you share the logs, will try to reproduce myself.

cwjackso commented 4 years ago

in the log.stash the only relevant part seems to be

23/04/2020 10:50:54.498 INFO  [trivial] HullExpositor: activity detected from (615,648) to (1043,711)
23/04/2020 10:50:54.498 INFO  [trivial] Heuristic is valid; numberOfChanges: 76, Sequence duration: 3
23/04/2020 10:50:54.498 INFO  [trivial] IoVideo: firing
23/04/2020 10:50:54.506 INFO  [business] IoVideo: writing image
23/04/2020 10:50:54.522 INFO  [business] IoVideo: grabbing images
23/04/2020 10:50:54.540 INFO  [trivial] Executing IO devices for 30 detection(s)
23/04/2020 10:50:54.540 INFO  [trivial] IoWebhook: post to webhook http://nodered.xxxx.xxx/garden-camera-event
23/04/2020 10:50:54.544 ERROR [trivial] IO: can't execute
23/04/2020 10:50:54.567 INFO  [business] IoVideo: grabbing images
23/04/2020 10:50:54.589 INFO  [business] IoVideo: writing image
23/04/2020 10:50:54.613 INFO  [business] IoVideo: grabbing images
23/04/2020 10:50:54.659 INFO  [business] IoVideo: grabbing images
23/04/2020 10:50:54.677 INFO  [business] IoVideo: writing image
cedricve commented 4 years ago

ok will have a look ;)

cwjackso commented 4 years ago

Doesn't seem to be anything related to the MQTT issue, once configured the logs never get past

23/04/2020 08:14:31.282 INFO  [trivial] Starting io devices: Video,MQTT
23/04/2020 08:14:32.438 INFO  [trivial] Logging is written to: /etc/opt/kerberosio/logs/log.stash
23/04/2020 08:14:32.438 INFO  [trivial] Reading configuration file: /etc/opt/kerberosio/config/config.xml

Before looping back to...

23/04/2020 08:14:32.439 INFO  [trivial] Final configuration:
- algorithm = DifferentialCollins
- algorithms.BackgroundSubtraction.dilate = 7
- algorithms.BackgroundSubtraction.erode = 5
- algorithms.BackgroundSubtraction.history = 15
etc
cedricve commented 4 years ago

having a look as well.

cedricve commented 4 years ago

just checked Webhook, indeed it is not longer working anymore. Trying to update the dependency and rebuilding the docker image

cedricve commented 4 years ago

in the log.stash the only relevant part seems to be

23/04/2020 10:50:54.498 INFO  [trivial] HullExpositor: activity detected from (615,648) to (1043,711)
23/04/2020 10:50:54.498 INFO  [trivial] Heuristic is valid; numberOfChanges: 76, Sequence duration: 3
23/04/2020 10:50:54.498 INFO  [trivial] IoVideo: firing
23/04/2020 10:50:54.506 INFO  [business] IoVideo: writing image
23/04/2020 10:50:54.522 INFO  [business] IoVideo: grabbing images
23/04/2020 10:50:54.540 INFO  [trivial] Executing IO devices for 30 detection(s)
23/04/2020 10:50:54.540 INFO  [trivial] IoWebhook: post to webhook http://nodered.xxxx.xxx/garden-camera-event
23/04/2020 10:50:54.544 ERROR [trivial] IO: can't execute
23/04/2020 10:50:54.567 INFO  [business] IoVideo: grabbing images
23/04/2020 10:50:54.589 INFO  [business] IoVideo: writing image
23/04/2020 10:50:54.613 INFO  [business] IoVideo: grabbing images
23/04/2020 10:50:54.659 INFO  [business] IoVideo: grabbing images
23/04/2020 10:50:54.677 INFO  [business] IoVideo: writing image

MQTT works fine on my side so not sure. Can you check once more? I confirm the bug with the HTTP requests. Working on it.

cwjackso commented 4 years ago

Does MQTT work when entering a domain name? looking at the docs an IP address is used and the type is "number". I need to use a qualified domain

<server type="number">127.0.0.1</server>

cedricve commented 4 years ago

Hmm. That could be the reason indeed (I tried a IP address). Could you have a look into the MQTT class as well? https://github.com/kerberos-io/machinery/blob/master/src/kerberos/machinery/io/IoMQTT.cpp https://github.com/kerberos-io/machinery/blob/master/src/kerberos/machinery/io/IoMQTT.cpp

On 23 Apr 2020, at 15:03, Carl Jackson notifications@github.com wrote:

Does MQTT work when entering a domain name? looking at the docs an IP address is used and the type is "number". I need to use a qualified domain

127.0.0.1

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kerberos-io/web/issues/161#issuecomment-618390748, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALZUG37AZVW5PAZBMVYRSTROA4D7ANCNFSM4MO36PVA.

cwjackso commented 4 years ago

C++ isn't my thing at all but I think changing line 10

setIp(settings.at("ios.MQTT.server").c_str());

to this

setIp(settings.at("ios.MQTT.server"));

and the XML type changing to text

Is all that is needed, pretty sure that would be a breaking change for everyones config though unfortunately.

cedricve commented 4 years ago

@cwjackso can you pull again kerberos/kerberos, we rebuilded the image. The webhook should be fixed. let us know.

cwjackso commented 4 years ago

Yes - web hook working 👍