No announcement yet.

[VB.NET] Snevl BetaBrite Sign Control

  • Filter
  • Time
  • Show
Clear All
new posts

    [VB.NET] Snevl BetaBrite Sign Control

    This is my version 1.4 of Snevl_bb, a script-based Homeseer control package for the BetaBrite LED sign, as well as other LED signs from Adaptive Micro systems (I have it running on a BetaBrite and a 2-line 4120C, and it has been tested on the larger 4200C). Like the other stuff I do, this is completely free to other Homeseer users.

    • Support for up to four signs, each with its own messages under HS script / event control.
    • A configuration editor web page for set up and configuration changes.
    • User defined combinations of separate message buffers and string variables, allocating any or all of the available sign memory to various buffers per user settings.
    • Access (via embedded formatting commands) to all the colors, transitions, special characters, speeds, and fonts that the sign supports. You simply embed these formatting commands into your message text.
    • Insertion into messages (again with formatting commands) of string variables, date (several formats supported), and time.
    • Basic control functions, such as turning a sign on/off, setting the clock, or changing what messages that you have already stored are currently displayed.
    I've included a beginning of a Extras library to give you some samples to start from and maybe some directly useful add-ons:
    1. A customized VB.NET version of the CNN Headlines script, this one displaying a ticker-tape-like display of the headlines.
    2. A script that ties into the CNN Breaking News script (I posted a new version in the script library a while back) to interrupt the normal sign display with the text of the breaking news item, then restore the normal display.
    3. An "Important Dates" script that allows you to include upcoming birthdays, anniversaries, and holidays on your sign display. A web-based editor for your own important dates is also included.
    4. Some examples of using a two-line sign, where you can specify what you want on each line.
    5. A Music add-on to display the current artist and track title on the sign when music is playing, blank that part out when music stops, and update it when the track changes.
    6. A sample web page to send stuff to the sign, and lets you define colors, transitions, and display times. Mostly useful to let you see how the various transitions work, so you can choose how to use them in your events / scripts.
    7. A script to display caller ID of a call coming in from SnevlCID (you *KNEW* I had to tie this to my own CallerID application!).
    I hope to add other Extras as people come up with and / or contribute ideas.

    I've provided pretty extensive documentation to get you going (attached separately here if you want to look at the docs before you download the package).

    My thanks to Thom Hinton (GreenAcres) for not only keeping up the pressure on me to do this once he found out I had my own BetaBrite script, but also for his beta testing so far.

    As with SnevlCID, I will make every effort to support anyone using this. Please post any comments, bugs, or requests in the discussion thread, here:

    Thanks for giving it a look!

    Attached Files
    Last edited by stevea; January 9, 2011, 10:38 AM. Reason: Replaced ZIP with new version.

    v1.0 of Snevl_bb

    I've updated the first post in this thread with version 1.0 of Snevl_BB. There's been significant changes since the early beta posted ealier, more "extras" are now included, and the documentation is pretty complete.

    As indicated in the first post, please post any comments, problems, or suggestions in the discussion thread (link is provided in the first post).




      I'm replacing the ZIP attached to the first message of this thread with v1.1. There have been extensive changes since v1.0, but I am pretty certain I retained everything in v1.0, so if you are already making use of it nothing should break. The main changes:
      1. Added the "queue_msg" command, which greatly simplfies many / most of the ways you would use the sign, generally reducing three separate calls down to one, and handling the case of multiple events firing off in short order to send stuff to the sign.
      2. At startup, Snevl_BB will attempt to query each sign for some generic information (firmware version and date, internal clock, and memory usage), mainly to confirm that the sign is connected and the comms are working.
      3. Added a "show_warnings" setting to the Snevl_BB.ini configuration file. This should be set to either TRUE or FALSE, and it will tell Snevl_BB if you want to see various warnings. Most are not worth showing, but you may want to set this to TRUE for a while so you know what they are.
      4. Added "debug_level" setting to Snevl_BB.ini, which should be either a 1 or a 2. Level 1 debug logs what Snevl_BB is doing as it processes commands. Level 2 adds to that the binary data that sent to the sign. Both types of debug data are written to the Snevl_BB_debug.txt file in your root Homeseer directory.
      5. Added lots more error checking and debug that I hope you will never need, but if you do, you and I will be able to figure out what was going on.


        Fixed Caller ID Extra

        Fungun discovered (over here: ) that I had an error in the "Extra" that posted the caller ID from SnevlCID to the LED sign when a new call came in. Here's the corrected version of just that one item. The instructions and the script are included (the instructions didn't change).

        Attached Files


          Corrected Message-of-the-Day script

          v1.1 of Snevl_bb had a bug in the "Important Dates" (Message of the Day) Extra. I corrected, but neglected to ever post it here. The ZIP includes the instructions, sample data file you can customize (for birthdays, anniversaries, etc.) and the script.

          The script creates a string to display on your LED sign something like:

          "Today is Jim's anniversary, and almost Fred's birthday (3 days), and almost July 4th (6 days)"

          A sample script is included that will read this string from an INI file and put it on the sign. I suppose you could also use it for non-sign purposes, like putting it in a device string for display on your web page or HSTouch screen.

          As per usual, post any comments or issues over in the discussion thread.

          Attached Files
          Last edited by stevea; July 1, 2010, 11:55 PM. Reason: Replaced ZIP that had a bug


            Snevl_bb v1.2 Posted

            The ZIP file attached to the first post in this thread has been updated with version 1.2 of Snevl_bb. The main changes:
            • Added 'hi_pri_queue_msg' to allow a high priority message to be inserted at the front of the queue (will display immediately, insted of waiting in line behind other queued messages).
            • Deprecated (removed) several functions that I created before I had the message queue working. These are now obsolete. If anyone was using them and need some help moving over to the queues, let me know.
            • Updated versions of lots of the Extras scripts, including the fixed "Important Dates" script posted above.
            • Lots of changes to the documentation that will hopefully make it easier to use. Added a "quick start" section, and a table of contents. Also, the doc is posted as a separate ZIP above.
            As always, I'm keen to help anyone who finds a problem or hits a road block. Post any comments, requests, or bug-reports over in the discussion thread (here: rather than in this thread.




              v1.3 posted

              The ZIP files at the beginning of this thread ( have been updated with version 1.3 of Snevl_bb. The main changes from v1.2:
              • A configuration editor web page is now provided, so you don't have to manually edit the Snevl_bb.ini file. The web page does validation on any changes you try to make, so it would be very good if everyone avoids manually editing the file from this point forward.
              • I made a couple of minor but important changes to how queued messages are popped off the queue. If you queue up lots of messages, you definitely need this version to avoid messages from getting stuck on the display.
              • Serial port configuration can now be set on each sign (baud rate, number data bits, parity, and number of stop bits). This was necessary to support some of the older signs.
              • The "Important Dates" Extra has been modified to support either the original format data file (ImportantDates.txt) or a comma-separated file of dates and event names (ImportantDates.csv) which may be (for example) exported from Outlook. A web page has been provided to edit the events in the file.
              • Each sign can be configured (via the config editor web page) as being "blank when idle". This is for instances where you want the sign set up to not display an idle message, but only display the temporary queued messages when you send them.
              The only other changes that I'm contemplating for the future is to make this a plug-in, although I really don't want to do it for a number of reasons. If anyone has suggestions or problems with v1.3, continue to post in the discussion thread:




                v1.3 (fixed)

                A few minutes after posting v1.3 I realized I had not actually updated the version number in the main script. I just reposted the ZIP, but the only change is the verison number that is printed out on initialization.



                  Fixed Message of the Day

                  I just noticed that "Today is Almost New Years Day" was not showing up on my sign, and tracked it down to an error in the makd_motd.vb script. Attached is the fixed version.

                  Drop it into your scripts directory, and re-run your idle message script.

                  Attached Files


                    v1.4 posted

                    v1.4 of Snevl_bb has been attached to the first post of this thread. There are only a couple of minor changes here, but they could be important to some:
                    • Modified how queued messages were "popped" off the queue. In some cases, some people were seeing the queued message get "stuck", in that the idle message would not return. This seems to be fixed as of v1.4.
                    • Fixed the situation where a idle message sequence was changed while a queued message was being displayed. Rather than change the temporary message, change the idle message that has been temporarily stored for later restoration.
                    • Added a handful of minor items to handle anomalous conditions.
                    As always, please post comments and questions over in the discussion thread: