Velbus via command line

Does somebody knows of / wrote a windows command line tool to send velbus commands and/or receive velbus states ?

Any news on this?

Would be awesome to automate using simple batchfiles, or communicate with Velbus using an Android device. Easy to do with tools like Remote Designer

Hello,

it can’t be to hard to use my velbus perl scripts in windows.

link to some perl scripts that I use: leachy.homeip.net/velbus/perl/

Some of them needs to be cleaned up, the best way to start are the rol_up/down scripts. They make connection true ethernet, just change the localhost and port to your needs.

I’ll try them later on windows, for now I know that they work in linux.

I tried them in windows and they work.
Just download and install active perl for windows (link: activestate.com/products/activeperl)

have fun with them.

tx! I’ll try them out tonight :slight_smile:

I had a look at your script. I’m new to perl, so some basic questions:

Are the libs below default perl libs? Or do I need something extra?
use strict;
use IO::Socket;
use POSIX qw/strftime/;
use lib qw(/usr/lib/perl5);
use POSIX qw/strftime/;

there all default libs, if you install active perl in windows, the script will run (normally) without any proplems. Don’t forget to adjust you ip and port number (I assume you 're using the ip server to distribute your messages)

ps: the scripts are a bit messy at the point, there a a lot of parameters wich aren’t needed. I’ll clean them up later.

did you managed to get them working?

Is someone interested by this kind of command :

L:\Téo & Téa>Velbuscmd server:192.168.168.250 port:8080 timer=25:$34-1 delay=3 up=10:$37-2 delay=10 down=1:$37-2

general command separator is ’ ’ (SPACE)
command/addresses separator is ‘:’
command/parameter separator is “=”
multiples addresses separator is ‘;’
adresses/part separator is ‘-’

For parallel actions, use many addresses for a parameter. For a pause, use delay (in second). By the way, many words would works “blind-up, up, monter, monter-volet…”

[quote]Global cmd_timeset$ = “TIME-SET TIMESET SYNCHRONIZATION SYNCHRONISATION” ; TIMESET=12318 (1er j, 23:18)
Global cmd_blindUp$ = “UP BLIND-UP MONTER-VOLET OUVRIR OUVRIR-VOLET” ; UP=12:$E (BlindUp $E for 12 sec)
Global cmd_blindstop$ = “STOP BLIND-STOP HALT ARRETER”
Global cmd_blindDown$ = “DOWN BLIND-DOWN FERMER-VOLET DESCENDRE DESCENDRE-VOLET”
Global cmd_relayOn$ = “ON ALLUMER RELAY-ON ALLUMER-RELAIS RELAY-ON SWITCH-ON”
Global cmd_relayOff$ = “OFF ETEINDRE RELAY-OFF ETEINDRE-RELAIS SWITCH-OFF”
Global cmd_relayTimer$= “TIMER START RELAY-START RELAY-TIMER ACTIVER LANCER”
Global cmd_dimmerOn$ = “DIM-UP DIMMER-UP SLOW-ON”
Global cmd_pause$ = “PAUSE DELAY WAIT ATTENDRE”
Global cmd_status$ = “STATUS ETAT INFOS INFORMATION”
[/quote]

That way, activate blind $37 (part $0C) down for 1 second is wrote : down=1:$37-2

For now, only RELAY ON, RELAY OFF, RELAY TIMER, RELAY-BLINK, BLIND UP and BLIND DOWN are coded… but I’ll add a lot of other commands :slight_smile:
Linux and Windows version are planned

Well, give-it a try (only 26kB on windows x86 version) : golfy.olympe.in/VelbusCmd.exe

[quote=“Golfy”]Is someone interested by this kind of command :

L:\Téo & Téa>Velbuscmd server:192.168.168.250 port:8080 timer=25:$34-1 delay=3 up=10:$37-2 delay=10 down=1:$37-2

general command separator is ’ ’ (SPACE)
command/addresses separator is ‘:’
command/parameter separator is “=”
multiples addresses separator is ‘;’
adresses/part separator is ‘-’

For parallel actions, use many addresses for a parameter. For a pause, use delay (in second). By the way, many words would works “blind-up, up, monter, monter-volet…”

[quote]Global cmd_timeset$ = “TIME-SET TIMESET SYNCHRONIZATION SYNCHRONISATION” ; TIMESET=12318 (1er j, 23:18)
Global cmd_blindUp$ = “UP BLIND-UP MONTER-VOLET OUVRIR OUVRIR-VOLET” ; UP=12:$E (BlindUp $E for 12 sec)
Global cmd_blindstop$ = “STOP BLIND-STOP HALT ARRETER”
Global cmd_blindDown$ = “DOWN BLIND-DOWN FERMER-VOLET DESCENDRE DESCENDRE-VOLET”
Global cmd_relayOn$ = “ON ALLUMER RELAY-ON ALLUMER-RELAIS RELAY-ON SWITCH-ON”
Global cmd_relayOff$ = “OFF ETEINDRE RELAY-OFF ETEINDRE-RELAIS SWITCH-OFF”
Global cmd_relayTimer$= “TIMER START RELAY-START RELAY-TIMER ACTIVER LANCER”
Global cmd_dimmerOn$ = “DIM-UP DIMMER-UP SLOW-ON”
Global cmd_pause$ = “PAUSE DELAY WAIT ATTENDRE”
Global cmd_status$ = “STATUS ETAT INFOS INFORMATION”
[/quote]

That way, activate blind $37 (part $0C) down for 1 second is wrote : down=1:$37-2

For now, only RELAY ON, RELAY TIMER, BLIND UP and BLIND DOWN are coded… but I’ll add a lot of other commands :slight_smile:
Linux and Windows version are planned[/quote]

that would be awesome!

GertSt, give-it a try (only 26kB on windows x86 version) : golfy.olympe.in/VelbusCmd.exe
For now, RELAY ON, RELAY OFF, RELAY TIMER, RELAY-BLINK, BLIND UP and BLIND DOWN are coded…
Your feedback is welcome.

[size=150]New version of VelbusCmd : 1.4[/size]
V1.3 from Monday was bugged on feedback. V1.4 is debugged (internally enhanced) and still include **feedback ** (I’ve added ERROR reading to existing TEMP reading)

1.4 New : velbuscmd server:192.168.168.250 port:8080 ERROR:$76-1
This command display TX error ; RX error ; Bus Off on any modules

1.3 New : velbuscmd server:192.168.168.250 port:8080 TEMP:$76-1
1.3 New : velbuscmd server:192.168.168.250 port:8080 CLEAR-TEMP:$76-1
These commands can read / reset MIN and MAX values from sensor VMB1TS

Download : golfy.free.fr/Velbus/VelbusCmd/VelbusCmd.exe (v1.4)
Download : golfy.olympe.in/VelbusCmd.exe (v1.4)

[quote]Known commands (and synonyms : translation could be added…)
Data.s “TIME-SET TIMESET SYNCHRONIZATION SYNCHRONISATION”
Data.s “UP BLIND-UP MONTER-VOLET OUVRIR OUVRIR-VOLET”
Data.s “STOP BLIND-STOP HALT ARRETER”
Data.s “DOWN BLIND-DOWN FERMER-VOLET DESCENDRE DESCENDRE-VOLET”
Data.s “ON ALLUMER RELAY-ON ALLUMER-RELAIS RELAY-ON SWITCH-ON”
Data.s “OFF ETEINDRE RELAY-OFF ETEINDRE-RELAIS SWITCH-OFF”
Data.s “BLINK CLIGNOTER ON-OFF”
Data.s “TIMER START RELAY-START RELAY-TIMER ACTIVER LANCER”
Data.s “DIM-UP DIMMER-UP SLOW-ON”
Data.s “PAUSE DELAY WAIT ATTENDRE”
Data.s “STATUS ETAT INFOS INFORMATION”
Data.s “RAW BRUT DIRECT PACKET FRAME”
Data.s “CLEAR-TEMP RESET-TEMP”
; – With Feedback (> 1.3) –
Data.s “TEMP SENSOR”
Data.s “GET-ERROR ERROR ERROR-COUNT ERREUR”
; – End of list –
Data.s “-*-”[/quote]

Display in console is here :

[code]G:\VelbusCmd>velbuscmd.exe server:192.168.168.250 port:8080 ERREUR:$06-1 TEMP:$76-1 TEMP:$82-1

VelbusCmd [1.4] Sending to [192.168.168.250-8080]

$06 ;0;0;0; (TX-RX-BOFF)
$76 ;16.5;13.5;23.5; (Tcur-Tmin-Tmax)
$82 ;Timeout; (Tcur-Tmin-Tmax)
----------------------------------------------------------[/code]

GertSt : sorry to use your post for this application and it update… hope it would help you and any Velbus user :slight_smile:

Hi Golfy,

I’m trying to use your velbusCmd.exe tool to dim lights and switch relays, but I’m confused with the params.

example: to put the 4th relay on at adress $21:

VelbusCmd.exe server:gerts-netbook port:3788 relay-off:$21 parameter:4
But it’s not working: I’m having this error back: Error 10 : Bad parameters : 4 (OFF)

How should I pass the address and relay nr?

Same question for dimming: how to pass the address and % dimmed?

It’s also ok for me to send raw packet data if that’s easier to explain.

thanks a lot!
Gert

Well, I’ve not writting anything on this program since long time but I feel the correct syntax should be :
VelbusCmd.exe server:gerts-netbook port:3788 relay-off:$21**-**4 (with a dash between address and part)

In the mid-time, I’ve created a new librarie for PureBasic users (with feedback functions) and a graphical program (VELTRON but it’s an alpha version).
Veltron would permit to scan for existing modules and then put them on a plan (or many floors) and then click on symbol would do an action.
However, at present time, part name’s must start with ‘**P-**kitchen’ for Plug or ‘**L-**kitchen’ for Lamp (default is Relay) : that way, Veltron can automaticaly choose the right symbol…
When it could be released as a beta, I’ll publish here :slight_smile:

[quote=“Golfy”]Well, I’ve not writting anything on this program since long time but I feel the correct syntax should be :
VelbusCmd.exe server:gerts-netbook port:3788 relay-off:$21**-**4 (with a dash between address and part)

In the mid-time, I’ve created a new librarie for PureBasic users (with feedback functions) and a graphical program (VELTRON but it’s an alpha version).
Veltron would permit to scan for existing modules and then put them on a plan (or many floors) and then click on symbol would do an action.
However, at present time, part name’s must start with ‘**P-**kitchen’ for Plug or ‘**L-**kitchen’ for Lamp (default is Relay) : that way, Veltron can automaticaly choose the right symbol…
When it could be released as a beta, I’ll publish here :)[/quote]

Maybe, some of you want to try Veltron ? it’s not a beta version but still not an alpha verison :slight_smile:
it’s available here : golfy.free.fr/Velbus/Veltron.zip
first edit Veltron.ini (for server and port settings)
Second, click on scan button (take 1~2 min)
third drag’n drop symbols from right to the plan

for automatic symbols, module name convention must be :
L-xxxxxxx for LAMP
PC-xxxxx or P-xxxx for PLUG (in french Prises Commandées)
M-xxxx for MOTOR (like Ventilation/Fan)

By default, symbol would be a simple rounded box (black=OFF, yellow=ON)
VMB4RYNO seems to be not detected for now…

Works better for french.
espeak is just a try for speaking : settings are french (not available in this version)

Hello everybody,

today I come back with an alpha version of VelbusCmd (tested at home with one script).

VelbusCmd can send command through IP server to Velbus modules. Syntax try to be smart, example for an IP server on host 1.2.3.4, TCP port equal to 3132, activate relay 1 of module hexadecimal address 37 :

VelbusCmd server:1.2.3.4 port:3132 on:$37-1

but now you can go further : use a file with extension .vcmd

VelbusCmd filename.vcmd

To give a try to this version, download it :
golfy.free.fr/Velbus/VelbusCmd/VelbusCmd.zip

It contains a vcmd script example and a text file with many modules. You can just have an help with

VelbusCmd -help

I’m waiting your feedback :slight_smile:

Je relance un coup le sujet : comment mettre à l’heure les modules avec ton petit programme velbuscmd ?
J’imagine que la commande time-set est faite pour cela, mais quel paramètre, sous quelle forme envoyer la date ?

[quote=“Daweb”]Je relance un coup le sujet : comment mettre à l’heure les modules avec ton petit programme velbuscmd ?
J’imagine que la commande time-set est faite pour cela, mais quel paramètre, sous quelle forme envoyer la date ?[/quote]

Dans mon post du 11 aout il y a la réponse : TIMESET=12318 (1er j, 23:18)

C’est le format du protocole Velbus, sous forme de caractères (5 au total, le premier pour le jour, les 2 suivants pour l’heure, et les 2 derniers pour les minutes) :slight_smile:

Merci pour l’info !
Mais quand tu dis le jour, on parle de jour sur une année ?
Donc 1 à 365 ?

Bon après avoir passé des heures, j’ai réussi à me configurer Openremote (grâce à ton serveur !) et j’ai pu programmer une mise à jour de l’heure.

hello,

If I’m understanding your message correctly, you wanted to update the time and date on your Velbus system.
For your information, OpenRemote updates the Velbus time and date every 6 hours

Bonjour, si je comprends bien votre message correctement, vous vouliez mettre à jour l’heure et la date sur votre système Velbus.
Pour votre information, OpenRemote met à jour le temps de Velbus et date toutes les 6 heures