BeeeOn / gateway

Next generation of the gateway firmware. Intended for production.
https://beeeon.github.io/gateway/
BSD 3-Clause "New" or "Revised" License
6 stars 9 forks source link

Installation support needed #8

Open franz123451 opened 4 years ago

franz123451 commented 4 years ago

Hi guys,merry Christmas. I tried to install Beeeon on my rasp. Unfortunately I did not managed to finish the installation. Here my probs A2CF36C2-1C91-4CA1-8454-883811399198 BA538F36-07F5-4BFB-A6DB-ECD02A5C7EE4 ![Uploading 2C1C47A9-E6EE-4177-848E-B14D2E5EE6A8.jpeg…]() C6F0B5D3-575A-42D9-9D9D-C88C6A5DF099

Thanks for your support

xbedna62 commented 4 years ago

Hi There, it looks that you do not have installed Poco library. Do you have installed Poco library (https://pocoproject.org)?

Thanks for your interest

franz123451 commented 4 years ago

Hi I installed the whole system again. But now I struggle with the following problem.

GatewayID.h:89:2: error: ‘BeeeOn::GatewayID::operator uint64_t() const’ cannot be overloaded with ‘BeeeOn::GatewayID::operator long long unsigned int() const’ operator uint64_t() const ^~~~ GatewayID.h:84:2: note: previous declaration ‘BeeeOn::GatewayID::operator long long unsigned int() const’ operator unsigned long long() const ^~~~

xbedna62 commented 4 years ago

Hi, to solve this error you have to edit file base/src/model/GatewayID.h. In this file comment lines 89-92. I have built the BeeeOn Gateway application on many various platforms but I have never seen this error.

Thank you for your report

franz123451 commented 4 years ago

Hi,

i quoted 2 lines out and it ran uptown 98% +

franz123451 commented 4 years ago

[ 98%] Linking CXX executable beeeon-gateway /usr/bin/ld: libBeeeOnGateway.a(AbstractCollector.cpp.o): in functionBeeeOn::AbstractCollector::~AbstractCollector()': AbstractCollector.cpp:(.text+0x64): undefined reference to BeeeOn::IQRFListener::~IQRFListener()' /usr/bin/ld: libBeeeOnGateway.a(AbstractCollector.cpp.o):(.rodata+0xe8): undefined reference totypeinfo for BeeeOn::IQRFListener' /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o): in function BeeeOn::IQRFListener::IQRFListener()': LoggingCollector.cpp:(.text._ZN6BeeeOn12IQRFListenerC2Ev[_ZN6BeeeOn12IQRFListenerC5Ev]+0x30): undefined reference tovtable for BeeeOn::IQRFListener' /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o): in function BeeeOn::DIWCastImpl<BeeeOn::LoggingCollector, BeeeOn::IQRFListener>::wouldCast(std::type_info const&)': LoggingCollector.cpp:(.text._ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_12IQRFListenerEE9wouldCastERKSt9type_info[_ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_12IQRFListenerEE9wouldCastERKSt9type_info]+0x30): undefined reference totypeinfo for BeeeOn::IQRFListener' collect2: error: ld returned 1 exit status make[2]: [src/CMakeFiles/beeeon-gateway.dir/build.make:95: src/beeeon-gateway] Fehler 1 make[2]: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build2“ wird verlassen make[1]: [CMakeFiles/Makefile2:203: src/CMakeFiles/beeeon-gateway.dir/all] Fehler 2 make[1]: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build2“ wird verlassen make: *** [Makefile:130: all] Fehler 2 make: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build2“ wird verlassen `

xbedna62 commented 4 years ago

Was in the output of cmake command written "IQRF support is disabled"?

franz123451 commented 4 years ago

I don't know really what's wrong. Now I tried this config -- Checking for one of the modules 'glib-2.0' -- Checking for one of the modules 'gio-unix-2.0' -- Checking for one of the modules 'bluez' -- Found OpenZWave: /usr/local/lib/libopenzwave.so
-- udev support is enabled -- Belkin Wemo support is enabled -- Vektiva support is enabled -- Conrad support is disabled -- Bluetooth support is disabled -- Bluetooth Avaibility support is disabled -- Bluetooth Low Energy Smart support is disabled -- Jablotron support is enabled -- Philips Hue support is enabled -- Virtual Devices support is enabled -- VPT support is enabled -- OpenZWave support is enabled -- Mosquitto support is disabled -- Testing Center support is enabled -- Internal air pressure sensor support is enabled -- Fitp support is disabled -- IQRF support is enabled -- Sonoff support is enabled -- Nemea features support is disabled -- Found Doxygen: /usr/bin/doxygen (found version "1.8.13") found components: doxygen missing components: dot -- Configuring done -- Generating done -- Build files have been written to: /home/pi/Desktop/Beeeon/gateway-master/build

And this leads to new problemshome/pi/Desktop/Beeeon/gateway-master/src/zwave/OZWNetwork.cpp:910:3: error: ‘CommandClasses’ has not been declared CommandClasses::GetName(cc) ^~~~~~ /home/pi/Desktop/Beeeon/gateway-master/src/zwave/OZWNetwork.cpp:911:2: error: could not convert ‘{cc, index, (& id)->OpenZWave::ValueID::GetInstance(), }’ from ‘’ to ‘BeeeOn::ZWaveNode::CommandClass’ }; ^ /home/pi/Desktop/Beeeon/gateway-master/src/zwave/OZWNetwork.cpp: In member function ‘virtual void BeeeOn::OZWNetwork::postValue(const BeeeOn::ZWaveNode::Value&)’: /home/pi/Desktop/Beeeon/gateway-master/src/zwave/OZWNetwork.cpp:1066:26: error: ‘Value’ has not been declared const string typeName = Value::GetTypeNameFromEnum(type); ^~~~~ make[2]: [src/CMakeFiles/BeeeOnZWaveOZW.dir/build.make:76: src/CMakeFiles/BeeeOnZWaveOZW.dir/zwave/OZWNetwork.cpp.o] Fehler 1 make[2]: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build“ wird verlassen make[1]: [CMakeFiles/Makefile2:408: src/CMakeFiles/BeeeOnZWaveOZW.dir/all] Fehler 2 make[1]: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build“ wird verlassen make: *** [Makefile:130: all] Fehler 2 make: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build“ wird verlassen

xbedna62 commented 4 years ago

For the RPi I would recommend you to enable udev, Belkin Wemo, Vektiva, Bluetooth, Bluetooth Avaibility, Bluetooth Low Energy Smart, Philips Hue, Mosquitto, Testing Center, IQRF and Sonoff. For the ZWave, IQRF and Jablotron you need special dongles. And also for the Bluetooth you need dongle if your RPi does not have Bluetooth module.

For the first configuration when the IQRF was disabled I found bug which cause the problem. But if you enable IQRF there should not be any problem. As soon as possible I will fix the bug. Thank you for your observations.

franz123451 commented 4 years ago

I try this config now. I activated Jablotron too, because this is what I need. I brought a dongle from bigclowniot, hoppefully right.

100%] Building CXX object src/CMakeFiles/beeeon-gateway.dir/main.cpp.o [100%] Linking CXX executable beeeon-gateway /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o): in functionBeeeOn::LoggingCollector::LoggingCollector()': LoggingCollector.cpp:(.text+0xcc): undefined reference to vtable for BeeeOn::LoggingCollector' /usr/bin/ld: LoggingCollector.cpp:(.text+0xd0): undefined reference tovtable for BeeeOn::LoggingCollector' /usr/bin/ld: LoggingCollector.cpp:(.text+0xd4): undefined reference to vtable for BeeeOn::LoggingCollector' /usr/bin/ld: LoggingCollector.cpp:(.text+0xd8): undefined reference tovtable for BeeeOn::LoggingCollector' /usr/bin/ld: LoggingCollector.cpp:(.text+0xdc): undefined reference to vtable for BeeeOn::LoggingCollector' /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o):LoggingCollector.cpp:(.text+0xe0): more undefined references tovtable for BeeeOn::LoggingCollector' follow /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o): in function BeeeOn::DIWCastImpl<BeeeOn::LoggingCollector, BeeeOn::IQRFListener>::isSame(BeeeOn::DIWrapper const&)': LoggingCollector.cpp:(.text._ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_12IQRFListenerEE6isSameERKNS_9DIWrapperE[_ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_12IQRFListenerEE6isSameERKNS_9DIWrapperE]+0x4c): undefined reference totypeinfo for BeeeOn::LoggingCollector' /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o): in function BeeeOn::DIWCastImpl<BeeeOn::LoggingCollector, BeeeOn::CommandDispatcherListener>::isSame(BeeeOn::DIWrapper const&)': LoggingCollector.cpp:(.text._ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_25CommandDispatcherListenerEE6isSameERKNS_9DIWrapperE[_ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_25CommandDispatcherListenerEE6isSameERKNS_9DIWrapperE]+0x4c): undefined reference totypeinfo for BeeeOn::LoggingCollector' /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o): in function BeeeOn::DIWCastImpl<BeeeOn::LoggingCollector, BeeeOn::PhilipsHueListener>::isSame(BeeeOn::DIWrapper const&)': LoggingCollector.cpp:(.text._ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_18PhilipsHueListenerEE6isSameERKNS_9DIWrapperE[_ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_18PhilipsHueListenerEE6isSameERKNS_9DIWrapperE]+0x4c): undefined reference totypeinfo for BeeeOn::LoggingCollector' /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o): in function BeeeOn::DIWCastImpl<BeeeOn::LoggingCollector, BeeeOn::HciListener>::isSame(BeeeOn::DIWrapper const&)': LoggingCollector.cpp:(.text._ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_11HciListenerEE6isSameERKNS_9DIWrapperE[_ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_11HciListenerEE6isSameERKNS_9DIWrapperE]+0x4c): undefined reference totypeinfo for BeeeOn::LoggingCollector' /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o): in function BeeeOn::DIWCastImpl<BeeeOn::LoggingCollector, BeeeOn::ZWaveListener>::isSame(BeeeOn::DIWrapper const&)': LoggingCollector.cpp:(.text._ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_13ZWaveListenerEE6isSameERKNS_9DIWrapperE[_ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_13ZWaveListenerEE6isSameERKNS_9DIWrapperE]+0x4c): undefined reference totypeinfo for BeeeOn::LoggingCollector' /usr/bin/ld: libBeeeOnGateway.a(LoggingCollector.cpp.o):LoggingCollector.cpp:(.text._ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_19DistributorListenerEE6isSameERKNS_9DIWrapperE[_ZN6BeeeOn11DIWCastImplINS_16LoggingCollectorENS_19DistributorListenerEE6isSameERKNS_9DIWrapperE]+0x4c): more undefined references to typeinfo for BeeeOn::LoggingCollector' follow collect2: error: ld returned 1 exit status make[2]: *** [src/CMakeFiles/beeeon-gateway.dir/build.make:102: src/beeeon-gateway] Fehler 1 make[2]: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build“ wird verlassen make[1]: *** [CMakeFiles/Makefile2:147: src/CMakeFiles/beeeon-gateway.dir/all] Fehler 2 make[1]: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build“ wird verlassen make: *** [Makefile:130: all] Fehler 2 make: Verzeichnis „/home/pi/Desktop/Beeeon/gateway-master/build“ wird verlassen

xbedna62 commented 4 years ago

From this output I do not know what happened. Maybe the easiest way is to delete line 121 from the file src/CMakeLists.txt.

franz123451 commented 4 years ago

Removing line 121 solved the prob. pi@raspberrypi:~/Desktop/Beeeon/gateway-master $ build/src/beeeon-gateway -c conf/gateway-startup.ini loaded configuration /home/pi/Desktop/Beeeon/gateway-master/conf/config.d/logging-loggers.ini Application 19:35:28.415 31824 [Notice] version fatal: Kein Git-Repository (oder irgendeines der Elternverzeichnisse): .git Application 19:35:28.415 31824 [Notice] Poco library 1.9.0-0 (headers 1.9.0-0) Application 19:35:28.415 31824 [Notice] OS Linux (Linux 4.19.75-v7l+) Application 19:35:28.416 31824 [Notice] Machine armv7l (cores: 4) BeeeOn::DependencyInjector 19:35:28.419 31824 [Notice] successfully created applicationInstanceChecker BeeeOn::SingleInstanceChecker 19:35:28.419 31824 [Information] application instance named 'beeeon-gateway' would start BeeeOn::DependencyInjector 19:35:28.420 31824 [Notice] successfully created gatewayInfo BeeeOn::DependencyInjector 19:35:28.423 31824 [Error] hook 'done' failed for gatewayInfo BeeeOn::DependencyInjector 19:35:28.424 31824 [Error] File not found: Private key file: /etc/ssl/beeeon/private/beeeon_gateway.key Application 19:35:28.424 31824 [Critical] File not found: Private key file: /etc/ssl/beeeon/private/beeeon_gateway.key

franz123451 commented 4 years ago

Could you please so kind to tell me how I can generate the certs?

xbedna62 commented 4 years ago

Try this config. You also have to disable all services which you disabled in CMakeLists.txt.

[application] di.runner = main instance.id = beeeon-gateway instance.mode = fail   [psdev] enable = no path = /sys/devices/platform/soc@01c00000/1c2b400.i2c/i2c-2/2-0077/iio:device0/in_pressure_input vendor = BeeeOn refresh = 30 s unit = kPa   [belkinwemo] enable = yes upnp.timeout = 5 s http.timeout = 3 s refresh = 10 s   [vektiva] enable = yes subscribeTopics = ion/# receiveTimeout = 1 s mqtt.host = localhost mqtt.port = 1883 mqtt.qos = 0 mqtt.clientID = VektivaClient mqtt.statusClientID = VektivaStatusClient   [conrad] enable = no cmdZmqIface = tcp://localhost:7778 eventZmqIface = tcp://localhost:7779   [bluetooth] hci.impl = dbus statistics.interval = 10 s le.scanTime = 5 s le.maxAgeRssi = 90 s classic.artificialAvaibilityTimeout = 90 s   reporting.enable = no   availability.enable = yes availability.modes = classic, le availability.refresh = 30 s   [exporter] pipe.enable = no pipe.path = ${application.configDir}../beeeon_pipe pipe.format = CSV pipe.csv.separator = ;   mqtt.enable = yes mqtt.host = localhost mqtt.port = 1883 mqtt.topic = BeeeOnOut mqtt.qos = 0 mqtt.clientID = Gateway mqtt.format = JSON   gws.tmpStorage.rootDir = ${application.configDir}../gws.cache gws.tmpStorage.sizeLimit = 8 1024 1024 gws.tmpStorage.disableGC = 0 gws.tmpStorage.neverDropOldest = 0 gws.tmpStorage.ignoreIndexErrors = 1 gws.tmpStorage.impl = basicJournal gws.activeCount = 32 gws.saveTimeout = 10 m gws.saveThreshold = 1024 gws.impl = optimistic   [testing] center.enable = yes center.pairedDevices = center.tcp.address = 127.0.0.1 center.tcp.port = 6000   collector.enable = no   [nemea] collector.enable = no   [gateway] id.enable = yes id = 1475719977567633   [gws] enable = yes host = ant-work.fit.vutbr.cz port = 8012 pollTimeout = 250 ms receiveTimeout = 3 s sendTimeout = 1 s retryConnectTimeout = 1 s maxMessageSize = 4096 keepAliveTimeout = 30 s outputsCount = 4 resendTimeout = 10 s   [ssl] enable = yes certificate = key = authority = verify_level = none   [credentials] file = ${application.configDir}../credentials.properties configuration.root = credentials save.delay = 30 m crypto.passphrase = If Purple People Eaters are real where do they find purple people to eat? crypto.algorithm = aes256   [jablotron] enable = yes unpairErasesSlot = 0 eraseAllOnProbe = 0 registerOnProbe =   [vdev] ini = ${application.configDir}virtual-devices.ini enable = no   [vpt] enable = no ping.timeout = 20 ms http.timeout = 3 s refresh = 10 s netif.blacklist = tap* max.msg.size = 10000 path = /values.json port = 80 min.net.mask = 255.255.255.0   [zwave] enable = no impl = ozw   ;Generic Z-Wave to BeeeOn types mappings generic.typesMapping.path = ${application.configDir}types-mapping.xml ;Periodic interval for sending of statistics statistics.interval = 10 s ;List of controllers to reset when seen for the first time controllers.reset = ;Path to save user's data, store Z-Wave network config data and state ozw.userPath = /var/cache/beeeon/gateway/openzwave/ ;Path to xml config file for openzwave library ozw.configPath = /etc/openzwave/ ;For old devicces, detect status changes ozw.pollInterval = 1 s ;Comma-separated list of 16 bytes representing encryption key ozw.networkKey =   [hotplug] pipe.path =${application.configDir}../gateway.hotplug impl = udev   [philipshue] enable = yes upnp.timeout = 5 s http.timeout = 3 s refresh = 10 s   [fitp] enable = no config.path = ${application.configDir}/../fitp.devices noise.min = 15 noise.max = 30 bitrate = 5 band = 0 channel = 15 power = 0 tx.retries = 4   [blesmart] enable = no device.timeout = 10 s refresh = 120 s numberOfExaminationThreads = 3 hci.impl = dbus   [sonoff] enable = yes maxLastSeen = 600 s subscribeTopics = sonoffsc/# mqtt.host = localhost mqtt.port = 1883 mqtt.qos = 0 mqtt.clientID = SonoffClient   [tool] credentials.cmd =   [cache] devices.impl = fs devices.dir = ${application.configDir}../devices.cache   [logging] channels.console.class = ColorConsoleChannel channels.console.pattern = %s %H:%M:%S.%i %P [%p] %t   channels.ozwave.class = FormattingChannel channels.ozwave.channel = split channels.ozwave.pattern = <node-%[node]> %t   channels.remote.class = RemoteSyslogChannel channels.remote.loghost = 127.0.0.1:9999 channels.remote.name = beeeon-gateway channels.remote.format = rfc5424 channels.remote.facility = LOCAL0   channels.async_remote.class = AsyncChannel channels.async_remote.channel = remote   channels.split.class = SplitterChannel channels.split.channels = console

channels.split.channels = console, async_remote

  [iqrf] enable = yes subscribeTopics = Iqrf/DpaResponse publishTopic = Iqrf/DpaRequest receiveTimeout = 1 s refreshTime = 60 s refreshTimePeripheralInfo = 300 s devicesRetryTimeout = 300 s coordinatorReset = no typesMapping.path = ${application.configDir}types-mapping.xml   mqtt.host = localhost mqtt.port = 1883 mqtt.qos = 0 mqtt.clientID = IQRFClient

jviki commented 4 years ago

Hi, you can run the software both with or without certificates, depends on your intentions. We are used to identify each gateway by an ID and that ID can be specified directly via this setting:

[gateway]
id.enable = yes
id = 1475719977567633

or from certificate's common name. You can generate certificate by using script tools/gateway-gencert.sh. If you have your certificate authority, you can use it here. Otherwise, you can generate a self-signed certificate (default setting when you do not provide any other options). Steps:

$ ID=`tools/gateway-genid.py`
$ tools/gateway-gencert.sh -G ${ID}

Note that you should edit the lines 1-8 of tools/gateway-gencert.sh for yourself.

For testing and playing, no certificates are necessary.

franz123451 commented 4 years ago

thanks. do you know this fault message ? BeeeOn::DIDaemon::UnhandledErrorHandler 11:59:25.411 8314 [Error] Null pointer BeeeOn::DIDaemon::UnhandledErrorHandler 11:59:25.411 8314 [Critical] Null pointer

BeeeOn::DeviceStatusFetcher 12:19:08.784 8509 [Error] Invalid access: write: Bad file descriptor BeeeOn::JablotronDeviceManager 12:49:41.436 9272 [Error] Invalid access: write: Bad file descriptor BeeeOn::JablotronController 14:16:42.709 11254 [Error] Timeout: probe failed, version response was not received

xbedna62 commented 4 years ago

BeeeOn::DIDaemon::UnhandledErrorHandler 11:59:25.411 8314 [Error] Null pointer BeeeOn::DIDaemon::UnhandledErrorHandler 11:59:25.411 8314 [Critical] Null pointer

BeeeOn::DeviceStatusFetcher 12:19:08.784 8509 [Error] Invalid access: write: Bad file descriptor BeeeOn::JablotronDeviceManager 12:49:41.436 9272 [Error] Invalid access: write: Bad file descriptor

These error messages should not have any big inpact I think.

But this message: BeeeOn::JablotronController 14:16:42.709 11254 [Error] Timeout: probe failed, version response was not received

It looks that the discovering process of devices on Jablotron network found some device but the device is probably not supported by BeeeOn Gateway.

franz123451 commented 4 years ago

That are bad news. I brought the Bigclown Radio dongle and thought that is the right one.i can’t find the Turris dongle anywhere.