Velserver

Hallo,

Ik ben een tijdje geleden begonnen met het koppelen van velbus aan openHAB.
Ik vond zo direct geen werkbare oplossing en daarom ben ik begonnen met zelf iets te schrijven.
Het resultaat is een set van perl scripts dat de boodschappen op de bus kan ontcijferen en verwerken. Via een webservice kunnen de gegevens opgevraagd worden. De koppeling met openHAB Is via de REST API van openHAB.

Voor wie interesse heeft, de code is hier terug te vinden:

De code is specifiek voor openHAB gemaakt, maar kan ook gebruikt worden voor integratie met andere software. Via een webservice kan de status uitgelezen worden en commando’s doorgestuurd worden.

Er wordt nog volop aan deze code verder geschreven. Ook de documentatie moet verder geschreven worden.
Wie interesse heeft kan me altijd contacteren.

Stef

2 Likes

Die openHAB ziet er wel heel proper uit. Die ga ik ook nog even testen. Ben nu aan het prullen met openRemote, maar het voelt allemaal zo amateuristisch en samen geknutseld aan.

Laat maar iets weten als ik kan helpen met openHAB.

Stef

dag Stef,
ik heb een tijdje geleden openremote en velserv aan het werk gekregen op een Raspberry pi (na veel gekl…) maar nu recent krijg ik geen verbinding meer met de velserver, daar ik weer geen avond of twee wil …, ben ik op dit toppic uitgekomen over openHAB en dit lijkt wel interessant.
Ik ben dan ook onmiddellijk aan de slag gegaan met de installatie ervan , maar hier stoot ik ook al op een probleempje .


ik hoop dat je me verder kan helpen

groeten steven

Ik had dit gemailed, maar blijkbaar is dat er niet doorgekomen …

Voor openhab kan je best deze instructies volgen:
http://docs.openhab.org/installation/rasppi.html

Ofwel neem je de openHABian image en die flash je op de SD kaart. Dan heb je alles in 1 maar verlies je wel je huidige data vna je SD kaart.

Ofwel pas je de bestaande installatie van linux op je PI aan en voeg je de repository toe van openhab.
Zie daarvoor
http://docs.openhab.org/installation/linux.html#package-repository-installation

Ikzelf heb het tweede gedaan en openhab bij op een bestaande PI geĂŻnstalleerd.
Laat maar iets weten als ik kan helpen!

Stef

Goedemorgen
Ik probeer ook de integratie met velserver & openhab te implementeren.
Maar ik heb een probleempje met mijn sitemap.

Wat ik tot nu toe gedaan heb is het volgende:

Gekeken of deze file bestaat en up to date is
/home/velbus/velserver/etc/openHAB.cfg
Content:
GROUP_G_DIMMERS_ALL = %^Dimmer.+
GROUP_G_BLINDS_ALL = %^Blind.+
GROUP_G_TEMPERATURE_ALL = %^Temperature.+
GROUP_G_HEATER_ALL = %^Heater.+
GROUP_G_RELAY_ALL = %^Relay.+
GROUP_G_COUNTER_ALL = %^Counter.+ %^Divider.+
GROUP_G_COUNTERCURRENT_ALL = %^CounterCurrent.+
GROUP_G_BUTTON_ALL = %^Button.+
GROUP_G_ALL = %.

Gekeken of deze file bestaat en up to date is
/etc/openhab2/items/velbus_group.items
Content:
Group G_DIMMERS_ALL
Group G_TEMPERATURE_ALL
Group G_HEATER_ALL
Group G_BUTTON_ALL
Group G_RELAY_ALL
Group G_BLINDS_ALL “Blinds”
Group G_COUNTER_ALL
Group G_COUNTERCURRENT_ALL
Group G_ALL

Als ik dan een vb. neem uit mijn velbus.items dan zie ik dit
Switch Relay_20_01 “V Berging” (G_ALL,G_RELAY_ALL)

En om te testen heb ik dan een sitemap gemaakt met deze content
sitemap demo label=“My home automation” {
Frame label=“Date” {
Text item=Date
}
Frame label=“Demo” {
Switch item=Relay_20_02 icon=“light”
Text item=Woonkamer label=“Woonkamer [%.1f °C]”
Group item=Heating
}
}

Maar ik kan die relay niet aantsturen.
Wat doe ik verkeerd of wat ben ik vergeten :slight_smile:
Alvast bedankt

Hi @Stef_Coene, ik hoop dat ik dit issue mag bumpen.
Ik kom sinds kort in contact met een velbus installatie en het zou gemakkelijk zijn moesten we deze via een API kunnen aanspreken. Ik wil niet echt een openHAB opzetten, liefst zou ik gewoon de webservice aanspreken om calls te kunnen doen om relais aan te sturen.

Ik heb al een “TCP server for Velbus” in gang gekregen, waarop ik kan connecteren met Velbuslink.
Daarna heb ik geprobeerd om adhv jouw “Velserver Information” Google doc de installatie te doen van Velserver. (op een Raspberry pi). Ik had nog nooit met perl / apache gewerkt dus ik had het moeilijk om jouw documentatie te begrijpen. Maar dan vond ik de uitleg op vanop de wiki. Deze heb ik uitgevoerd, behalve de configuratie van OpenHAB.

Maar de handleiding zegt niet echt hoe je de services kan starten of testen. Ik heb al een gesurfed naar http://ipvandepi/velserver/service.pl maar dit geeft geen pagina.
Ik heb de indruk dat ik nog iets moet starten ofzo?

Ik deed ook al eens een reboot.
Heb je nog tips?

Hallo,

Het kan zonder apache, dat is gemakkelijker.
En ja, de documentatie kan beter :wink:

Er zouden 2 zaken moeten draaien. Deze kan je als test gewoon op de command line starten.

Dit is de eerste:
/home/velbus/velserver/bin/logger.pl
Dit verbindt met die TCP server en dumpt normaal op je scherm alles wat er via de bus langs komt. Dit zou al zeker iets moeten doen.

Het andere commando is
/home/velbus/velserver/bin/webserver.pl
Dit gaat niet veel zeggen, behalve dat het een webserver start. Het is naar die webserver waar je naartoe kan surfen met je browser en die de API aanbiedt die je nodig hebt.

Probeer bovenstaande commando’s eens uit te voeren en laat me het resultaat weten.

Kwestie van API, wat wil je juist doen? Want je kan wel gemakkelijk iets sturen naar de Velbus installatie. Maar als er op de bus zelf iets gebeurd (iemand drukt op een knop of zo), dan kunnen mijn scripts dat (voorlopig) alleen forwarden naar OpenHAB.
Met wat wil je integreren?

Stef

Hi Stef,

Bedankt alvast voor je antwoord, en voor het werk aan dit project.
Ik heb inderdaad al eens geprobeerd om deze te starten, ik deed het net nog eens maar kreeg dezelfde foutmelding.
Bij deze

pi@raspberrypi:~ $ /home/velbus/velserver/bin/logger.pl
Can’t locate Hash/Merge.pm in @INC (you may need to install the Hash::Merge module) (@INC contains: /home/velbus/velserver/lib /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /home/velbus/velserver/lib/Velbus.pm line 7.
BEGIN failed–compilation aborted at /home/velbus/velserver/lib/Velbus.pm line 7.
Compilation failed in require at /home/velbus/velserver/bin/logger.pl line 13.
BEGIN failed–compilation aborted at /home/velbus/velserver/bin/logger.pl line 13.
pi@raspberrypi:~ $ /home/velbus/velserver/bin/webserver.pl
Can’t locate Hash/Merge.pm in @INC (you may need to install the Hash::Merge module) (@INC contains: /home/velbus/velserver/lib /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /home/velbus/velserver/lib/Velbus.pm line 7.
BEGIN failed–compilation aborted at /home/velbus/velserver/lib/Velbus.pm line 7.
Compilation failed in require at /home/velbus/velserver/bin/webserver.pl line 11.
BEGIN failed–compilation aborted at /home/velbus/velserver/bin/webserver.pl line 11.

Ik heb al zo wat zitten zoeken op die foutmelding en op “perl merge modules” enzo maar niets wat me duidelijk leek.

Ivm het gebruik van de API: het betreft een bedrijfsgebouw waar we graag gemakkelijk vanop afstand de lichten kunnen bedienen, er hangen overal camera’s en zouden graag een dashboard-website maken waar we alle lichten gemakkelijk aan/uit mee kunnen schakelen. Voor zover mijn kennis van Velbus gaat is dit niet iets dat ik kan aanspreken vanuit velbuslink software ofzo.

Bedankt voor de hulp.

Perl werkt met modules voor allerhande extra functionaliteit en je mist er eentje.
Deze kan je installeren met:
apt-get install libhash-merge-perl

Daarna nog eens proberen.

Stef

Hi Stef, bedankt voor je hulp.
Nadat ik die libhash-merge-perl module had geinstalleerd kreeg ik de melding dat de “Convert::Color module” nog ontbrak. Nadat die geinstalleerd was kreeg hij geen connectie met de MySQL DB. Ik heb dan effe manueel die de velbus DB aangemaakt. En dan de export.sql file gerestored in die database. Daarna kon ik inderdaad opstarten.

Ik heb echter nog één vraagje, ik zie in de OpenHAB items file de info van al mijn modules. Daaruit denk ik af te leiden dat “http://localhost/velserver/service.pl?Item=Relay_A1_01&Action=Set&Value=%2$s” de URL is om relais 1 van module A1 aan/uit te schakelen (localhost te vervangen door IP vd server).
Maar ik weet niet wat ik bij de value moet invullen?
Ik ben al overal gaan zoeken en veel mogelijkheden getest, zonder gevolg, zou je mij daarmee nog even op weg kunnen helpen?

Bedankt voor de fijn gemaakte software, draait goed zo te zien.

Gr, JI

Het kan ook zonder MySQL DB indien nodig. Dan moet je etc/mysql.cfg verwijderen.
Er wordt dan een Berkeley DB op disk aangemaakt.

Voor de url, je kan kijken in de apache logfile als je via apache werkt of log/webserver.log als je de ingebouwde webserver gebruikt en kijken wat openHAB stuurt.

Voor de relais is het ON en OFF.

Stef

Hallo, welke package heb je moeten installeren voor de convert::color.

Groeten,
Mathieu

Voor Ubuntu / Debian kan je dat gemakkelijk zoeken:
apt-cache search convert::color:
libconvert-color-perl - Perl module for color space conversions and named lookups
libconvert-color-xterm-perl - indexed colors used by XTerm

Dus apt install libconvert-color-perl

Stef

Beste Stef,

bedankt voor de feedback, de logger draait ondertussen de webserver krijg ik wel een foutmelding.

pi@raspberrypi:/home/velbus/velserver $ sudo ./bin/webserver.pl
Web Server started, server address: 0.0.0.0, server port: 88
Use of uninitialized value in subroutine entry at /usr/share/perl/5.28/IO/Socket/IP.pm line 541, line 84.
Thread 1 terminated abnormally: Bad arg length for Socket::sockaddr_family, length is 0, should be at least 2 at /usr/share/perl/5.28/IO/Socket/IP.pm line 541, line 84.

Kan je eens de file /etc/hosts nakijken?
Er zou een entry moeten instaan voor localhost:
127.0.0.1 localhost

En ook eentje voor het ip en de hostnaam van je PI.

Stef

Dit is de inhoud van de hosts file.

2019-11-05_05-09-25 lo 2D=?? E6=Unknown ::
No module type found for this address
Ch=2D_: ChannelType=, Name=Temperature, Value=21.62, openHAB=$Value
^C
pi@raspberrypi:/home/velbus/velserver/bin $ sudo nano /etc/hosts
GNU nano 3.2 /etc/hosts

127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

127.0.1.1 raspberrypi

Moet ik daar die 127.0.1.1 niet veranderen naar het echte adres van de pi?

Is je probleem ondertussen opgelost?

Het kan inderdaad nooit kwaad om het IP adres te gebruiken bij de hostnaam.

Stef

Nee nog geen oplossing.

Al alles bekeken op internet omtrent deze melding. Maar nog niet opgelost

ze spreken dat het misschien komt door de ipv6 maar als ik deze uitschakel is er geen verandering.

Ik moet nog eens verder zoeken.

De apache oplossing krijg ik ook niet meteeb werkende.

Mathieu

Als je het ziet zitten en me toegang wilt geven met teamviewer, dan kijk ik wel eens mee…

Stef