question

ldoppler avatar image
ldoppler asked

Webserver on Raspberry Pi running Venus OS

Hello,

I have a quite simple question concerning the Venus OS on the Raspberry Pi. I checked the wiki and forum and I've not seen a answer already.


So my question is: Is it possible to run a server on the Venus OS running on a Raspberry Pi (Apache, Nginx, Python server or something similar...)


Best regards


Luc

Venus OSRaspberry Pi
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

2 Answers
wkirby avatar image
wkirby answered ·

What is it that you want to do?
There is already a webserver running by default on any Venus device. The standard web console is running on port 80.

4 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

ldoppler avatar image ldoppler commented ·

Hi,

By the standard web console do you mean the victron interface ?

My goal is to use a webserver which would display some graphs about my system (some similar to those I can get on the VRM, some other stuff too, and some text info too). If it is possible to display it on another port using the webserver already running the victron interface it would be ok too.


Thanks in advance

0 Likes 0 ·
laurenceh avatar image laurenceh ldoppler commented ·

Simple to do as the hiawatha server is already running and will serve anything.

I have done this already and have graphs and other interfaces running. You can simply add files to the default default web pages location which is /var/www/venus. In fact I put all my pages in a directory called ui. So a http fetch

http://<ip address of Rpi>/ui/page.html will return the contents of the page.

I have also enabled python to be served from the server the config is /etc/hiawatha/hiawatha.conf simply uncomment the python line and python will then run (files called xxx.py etc.) and return content.


Things I have written already include:

dbus-i2c to put data from i2c bus onto the dbus. This is mainly used to interface to a temperature and humidity sensor for cabin conditions on my narrowboat.

Extension to the i2c dbus interface to include temperatures from the three additional analogue interfaces on my adc onto the dbus (ones not interfaced by Venus os)

A server python script to return any arbitrary sets of dbus data to the client. this is all pretty much ajax based so as not to put too much load on the Venus os / Rpi and to doo as much processing as possible on the client end.

A dbus local logger. This stores data regularly from the dbus into csv files which can then be downloaded into the client and parsed into jquery flot to render graphs.



0 Likes 0 ·
ldoppler avatar image ldoppler laurenceh commented ·

thanks for the tip !
For now i'm going with the Raspbian jessie + venus packages solution. If I have enough time before the end of the project, i'll try your solution

0 Likes 0 ·
laurenceh avatar image laurenceh ldoppler commented ·

Mine is much simple because basically it means- do nothing just use it.

0 Likes 0 ·
lklmenterprises avatar image
lklmenterprises answered ·

It is just running the standard Raspberry Pi OS - which is debian based.

All you would need to do is setup with a Virtual server - potentially inclusive of setting up a Reverse Proxy on it if you wish to enable accessing the standard Portal and your own Portal using SSL and named hosts, etc.

I'm looking at doing similar to my Pi3B+ install which I recently commissioned - Might be able to give a rough answer later this evening.

My need to do it is so I can hook into the GPIO for some other monitoring as well as using the SPI to interface with the vehicle CAN bus.

9 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

ldoppler avatar image ldoppler commented ·

Thanks ! I would be glad to hear if it worked for you !

I also forgot to mention it but i would also need to use the GPIO (for serial communication, I2C,etc...)

Are you sure it is the standard Raspberry Pi OS ? (according to victron's wiki it is debian based) Because when i checked many packages were missing (even systemd which is quite helpful....)

0 Likes 0 ·
lklmenterprises avatar image lklmenterprises ldoppler commented ·

Sorry when I say standard - as in not some other Distro...but yes it is cut down, which is pretty standard for Custom IoT implementations. Not impossible to drag more in there, but you have to be aware of potential performance drops, etc...

I would always grab your SD card out of a Working setup (such as mine) - back it up to an installable image, just in case you need to revert anything. Much like taking a VM snapshot.

The Web server running is Hiawatha - which maybe co-incidentally or not was written by a Dutchman - Hugo Leisink

Not sure what your tech level is at - but will try document what I can as I go

0 Likes 0 ·
ldoppler avatar image ldoppler lklmenterprises commented ·

Okay, it's my first time dealing with custom IoT linux implementation, so i'm still discovering some stuff. Concerning the performances, I don't need neither a real time system nor something too powerful, so it should be ok.


Concerning my tech level, i'm an engineering student (mostly focused on mechanics for my studies) but i have some experience with linux systems (raspian, ubuntu and a little bit with arch) but no IoT custom implementations...

0 Likes 0 ·
lklmenterprises avatar image lklmenterprises ldoppler commented ·

So far I can see it is cut down even inclusive of dpkg and apt-get missing...So that is a pretty big hurdle to being able to configure anything Extra...

For me the aim would be setting up Nginx or apache Reverse Proxy to enable pointing to either server. This would mean being able to avoid any major changes to the Victron interface. Alternatively as you indicate, just running on a different port

I notice one thing - there is a VNC server that runs against a websocket on port 81 - this indicates to me that when you use the Remove Control from the VRM it is using a reverse tunning from the VRM connection being made by the device to VNC back to the "Console" being formed by the VNC connection > Web socket which is running a set screen size of a Fast-CGI webapp.

0 Likes 0 ·
Show more comments