Error : Cannot read property 'temperature' of undefined
which I can trace back to line 82 of vortoMappingEngine.js.{"currentMeasured":"82.4f"}
I can certainly try but I'm still confused about how it is supposed to work with primitive types.
I've changed the model to :
using vorto.private.kiklug.testing.TestFuncBlock;0.0.1
infomodel Test {
functionblocks {
temperature as TestFuncBlock
}
}
With a new self-made functionblock:
functionblock TestFuncBlock {
status{
mandatory temperature as float
}
}
Afaik this should work since float is a primitive type, right?
Hey @demetz
We have scheduled the 0.13 release for end of August and are currently working on the 1.0 release, which is scheduled for end of 2020.
The most pressing issues are related to stabilizing the repository, to get it ready for the 1.0. So mostly the issues labeled as bug and enhancement.
Another ongoing topic is that we are collecting input for new features of vortolang.
Hey,
we have a lot of LoRaWAN sensor data coming in, for which we are creating digital twins in ditto. Besides the sensor data, we also want to persist some metadata, mainly the signal strength. Therefore, we are using a functionblock LoraWAN
. My problem is, that a signal can be picked up by multiple LoRa Gateways simultaneously. In that case, we want to save the signal strength from each gateway.
Is the usage of multiple
valid within a functionblock for a datatype?
functionblock LoRaWAN {
status {
mandatory devEUI as string with {measurementUnit: othermo.Unit.text} "devEUI of device"
**optional multiple Gateway as LoRaGateway**
optional frequency as float with {measurementUnit: othermo.Unit.Hz} "frequency"
optional dataRate as float with {measurementUnit: othermo.Unit.number} "Data Rate / spreading factor"
optional adaptiveDataRate as boolean with {measurementUnit: othermo.Unit.state} "adr: adjustment of data rate activated?"
optional frameCounter as float with {measurementUnit: othermo.Unit.number} "fCnt: Number of frames received"
optional batteryStatus as float with {measurementUnit: othermo.Unit.percent} "Current battery charge in %"
optional batteryVoltage as float with {measurementUnit: othermo.Unit.V} "Current battery voltage"
optional linkMargin as float with {measurementUnit: othermo.Unit.dB} "lora status message: current margin of link"
}
}
with
entity LoRaGateway {
mandatory gatewayId as string
optional uplinkId as string
optional signalStrength as float with {measurementUnit: othermo.Unit.dBm} "rssi"
optional signalNoiseRatio as float with {measurementUnit: othermo.Unit.dB} "SNR"
}
Thanks!
"features": {
"lorawan" : {
"definition": ["othermo:LoRaWAN:1.1.0"],
"properties": {
"status": {
"devEUI" : "",
"Gateway_id1" : {
"gatewayId" : "id1",
"uplinkId" : "",
"signalStrength" : 0.0,
"signalNoiseRatio" : 0.0
},
"Gateway_id2" : {
"gatewayId" : "id2",
"uplinkId" : "",
"signalStrength" : 0.0,
"signalNoiseRatio" : 0.0
},
"Gateway_id3" : {
"gatewayId" : "id3",
"uplinkId" : "",
"signalStrength" : 0.0,
"signalNoiseRatio" : 0.0
},
"signalStrength" : 0.0,
"signalNoiseRatio" : 0.0,
"frequency" : 0.0,
"dataRate" : 0.0,
"adaptiveDataRate" : false,
"frameCounter" : 0.0,
"batteryStatus" : 0.0,
"batteryVoltage" : 0.0,
"linkMargin" : 0.0
}
}
}
}
Hey @demetz
Yes the usage of multiple
within a Functionblock with a Datatype is valid. The translation into Ditto would be a bit different however - instead of Gateway_id1, Gateway_id2, ... the proper translation would be using an array, but the logic you applied is indeed valid. It should look like this:
"features": {
"lorawan" : {
"definition": ["othermo:LoRaWAN:1.1.0"],
"properties": {
"status": {
"devEUI" : "",
"gateway" : [{
"gatewayId" : "id1",
"uplinkId" : "",
"signalStrength" : 0.0,
"signalNoiseRatio" : 0.0
},
{
"gatewayId" : "id2",
"uplinkId" : "",
"signalStrength" : 0.0,
"signalNoiseRatio" : 0.0
},
{
"gatewayId" : "id3",
"uplinkId" : "",
"signalStrength" : 0.0,
"signalNoiseRatio" : 0.0
}],
"signalStrength" : 0.0,
"signalNoiseRatio" : 0.0,
"frequency" : 0.0,
"dataRate" : 0.0,
"adaptiveDataRate" : false,
"frameCounter" : 0.0,
"batteryStatus" : 0.0,
"batteryVoltage" : 0.0,
"linkMargin" : 0.0
}
}
}
}
dictionary
( https://github.com/eclipse/vorto/blob/master/docs/vortolang-1.0.md#dictionary ) insteaddictionary[string, Gateway]
dictionary
should be a plain JSON Object, e.g.:{
"id1": {
"uplinkId":"",
"signalStrength":0.0,
"signalNoiseRatio":0.0
},
"id2": {
"uplinkId":"",
"signalStrength":0.0,
"signalNoiseRatio":0.0
}
}
Hi.. I was trying with raspberry pi data visualization on vorto using bosch iot platform.
values are uploading succesfully to the iot platform. But on running vorto dashboard im getting the following error
#123 App running on port 8080 Could not get token with given credentials. - StatusCodeError: 400 - {"error":"invalid_request","error_description":"The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed","error_hint":"Client credentials missing or malformed in both HTTP Authorization header and HTTP POST body.","status_code":400} Backend queried with filterString... Simulator not running Error: Command failed: kill -0 $(ps aux | grep -E '[p]ython PMSMotorSimulator.py|TraciTagSimulator.py' | grep -v grep | awk '{print $2}') kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec] #123
Credential values are entered as follows in config.json ...
{ "BOSCH_CLIENT_ID": "", "BOSCH_CLIENT_SECRET": "", "BOSCH_SCOPE": "", "REACT_APP_DEVICE_REFRESH_MS": 10000 }
also tried with environment variables. same error occurs. On accessing through browser at localhost:8080 i am getting the webpage with message "No Devices Found" and a spinner rotates at the front end
Maintenance Announcement 31/08/2020
On Monday 31/08/2020 there will be maintenance work on the Eclipse Vorto Repository https://vorto.eclipse.org starting at 9AM CEST. The repository will be temporarily unavailable during the work. We will post an update once the works have been completed.