Forgive me if this has been answered; I've tried Gooling and found nothing.

We own a small coffee shop and would like to install a few IP cameras. In particular, one above our mid-line Casio cash register. It has a serial port that has the ability to output formatted text of transaction as they happen.

Is there anyway to integrate that data with Zoneminder using the IP camera? Ideally, i'd like to search the text for particular events, e.g, when the No Sale key is hit and watch the video at that time. Maybe set flags for when certain keys are pressed or other text is sent to the serial port.

The text does not necessarily have to be overlayed as long as it's synced with the video and is somewhat search-able.

Any suggestions or links to other open source software would greatly be appreciated.

Yes, Please!! I too am looking for something such as this. We have DVRs that are extremely expensive and many years out of date and hope to replace them with something similar. We would be willing to "donate" for someone's time to make something like this available in zoneminder

We would be willing to donate as well. Whether it's funds for the programmer/developers of Zoneminder and/or donate our spare Casio register (including advanced programming manual) to a dev for testing. We might have a second spare Casio register to donate in a few months as well. We'll pay shipping too.

We'd really like to use Zoneminder as our one solution for general surveillance and Point of Sale text insertion. We're a Linux shop with no Windows machines and most Retail DVR software is Windows based.

zoneminder has the video part covered already. All you need to do (FLW! ) is add a timestamping data logger to the zoneminder machine. (That way, both the captured serial data and the video data timestamps are guaranteed to be the same.)

TheKorn wrote:I approach this as two separate problems. (At least for now.)

zoneminder has the video part covered already. All you need to do (FLW! ) is add a timestamping data logger to the zoneminder machine. (That way, both the captured serial data and the video data timestamps are guaranteed to be the same.)

Looks like grabserial would get you 95% of the way, if not all the way, there.

Thanks for the info. In doing some more research on this, it seems that the reason most commercial off the shelf software utilize the text overlay on video is that it is the only evidence admissible in most courts.

I guess it would make sense to have both a synced, time stamped text file in addition to the overlay. This way one could grep the file for exceptions, e.g., large refunds, discounts, etc.

On a related note, I could see this feature not only being popular for small shops like ours but possibly for scientific research. Having data (temp, physical triggers, etc.) overlayed and saved for capturing events.

In doing some more research on this, I've found out that Axis cameras offer the VAPIX API which does have support for dynamic text overlay. From the VAPIX OVERLAY PDF:

"3.6.2 Dynamic text overlay
Dynamic text overlay can be inserted in the text overlay. Since dynamic text is saved in the RAM memory only is removed on boot.
It is possible to use modifiers starting with % in this dynamic text. Modifiers starting with # can however not be used.
To use this functionality set Image.I#.Text.TextEnabled to yes and set Image.I#.Text.String to contain the
modifier #D.
Note
The ‘#’ in I# should be replaced by an integer starting from zero. The ‘#’ in #D is a modifier and should not be replaced."

I *think* I would need a script or the aforementioned grabserial program to capture the text from the serial port and send it to the AXIS camera[s] server as an http request. Then Zoneminder wouldd not need to get involved in doing the overlay *unless* this functionality was included. Which would be nice.

The last part would be searching the video based on this text. I'm unsure if the serial text would have to be saved as a separate file or if the dynamic text overlay itself could be searched.

I've also completed testing on the com port on our registed/POS. It's standard text that I can capture with our linux box using the cat command:

P.S. I've emailed Zoneminder about paying to have this functionality programmed into Zoneminder but have not heard of any response. I'd be willing to donate and older Casio cash register for testing as well. I think this functionality would be useful not only for loss prevention but for all sorts of applications, e.g., scientific monitoring, etc.

Thanks for your research on this. I have been having similar problems myself with my casio cash register. I have found a lot of your information useful. Thanks again. I am doing research myself so I will post any updates in this thread in the future!