View Full Version : Netremote and Girder on RPi

April 12th, 2016, 09:16 AM

I'm developing a Netremote interface that will be running on a touchscreen window box, with the main backend running on a Raspberry Pi (Pi 1 Model B, latest Raspbian Wheezy) .

I'm running the latest version of Girder on both the Raspberry Pi ( and the windows box (

I have random issues with KV values that do not update correctly on my front-end, and I cannot understand why.

Usually, it works fine at the beginning, and after a while, my KV values are not updated anymore on Netremote. The values are correct on the girder side. Sometimes, it does not work even when NR is started.
There are no visible errors in Debugview.

I tried to make a very simple qml with only text blocks displaying some of my KV values, and it seems to work.

Are there limitations when running the girder backend on a Raspberry Pi 1B (processing power, network bandwith) that could explain the issues ?
Could this be related to coding errors in my QML interface (even with no error in the NR dbgview log) ?
What could I do to diagnose my setup ? It's unusable this way :(



April 12th, 2016, 10:59 AM
Hum... replying to myself.

I added the "raw value" of the KV values on my NR screen in addition to the GUI elements, and I believe my issue is related to a coding issue on my side after all.

My UI element is a 2-states toggle button (ON/OFF).
The display state of the button is selected according to the KV value (0 or >0) with a simple QML condition.

state: kv.value("kimagure.eedomus.34106").val > 0 ? "on" : "off"

Clicking on the button triggers a zwave action through girder.

I wanted the button to show a state change immediately, without waiting for the remote sytem to really change the KV value (it's more "user friendly" this way, because the user can see he has actually clicked on the button).
I did this by forcing the state of the button to "ON" (or OFF)

onClicked: {
if(state=="on") {
girder.sendEvent( "EEDOMUS_SET", 18, 0, ["34106", "0"]);
} else {
girder.sendEvent( "EEDOMUS_SET", 18, 0, ["34106", "100"]);

Actually, as a (bad) side effect, setting the state attribute to the "on" or "off" constant completely replaces the original condition linked to the KV value, so the button does not change state anymore !

I'm going back to my code... Hopefully, this is entirely my fault :)


April 12th, 2016, 11:12 AM
I wonder if it has to do with the way you are using the KV value.

state: kv.value("kimagure.eedomus.34106").val > 0 ? "on" : "off"

This creates a unnamed object, takes it's value and compares it. However I am not sure that the unnamed object will be kept around, it is possibly garbage collected. Check kvExample.qml in the UI directory. There I do this:

property variant myValue: kv.value("myvalues.hello")

and then reference myValue on the state

state: myValue.val > 0 ? "on" : "off"

April 12th, 2016, 11:31 AM

I'll try rewriting my code this way also.


April 14th, 2016, 10:28 AM
It's working fine now.

The issue was definitely in my own code. Sorry for that.


April 14th, 2016, 10:41 AM
Good, glad to hear it!