hms-networks / flexy-cumulocity-connector Goto Github PK
View Code? Open in Web Editor NEWA connector-based solution to Cumulocity for linking Ewon devices using a direct data path with a Flexy Java application.
License: Apache License 2.0
A connector-based solution to Cumulocity for linking Ewon devices using a direct data path with a Flexy Java application.
License: Apache License 2.0
14.8s0
1.4.1
Ethernet
Changing the LogLevel
to 6
causes the body of payloads sent to be output to the Ewon's realtime logs. This has performance implications where a large amount of data is contained in the payload. This is especially notable when that condition persists for consecutive data polls and the realtime logging becomes overwhelmed.
It is expected that debug output does not have a drastic impact on the connector performance under reasonable or normal operating circumstances.
First Observed by Customer
Confirmed by @alexjhawk
Reported by @alexjhawk
Tag values can be assigned to child devices, fragments and measurement series by using the corresponding tag name conventions. they should be described in our documentation.
Hello,
I have trouble connecting the Agent to Cumulocity. I'm working with an private Instance of Cumulocity and therefore I think I might have a problem with the certificate. Is this assumption correct? Can I specify an crt that is on the Ewon Flexy?
Best Regards
14.8s0
1.4.1
Hi,
this is not a real issue. However, I am just wondering, if there is a special reason, why some extra " character are added to the connectorName, connectorVersion and connectorDownloadUrl in the following code snippet?
/** Sends basic information about the connector and hardware to Cumulocity. */
public void sendInformationToCumulocity() {
// Get connector information for adding software/agent information
String connectorName =
""" + CConnectorMqttMgr.class.getPackage().getImplementationTitle() + """;
String connectorVersion =
""" + CConnectorMqttMgr.class.getPackage().getImplementationVersion() + """;
String connectorDownloadUrl = """ + CONNECTOR_DOWNLOAD_URL + """;
As a result, the c8y_Agent fragment of the device`s managed object will contain these extra " characters.
Thank you!
Best regards,
Attila
No response
Please include TCP ports used and possible modifications to only use 1883
Over "slow" connections e.g., cellular, Cumulocity sever will consistently drop connections when a payload is over a certain size. Through testing we find this size limit to be roughly 2kB. However, this is an observation of a single device, and we have not quantified what exactly constitutes a "slow connection".
Furthermore, the server stops responding, but keeps the TCP keep alive. So the client depends on the MQTT keep alive to know if the connection is disconnected.
The returned string for get config does not have escaped new lines and thus causes JSON parsing exception. I'm not sure what is the reason for this. This character should be escaped here:
With the change to aggregated measurement data, the type value changed to "None". This remains as "ewon" when sending non-aggregated data in 1.4.0. Please allow for a user entered type value so we may maintain our datatype as "ewon" when sending aggregated measurement data.
"self": "https://tenanturl/measurement/measurements/2958095",
"id": "2958095",
"type": "ewon", <-- CHANGED TO "None" in Aggregated Measurement Data
"source": {
"self": "https://tenanturl/inventory/managedObjects/44758",
"id": "44758"
},
"time": "2023-12-07T15:27:41.000Z",
"ewon": {
"Density_Reference": {
"unit": null,
"value": 1.0
}
}
},
Please add the ability to toggle measurement data transmitted to Cumulocity as "Transient" though the addition of a header text in each message: X-Cumulocity-Processing-Mode: TRANSIENT
This will allow for processing of data as it enters Cumulocity but prevent automatic storage of the measurement data
Original Report By: @janhumble
Original Report Permalink: #31 (comment)
Original Report Content:
We are trying to connect the Flexy with the latest instructions and certificate path to a public Cumulocity tenant. We are getting null pointers on mqtt ssl handshake. Running firmware 14.5s on a Flexy 205.
Has this been verified with Cumulocity recently?
Reduce excessive logging during known queue polling disable conditions. This can be achieved partly by the migration to the abstract connector framework, as well as evaluating the implementation of a manual reset by key option for the library log once functionality. (To allow the log to appear again once without reimplementing a log once mechanism at the connector level as well)
Originally posted by @it-hms in #59 (comment)
Dear,
I followed the QUICK-START.md and everything went smooth but the registered device in Cumulocity keeps saying "Waiting for connection".
In the HMS Ewon Flexy the Java program started correctly but shows some error logs in the Realtime logs.
First there was: "JVM - An error occurred while reading data from the historical log."
After that: "MQTT - Disconnected (unexpected)"
And then: "The MQTT manager is not available to send historical data. Skipping data poll!"
I don't know why the MQTT manager is unavailable or why there is none.
In the Java program source code I found that this message get's logged when mqttMgr == null.
However, there are constantly MQTT CONNECT and MQTT CONNACK messages transfered so there must be some sort of connection.
Anybody knows what the problem is or could be?
Thanks in advance.
Best regards,
Dries
Change the Assets section to contain only the following files:
make release automation create .jar and jvmrun file
Please provide a list of all current device status information sent to the c8y_SupportedOperations fragment in Cumulocity, as well as potential new fields like WAN IP, Mobile SIM ICCID, Signal Strength, Location, etc
https://cumulocity.com/guides/10.15.0/reference/device-management-library/
I'm looking for additional information to be sent by the Ewon Flexy to improve remote access and troubleshooting,
This limitation shall be documented and handled appropriately when known (i.e. warning).
Erroneous aggregation calculations for Boolean values cause a repeating error in the realtime logs due to an exception being thrown during value type validation.
Potential idea for remote push of bootstrap config
Cumulocity .jar will need to create three string tags and one Boolean:
• pass
• url
• uname
• setComplete
The idea is that the connector can be deployed and it should monitor tags for changes. Upon change, an update action should occur. This action needs to be specified.
The alternate path would be to have the .jar support web requests. The entire config could be posted in body, or passed via query params. This is a cleaner option
Currently the default value is set by the platform. Please add a specific type e.g. "ewon_flexy_205" when sending the template 100:
https://cumulocity.com/guides/reference/smartrest-two/#100
For installation of the Agent there is a reboot required.
After this the device does not send data, but requires another reboot.
One restart should be sufficient.
During tests on customer site, the assignment of device credentials failed due to issues with connecting to the on-premise Cumulocity.
Before the device credentials were assigned to the device, the Flexy rebooted every 5 to 8 minutes.
Event log shows "Java Critical Error: 15" followed by "Systemstart, FWR: 14.5s1" and "Grund für Neustart: Skriptanforderung" (=Reason for restart: requested by script):
The FTP connection was not needed to trigger the error.
System is using German language
Internet connection is established using mobile data connection.
Situation: Each Tag is sent via Smart Rest template 200 leading to higher Device Class and costs for Cumulocity Customers.
Solution: Implement JSON via MQTT feature.
Technical Question: Which property can be used to aggregate a number of measurements to be sent via one JSON via MQTT publish command?
Idea: Groups A, B, C, D could be used to send measurements as separate JSON via MQTT commands. Or Group A will always send measurements via template 200 while groups B, C, D will be sent via separate JSON via MQTT commands.
Connector Version: 1.4.1
Firmware Version 14.8s0 (English)
jvmrun in the release 1.0.3 points to the 1.0.0 jar file hence is not started by the ewon
jvmrun from release 1.0.3 zipfile:
-heapsize 25M -classpath /usr/flexy-cumulocity-connector-1.0.0-full.jar -emain com.hms_networks.sc.cumulocity.CConnectorMain
# # #
The legacy c8y_Software Operation is still listed in the supported operation by the connector, and the Software Management features however are not inplemented but it is still shown in the Cumulocity UI. Removing it from the SupportedOperations could avoid future confusion, since many users are asking about where and what this feature is.
14.8
1.4.1
Ethernet
accessing jvmForm?formName=controlApi&shutdown=true does not shutdown the connector
The connector would stop
I do not have the latest ewon firmware, but was required to check the box to report an issue. I have not modified the application.
The AWS automation to connector version updating link is not updating the latest release of the connector.
It is currently showing v1.3.2, where as to date the latest version should be 1.4.1
https://sc-public-acl.s3.us-east-2.amazonaws.com/latest.json
In addition, the manifest.json link is also not populating the entire list of releases.
https://sc-public-acl.s3.us-east-2.amazonaws.com/manifest.json
Feature would change payload format to have multiple measurements aggregated in a single payload. This could be far more efficient use of bandwidth for some applications. This feature would also require a configurable aggregation period. This should be a period of time where measurements in that period would be aggregated and have the same timestamp and grouped in the same payload. The would make the timestamp less accurate, but this accuracy might not be necessary.
Requested_Ewon_Flexy_Format.txt
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.