BlinkStick Client 2.0-rc release

@dubois_richard Your issue is slightly different. Would you be able to send me your data file to info at blinkstick dot com? If you go to Settings page and click on Open Log Folder, the data.json would be one level up. Please make sure that you don’t have any email notifications which contain your passwords before you send the data over to me. BTW, are you using the latest RC5 release?

@arvydas Hello arvydas,

Thank you for you answer. Yes i’m using the release RC5.

Here is the data.json as requested. thanks

{
  "$id": "1",
  "Patterns": [
    {
      "$id": "2",
      "Animations": [
        {
          "$id": "3",
          "AnimationType": 3,
          "Color": "#FF0000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 500,
          "RepeatPulse": 3,
          "DurationMorph": 1000
        }
      ],
      "Name": "pulse - red (x3)"
    },
    {
      "$id": "4",
      "Animations": [
        {
          "$id": "5",
          "AnimationType": 3,
          "Color": "#008000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 500,
          "RepeatPulse": 3,
          "DurationMorph": 1000
        }
      ],
      "Name": "pulse - green (x3)"
    },
    {
      "$id": "6",
      "Animations": [
        {
          "$id": "7",
          "AnimationType": 3,
          "Color": "#0000FF",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 500,
          "RepeatPulse": 3,
          "DurationMorph": 1000
        }
      ],
      "Name": "pulse - blue (x3)"
    },
    {
      "$id": "8",
      "Animations": [
        {
          "$id": "9",
          "AnimationType": 1,
          "Color": "#FFFFFF",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 5,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "10",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "alert - white"
    },
    {
      "$id": "11",
      "Animations": [
        {
          "$id": "12",
          "AnimationType": 1,
          "Color": "#FF0000",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 5,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "13",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "alert - red"
    },
    {
      "$id": "14",
      "Animations": [
        {
          "$id": "15",
          "AnimationType": 1,
          "Color": "#008000",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 5,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "16",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "alert - green"
    },
    {
      "$id": "17",
      "Animations": [
        {
          "$id": "18",
          "AnimationType": 1,
          "Color": "#0000FF",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 5,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "19",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "alert - blue"
    },
    {
      "$id": "20",
      "Animations": [
        {
          "$id": "21",
          "AnimationType": 1,
          "Color": "#FFFF00",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 5,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "22",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "alert - yellow"
    },
    {
      "$id": "23",
      "Animations": [
        {
          "$id": "24",
          "AnimationType": 2,
          "Color": "#FF0000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "25",
          "AnimationType": 2,
          "Color": "#00FF00",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "26",
          "AnimationType": 2,
          "Color": "#0000FF",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "color - cycle"
    },
    {
      "$id": "27",
      "Animations": [
        {
          "$id": "28",
          "AnimationType": 1,
          "Color": "#FF0000",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 2,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "29",
          "AnimationType": 1,
          "Color": "#0000FF",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 2,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "30",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 500,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "police"
    },
    {
      "$id": "31",
      "Animations": [
        {
          "$id": "32",
          "AnimationType": 1,
          "Color": "#FFFF00",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 3,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "33",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 500,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "34",
          "AnimationType": 1,
          "Color": "#FFFF00",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 2,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "35",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 500,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "36",
          "AnimationType": 1,
          "Color": "#FFFF00",
          "DelaySetColor": 1000,
          "DurationBlink": 100,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        },
        {
          "$id": "37",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 500,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "ambulance"
    },
    {
      "$id": "38",
      "Animations": [
        {
          "$id": "39",
          "AnimationType": 2,
          "Color": "#00FF00",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "status - available"
    },
    {
      "$id": "40",
      "Animations": [
        {
          "$id": "41",
          "AnimationType": 2,
          "Color": "#FFFF00",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "status - away"
    },
    {
      "$id": "42",
      "Animations": [
        {
          "$id": "43",
          "AnimationType": 2,
          "Color": "#FF0000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "status - busy"
    },
    {
      "$id": "44",
      "Animations": [
        {
          "$id": "45",
          "AnimationType": 0,
          "Color": "#FFFFFF",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "color - white"
    },
    {
      "$id": "46",
      "Animations": [
        {
          "$id": "47",
          "AnimationType": 0,
          "Color": "#FF0000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "color - red"
    },
    {
      "$id": "48",
      "Animations": [
        {
          "$id": "49",
          "AnimationType": 0,
          "Color": "#008000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "color - green"
    },
    {
      "$id": "50",
      "Animations": [
        {
          "$id": "51",
          "AnimationType": 0,
          "Color": "#0000FF",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "color - blue"
    },
    {
      "$id": "52",
      "Animations": [
        {
          "$id": "53",
          "AnimationType": 0,
          "Color": "#FFFF00",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "color - yellow"
    },
    {
      "$id": "54",
      "Animations": [
        {
          "$id": "55",
          "AnimationType": 0,
          "Color": "#000000",
          "DelaySetColor": 1000,
          "DurationBlink": 1000,
          "RepeatBlink": 1,
          "DurationPulse": 1000,
          "RepeatPulse": 1,
          "DurationMorph": 1000
        }
      ],
      "Name": "color - black"
    }
  ],
  "Notifications": [
    {
      "$id": "56",
      "$type": "BlinkStickClient.DataModel.NotificationBlinkStickDotCom, BlinkStickClient.Base",
      "Enabled": false,
      "Name": "BlinkStick.com1",
      "AccessCode": "b83f5f0c943d6d60b04c14797004bb9b",
      "BlinkStickSerial": "BS002117-1.4",
      "LedFirstIndex": 0,
      "LedLastIndex": 0
    },
    {
      "$id": "57",
      "$type": "BlinkStickClient.DataModel.NotificationRemoteControl, BlinkStickClient.Base",
      "Enabled": true,
      "Name": "Remote Control1",
      "ApiBindAddress": "127.0.0.1",
      "ApiAccessPort": 9000
    }
  ],
  "Devices": [
    {
      "$id": "58",
      "BlinkStickDevice": 1,
      "Serial": "BS002117-1.4",
      "LedsR": 1,
      "LedsG": 1,
      "LedsB": 1,
      "BrightnessLimit": 100
    }
  ],
  "TriggeredEvents": [],
  "ApiAccessAddress": null
}

Hey,

I was trying to get the Remote Control to work yesterday and I just could not make that work.
I got the URL I used for my tests from here

I was having the same problems and I searched the code of the BlinkStick Client on Github for the Problem. I found the Regex which is used for evaluating the URL and found the “/” which were not escaped. This seemed odd and I tried building the project locally with an altered version of the regex. I had some trouble building the project but in the end it worked. I was able to control the light color using different URLs in the browser.

I forked the project on github and sent a pull request with the altered version of the regex.

I know other programming languages but this was my first contact with C#. That’s why I did not make any other alterations, but maybe you can also add an else case to the “if (m.Success)” which just displays the that the URL is incorrect? I’m guessing it would look something like this:

server.SendResponseJson(200,
    new InfoResponse() { name = "BlinkStick Client", version = ApplicationDataModel.ApplicationVersion, error = "The URL seems to be incorrect." },
    e.Context.Response);
e.Handled = true;

This way it would not result in a timeout.

Hello, @online !

Wow nice for your help on this! I’ve already chat with @arvydas about the Remote Control, and he said that he got a fix for it that he will release shortly. Maybe it is something similar that what you found.

Hello,

When i’m using Website API with the following URL: http://www.blinkstick.com/d/<my_public_key>/red

I’m getting "ok" as response. But this is not a valid JSON response… my JSON parser is unable to parse it, I got a “JSON parsing errors have occurred” error. I think a valid answer for this should be {"ok"} or {"result":"ok"}

thanks.

New version of BlinkStick Client application RC6 has been released!

  • Ability to specify channel for notifications to support all channels of BlinkStick Pro
  • Improved pattern animations, now they are a lot smoother
  • Improvements to remote control notification which adds support to specify channel, first and last LEDs. Support to set color or play pattern.

You can find more details about new remote control API for BlinkStick Client application by following this link.

Head over to the top of this thread to find the link to download the release.

New version of BlinkStick Client application RC7 has been released!

  • Added Keyboard notification to play pattern when keyboard combination is pressed
  • Ability to use standalone BlinkStick.com server
  • Option to turn off BlinkSticks when exiting application

You can find more details about standalone BlinkStick.com server by following this link:

Release download link at the top of this thread.

30% CPU usage, that’s not cool

Indeed it isn’t! What notifications are you using?

I’m currently using Ambilight

Yep, it is reprocudeable! I´ve updated from RC5 to RC7 and got also got 30% CPU usage with a ambilight notification!

The same for me, when I started to use CPU notification: CPU usage 12-13% (looks like 100% for one thread on 4 core, multihtreaded processor). Client 2.0-rc7, BlinkStick Nano.

New BlinkStick Client 2.0-RC8 has been released. Fixes and improvements in this release:

  • Fix crash when BlinkStick is detected first time
  • Optimize overall CPU usage
  • Optimize ambilight notification to send data only when color changes
  • Added duration parameter for standalone BlinkStick.com server

The overall CPU usage has dropped significantly. Thanks for your issue reports!

Download links at the top of this thread as usual.

2 Likes

Thanks, CPU usage went back to normal :smile:

1 Like

New BlinkStick Client 2.0-RC9 has been released. Fixes and improvements in this release:

  • Mac OSX support, tested on Mavericks and Yosemite.
  • New icons for UI
  • Latest version of GTK 2.12.30 supported

OS X release does not support the following notifications yet:

  • Ambilight – ambilight effect by calculating average color of the screen
  • Application – active application trigger
  • Disk Space – notification about disk space used
  • Keyboard – ability to use keyboard shortcut to trigger a pattern

The support for these notifications will be added in the future releases.

Download links at the top of this thread.

Ever since RC7 I can no longer control LEDs by channel anymore, only Channel R works and even setting Channel to G or B just puts the pattern on Channel R.

@rturner Thanks for letting me know. What type of notification are you using this with?

Built in Test, then selecting Ambulance, Police, etc, nothing custom.