Website: http://www.sentilo.io
GitHub hosts Sentilo source code repository, issues tracker, pull requests and technical wiki: https://github.com/sentilo/sentilo
Sentilo platform
License: Other
Website: http://www.sentilo.io
GitHub hosts Sentilo source code repository, issues tracker, pull requests and technical wiki: https://github.com/sentilo/sentilo
When retrieving the list of related sensors for a component, the query could return incorrect results, because the search is done using a like condition instead of an equals condition.
Hi,
please do you planify to add redis sentinel(https://redis.io/topics/sentinel) for redis HA in the next version of sentilo?
thank you.
Hi
The provided VM is setup with REST API running at http://:8081/
However when accessing for testing, it always returns error 403 "SSL access is required"
It seems the error due to:
handle
currently calls request.checkSSLAccess(), in details:public void checkSSLAAccess() throws SSLRequiredException {
final String schemeAccess = extractHeader(HttpHeader.X_FORWARDED_PROTO);
final boolean sslNeeded = RequesterContextHolder.getContext().getMetadata().isRestHttps();
if (sslNeeded && !"https".equals(schemeAccess)) {
throw new SSLRequiredException();
}
}
I hope this could be resolved soon for the testing VM, like either of these ways:
Thanks
Hello sentilo developers:
Five days ago I was asked a question here, and you tell me this type of question is better to ask on the Google Groups page, and I put question to Google Groups page, but until now no one answered me,
I'm still in confusion, can you help me? I will thank you very much.
Regards
yandong
i am trying to build the project within eclipse for 2 weeks. i could not succeed.
what i have done is so far:
i am using ubuntu 14.04.
my runtime environment points the /usr/share/tomcat7
directory.
i shut down tomcat7 before i open eclipse and start tomcat7 in eclipse.
i have tried to start SentiloServer.java
but error occurred.
I have tried to run it 2 of them separately in 4 ways.
SentiloServer.java
as java application gives this error:SentiloServer.java
on localhost which is tomcat7 gives this error:Lastly, i tested the out of the box installation which building project, placing in tomcat7 server and running bin files. it works perfectly and also i have written provider and application that works with it, no problem.
i have stuck in this point. i could not find any github issue, google group question or documents about this. could you help me please?
The alerts with trigger condition greater than or equals doesn't work properly.
The inactivity alerts don't work properly and are not triggered when the condition is achieved.
Hello sentilo developers:
I was download the latest sentilo 1.3.0 in your website, and successfully installed on my computer.
the sensor's latest data always response empty when i view it in sentilo-catalog-web.
the problem is not because of time zone, and I found the reason in the log,
here is the sentilo-catalog-webto's data query request i found in log:
"Executing http call GET http://127.0.0.1:8081/data/ydprovider/ydsensor?limit=10"
the response is always empty because the sensor ID is wrong, the sensor ID should be "ydprovider.ydcomponent.ydsensor".
how can I solve this problem?
many thanks
yandong
Hi,
I'm trying to add a new functionality to the sentilo-catalog web.
The component_Detail.jsp displays the information for a sensor ID with a graphic that shows the last 10
observations.
I want to modify this one or create a new one (in that case we should be able to choose which graphic we want to watch) to show the data from the observation between two dates.
¿Is it able with the current REST API?
Thanks in advance.
When try to create an external alert using API,
{"alerts":[ {"id":"TITAN_1001", "name":"TITAN_1001", "description":"asdasd ad dsasdasd", "type":"EXTERNAL"}]}
server returns an error saying that request is wrong because entity field is mandatory.
This is not documented in the API spec. Additionally it should be an optional parameter because Sentilo knows the entity who is making the request.
When there are a lot of pois in a small area, they overlap each others. We should group them depending on the selected zoom and the concentration of sensors.
Hi,
I try to deployment a SENTILO server and I was wondering if there are any docker images to make it quick and easy.
In case it doesn't exist, is there a plan to dockerize the architecture?
Thanks,
Diego
Add new configuration parameters which allow you to modify default Kafka producers configuration, as linger.ms and batch.size, and improve agent performance.
Improvements and optimisation in universal viewer:
-Georeferenced search in mongoDB
-Private elements will be displayed in the map if the user is administrator
-Optimisation of data exchanged between the front-end and the server
-When returning from an element detail, the filters and map position must be maintained
-Redesign of POIs images for component types
-Tuning of POI clustering and enhancements in spiderfy
-Improvements in info-box: redesign of L&F and several new fields added
When a super-admin user creates a new user, in a multi-tenant instance of Sentilo, this user is not displayed in the user list of the administration section.
Add a new field for component and component type to store an URL which will show the photo of the component.
If the specific component has the field filled, this photo will be the displayed one. If this field is empty, the default photo for the component type will be displayed. If both fields are empty, the photo won't be shown.
This photo will be displayed in the public element details.
Currently, Sentilo only works in a JDK 6 environment. It would be desirable that Sentilo supports JDK7 and JDK 8 environments, too.
Currently, the components can only have a coordinate and be represented as POIs. The component location should permit to set several coordinates with the purpose of represent streets or areas.
Our platform-server returns the following error:
Every single data our providers are trying to publish, they all return the following error:
Observation % has been rejected because sensor [XXXXXX] belonging to provider [yyyyy] doen't exist on Sentilo.
However, in mongodb everything is fine:
And the user mongodb is using -> "platform-user" is active:
Considerations to note:
As is explained here Connection leaking in 2.9.1 GenericObjectPool, version 2.9.1 of Jedis has a bug.
To fix this bug, an upgrade to version 2.10.2 is required.
Currently the component type icons are loaded from a hardcoded list.
Improve the icons load, retrieving them from a specific folder of the WAR.
Add new information and capacities to the Catalog Console:
Getting no GUI and error SIE05-1484072050022 when I try to start app at http://172.31.99.231:8080/sentilo-catalog-web/ . Running the OVA in virtualbox on Windows 10 platform.
Like for sensors, it should exist the same concept for components to allow to store possible custom properties of the elements.
Agent alert does not process CHANGE and CHANGE_DELTA alerts as expected.
https://groups.google.com/d/msg/sentilo/s43sdyZAJLk/T26LIpr8kx4J
When performing the build I've got the following error:
Results :
Failed tests: checkFrozenAlerts(org.sentilo.agent.alert.test.repository.FrozenRepositoryImplTest): expected:<alertTest[2]> but was:<alertTest[1]>
If anyone else is reporting this error, I presume that this should be caused for some synchronization problem, because, when I switch the order of the assertion's array the build works fine.
@test
public void checkFrozenAlerts() {
final Set members = new HashSet(Arrays.asList("providerTest:sensorTest:alertTest1", "providerTest:sensorTest:alertTest2"));
when(operations.rangeByScore(any(String.class), any(Double.class), any(Double.class))).thenReturn(members);
final List<InternalAlert> alerts = repository.checkFrozenAlerts();
verify(operations).rangeByScore(any(String.class), any(Double.class), any(Double.class));
Assert.assertTrue(alerts.size() == 2);
/*
Assert.assertEquals(alerts.get(0).getId(), alertId1);
Assert.assertEquals(alerts.get(0).getProviderId(), providerId);
Assert.assertEquals(alerts.get(0).getSensorId(), sensorId);
Assert.assertEquals(alerts.get(1).getId(), alertId2);
Assert.assertEquals(alerts.get(1).getProviderId(), providerId);
Assert.assertEquals(alerts.get(1).getSensorId(), sensorId);
*/
Assert.assertEquals(alerts.get(1).getId(), alertId1);
Assert.assertEquals(alerts.get(1).getProviderId(), providerId);
Assert.assertEquals(alerts.get(1).getSensorId(), sensorId);
Assert.assertEquals(alerts.get(0).getId(), alertId2);
Assert.assertEquals(alerts.get(0).getProviderId(), providerId);
Assert.assertEquals(alerts.get(0).getSensorId(), sensorId);
}
This work for me as a contingency for now, but it is needed take a look at it.
Currently the public map displays components as POIs. In case of mobile components, they will show their last received location as described in #3 .
It is necessary to get a new specific map for showing the mobile elements and its recent routes.
Even if you disable a sensor through the administration console, you can continue seeing their data in the component detail.
Works perfectly when disabling components, they are not visibles in the map.
Sometimes I cannot change location type of a component. For example when I was creating new component I chose type “Static” but when component was saved, it was with type “Mobile”. Also sometimes I cannot change type of existing component.
In current version only the static components are visualized in the public map. Should be a good feature to show their last location in the map.
It will be good to append a new set of properties for sensors and components with the purpose of storing technical information like: producer, MAC address, serial number, power type, connectivity...
This info can be stored in the additional data properties, but it will be better to standardize it, because it's information which is useful for all kinds of sensors and components.
Hi,
I've got this error when i launch the sentilo-server. I followed all the step to install the platform, but maybe i've missed something. could you help me on this ?
2014-07-07 10:01:10,816 [platformScheduler-1] WARN org.sentilo.platform.server.auth.impl.AuthorizationServiceImpl - Error al llamar al catalogo para recuperar la lista de autorizaciones
org.sentilo.platform.common.exception.CatalogAccessException: ; nested exception is org.sentilo.common.exception.RESTClientException:
at org.sentilo.platform.service.impl.CatalogServiceImpl.translateException(CatalogServiceImpl.java:258) ~[sentilo-platform-service-1.4.0.jar:na]
at org.sentilo.platform.service.impl.CatalogServiceImpl.getPermissions(CatalogServiceImpl.java:67) ~[sentilo-platform-service-1.4.0.jar:na]
at org.sentilo.platform.server.auth.impl.AuthorizationServiceImpl.loadActivePermissions(AuthorizationServiceImpl.java:123) ~[sentilo-platform-server-1.4.0.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_55]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_55]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_55]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_55]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) [spring-context-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) [spring-context-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_55]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_55]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_55]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_55]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_55]
Caused by: org.sentilo.common.exception.RESTClientException:
at org.sentilo.common.rest.impl.RESTClientImpl.validateResponse(RESTClientImpl.java:183) ~[sentilo-common-1.4.0.jar:na]
at org.sentilo.common.rest.impl.RESTClientImpl.executeHttpCall(RESTClientImpl.java:207) ~[sentilo-common-1.4.0.jar:na]
at org.sentilo.common.rest.impl.RESTClientImpl.executeHttpCall(RESTClientImpl.java:188) ~[sentilo-common-1.4.0.jar:na]
at org.sentilo.common.rest.impl.RESTClientImpl.get(RESTClientImpl.java:97) ~[sentilo-common-1.4.0.jar:na]
at org.sentilo.common.rest.impl.RESTClientImpl.get(RESTClientImpl.java:85) ~[sentilo-common-1.4.0.jar:na]
at org.sentilo.common.rest.impl.RESTClientImpl.get(RESTClientImpl.java:81) ~[sentilo-common-1.4.0.jar:na]
at org.sentilo.platform.service.impl.CatalogServiceImpl.getPermissions(CatalogServiceImpl.java:64) ~[sentilo-platform-service-1.4.0.jar:na]
... 14 common frames omitted
Hi there,
The Postman URL has changed from www.getpostman.com to www.postman.com.
Please accept my PR #54
It seems there's a little bug in the components/sensors deletion procedure. In both cases, if I select an item then press "delete selected", nothing happens.
I think this is caused by the deleteSelected's alert message:
deleteSelected('components','This will remove all component's associated sensors and alerts. Are you sure to proceed?');
deleteSelected('sensors','This will remove all sensor's associated alerts. Are you sure to proceed?');
The quotation marks in "component's" and in "sensor's" cause a syntax error.
Best regards
The system returns an error when it receives a timestamp with GMT as timezone.
Hi,
i am getting stacktrace following errors while installing sentilo
As documentation said, for publish a new alarm related to an alert we should send something like this as body message:
{"message": "any alarm message"}
But if we try the following request:
PUT http://<sentilo host>:<sentilo port>/alarm/alert1
{"message": "Threshold limit exceeded : 32"}
, we will get an error such as the following:
{"code":500,"message":"Something went wrong. Please try again. If the problem persists,
contact your support site and provide the following error code: SIE99-1426508914661"}
To avoid problems in timestamp management, it is necessary to configure a default timezone in the Tomcat settings.
After installing the latest version from the git repository alarms are not shown on the web-catalog.
Commenting the line 84 in AlarmMessage.java and it's corresponding test (alarmMessage() in ClientDomainTest) alarms are shown. Obviously other things may have broken.
I've done that changes because Observation class has similar structure, regarding timestamps and time, but setTimestamp method doesn't have the commented line and it works (observations are shown).
The error log:
2018-02-22 09:37:48,605 UTC [sentilo-20180212 - catalog] [http-bio-8080-exec-9] ERROR org.sentilo.web.catalog.aop.aspect.CatalogExceptionTranslationInterceptor - SIE05-1519292268602 - Internal system error.java.lang.IllegalArgumentException: Error parsing date 20/02/2018 12:37:55 at org.sentilo.common.utils.DateUtils.stringToDate(DateUtils.java:95) ~[sentilo-common-1.7.0.jar:na] at org.sentilo.common.utils.DateUtils.toMillis(DateUtils.java:85) ~[sentilo-common-1.7.0.jar:na] at org.sentilo.platform.client.core.domain.AlarmMessage.setTimestamp(AlarmMessage.java:84) ~[sentilo-platform-client-java-1.7.0.jar:na] at org.sentilo.web.catalog.aop.aspect.TranslateTimestamp.translateAlarmsTimestamp(TranslateTimestamp.java:86) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161] at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:603) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.aspectj.AspectJAfterReturningAdvice.afterReturning(AspectJAfterReturningAdvice.java:58) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:52) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:55) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.sentilo.web.catalog.service.impl.SensorServiceImpl$$EnhancerByCGLIB$$70c924cb.getLastAlarmsMessages(<generated>) [spring-core-3.2.3.RELEASE.jar:na] at org.sentilo.web.catalog.controller.admin.SensorController.getLastAlarms(SensorController.java:208) [classes/:na] at org.sentilo.web.catalog.controller.admin.SensorController$$FastClassByCGLIB$$4af728d4.invoke(<generated>) [spring-core-3.2.3.RELEASE.jar:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) [spring-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:627) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.sentilo.web.catalog.controller.admin.SensorController$$EnhancerByCGLIB$$e494eccd.getLastAlarms(<generated>) [spring-core-3.2.3.RELEASE.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161] at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) [spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) [spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) [servlet-api-3.0.jar:na] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) [spring-webmvc-3.2.3.RELEASE.jar:3.2.3.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) [servlet-api-3.0.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat7-websocket.jar:7.0.68] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.68.jar:7.0.68] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) [spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.68.jar:7.0.68] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.sentilo.web.catalog.security.access.TenantAccessControlFilter.doFilter(TenantAccessControlFilter.java:75) [classes/:na] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) [spring-security-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) [spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) [spring-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:221) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) [tomcat-catalina-7.0.68.jar:7.0.68] at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) [tomcat-coyote-7.0.68.jar:7.0.68] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) [tomcat-coyote-7.0.68.jar:7.0.68] at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) [tomcat-coyote-7.0.68.jar:7.0.68] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_161] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_161] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-coyote-7.0.68.jar:7.0.68] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161] Caused by: java.text.ParseException: Unparseable date: "20/02/2018 12:37:55+0000" at java.text.DateFormat.parse(DateFormat.java:366) ~[na:1.8.0_161] at org.sentilo.common.utils.DateUtils.stringToDate(DateUtils.java:93) ~[sentilo-common-1.7.0.jar:na] ... 94 common frames omitted S:END
Where can I find the url for web service login or another services?
Regards
The connection pool used in the publish/subscribe mechanism only supports two simultaneous connections with the same host. This can provoke timeouts when the server suffers an overload.
The statistic page should show the timestamp according with the timezone configured for the catalog.
This will be achieved adding a header to the callbacks based in HMAC. As shared secret key between Sentilo and the receiver will be used the authentication token.
See more:
http://en.wikipedia.org/wiki/Hash-based_message_authentication_code
http://www.smartjava.org/content/protect-rest-service-using-hmac-play-20
Hello
I am working on sentilo project with raspberry-pi client
So firstly to check interaction of client with sentilo so I am doing LED operation
I want that LED blink automaticaly and will show the output will be 1 and 0 automatically so I have to implement sensor.js file so plz help me to get the code of this prototype so the
sensor.js file below
module.exports = {
/**
* Retrieve data from the sensor
*
* @returns {String}
*/
readSensorValue : function() {
// TODO: Implement this method
// Return some random value between 0 and 255
var sensorValue = Math.floor((Math.random() * 255));
return sensorValue;
}
};
Thank You
Hello sentilo developers:
I'm learning to use sentilo and its REST API, when I test alert and alarm, I met some questions that I don't understand, can you help me?
The purpose of the internal alert is obvious, but what is the purpose of the external alert?
The sentilo architecture page say "when the value received from a sensor doesn't met any of the conditions defined, the alert agent publishes an event (alarm) notifying it". is it means alarms are automatically generated by sentilo agent?
I create two alerts for my sensor "ydsensor", "ydsensor_max_alert" and "ydsensor_min_alert" trigger, conditions are respectively "Greater than 50" and "Less than 30".
Then I publish a observations for this sensor, javascript code is as follows:
var data = {"observations":[{"value":888}]};
$.ajax({
type: "PUT",
data: JSON.stringify(data),
url: "http://localhost:8081/data/ydprovider/ydsensor",
headers: {"IDENTITY_KEY":"c956c302086a042dd0426b4e62652273e05a6ce74d0b77f8b5602e0811025066"}
});
And publish successfully.
The value of this obdervation is greater than 50, it should automatically trigger the one of alerts "ydsensor_max_alert", and the alert agent should publishes an event (alarm) notifying it.
The sentilo-agent-alert-server is work normally, but when I retrieve alarms using REST API, I did not find a new alarm associated with "ydsensor_max_alert", javascript code is as follows:
$.ajax({
type: "GET",
url: "http://localhost:8081/alarm/ydsensor_max_alert?limit=10",
headers: {"IDENTITY_KEY":"02dd3e77c5600f16c03f37ed58bb0972ab8360cdd741e77acd2798d9928b3859"}
});
I can only find the alarms I manually published by using REST API "Publish Alarm".
Where I am wrong?
What does it mean that "only the administrator can register internal alerts." in api doc "Create alerts".
I can create two type of alerts through the sentilo-catalog-web, but when I create a internal alert through the REST API, it returns "403 You are not authorized to insert/update internal alerts", and it returns "500 Something went wrong.....error code: SIE00-1413444660980" when I create a external alert.
code is as follows:
//add a internal alert
var data = {"alerts":[
{"id":"ydsensor_equal_alert",
"name":"ydsensor_equal_alert",
"description":"ydsensor equal alert",
"type":"INTERNAL",
"trigger":"EQ",
"expression":"25",
"component":"ydcomponent",
"sensor":"ydsensor"
}
]};
$.ajax({
type: "POST",
data: JSON.stringify(data),
url: "http://localhost:8081/catalog/alert/ydprovider",
headers: {"IDENTITY_KEY":"0ea631ba9a4c8a21a1fdb10afb99b97070da4036c3cb47effecca8c49d29ba02"}
});
Whether set header IDENTITY_KEY of application(application type is "administration" and has ydprovider's "administration" permission) or IDENTITY_KEY of providers, it all will returns 403 response.
//add a external alert
var data = {"alerts":[
{"id":"REC_ALERT_001",
"name":"REC_ALERT_001",
"description":"Custom alert to monitorize that maximum daily values for sensor REC_001 ranged from 60 and 80",
"type":"EXTERNAL"
}
]};
$.ajax({
type: "POST",
data: JSON.stringify(data),
url: "http://localhost:8081/catalog/alert/ydprovider",
headers: {"IDENTITY_KEY":"0ea631ba9a4c8a21a1fdb10afb99b97070da4036c3cb47effecca8c49d29ba02"}
});
Whether set header IDENTITY_KEY of application(application type is "administration" and has ydprovider's "administration" permission) or IDENTITY_KEY of providers, it all will returns 500 response.
Can you tell me where I am wrong?
Regards and many thanks.
yandong
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.