EPRI OpenADR 2.0b Virtual Top Node (VTN) Wiki
Brought to you by:
eprissas
Welcome to your wiki!
This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].
The wiki uses Markdown syntax.
When I connect my own (certified 2.0b) VEN, the assigned VEN ID doesn't show up on the VEN detail page, but the generated Registration ID does. Could that be a bug? None of the functionality appears to be affected by this - it's just a visual thing.
Last edit: belwood 2015-01-15
How does one delete a wiki entry like this one?
Last edit: belwood 2015-04-09
The report page's floating point display is crazy. Our VEN sends 1-decimal floating point values (e.g. 74.2) and we're seeing 74.1999969482421 on the report web page.
Really?
Without further details in any log? Even a crude stack dump would be better than this.
Last edit: belwood 2015-04-16
I have run into the same error after letting the VTN run overnight.
My /home/torquebox/oadr/log/error.log file shows:
[Exception] Caught an exception: undefined method '>' for nil:NilClass
/home/torquebox/oadr/app/models/event.rb:625:in 'update_status'
Plus some other traceback.
I am not a ruby programmer at all, so my attempt to add this right before line 625 just caused a whole new list of errors:
if self.dtstart.blank?
self.dtstart = now
end
Last edit: Brent Earl 2015-05-29
That's annoying too. In our log, we see a few instances of
"Caught an exception: undefined method `ven' for nil:NilClass"
but overall, it's relatively stable now. However, when we get a "We're sorry,..." error, there's nothing in the log file that even shows an error occurred.
I noticed that there were a number of events that I had not created on the events tab. Destroying all of them has my VEN back online. While I was destroying each I would see "We're sorry something went wrong" or "this pages does not exist" for most of them.
Typo alert: db/seeds.rb
DataQuality.create(name: "Quality Bad - last Known Value")
should be
DataQuality.create(name: "Quality Bad - Last Known Value")
... frustrating that this particular data quality value, when expected, was absent from reports because of a simple typo.
Running into an error with the opensource VTN from EPRI , which is running on a CentOS 6.5 serv
For testing, learning and debugging , I am just using http access to the server for now [not https].
I get the following error [could it be related to version of Java or Jruby rails, which I doubt] ---
Started POST "/OpenADR2/Simple/2.0b/EiReport" for 169.53.146.168 at 2015-08-03 11:39:30 -0500
Processing by Oadr20bController#report as /
Parameters: {"oadrPayload"=>{"xmlns:p1"=>"http://openadr.org/oadr-2.0b/2012/07", "oadrSignedObject"=>{"oadrRegisteredReport"=>{"xmlns:p2"=>"http://docs.oasis-open.org/ns/energyinterop/201110", "p2:schemaVersion"=>"2.0b", "eiResponse"=>{"xmlns:p3"=>"http://docs.oasis-open.org/ns/energyinterop/201110/payloads", "responseCode"=>"200", "responseDescription"=>"OK", "requestID"=>"972f8508bfb7c59b0e13"}, "venID"=>"f3a52fa353d37b5e2e20"}}}}
Completed 200 OK in 14ms (Views: 0.0ms | ActiveRecord: 1.0ms)
Started POST "/OpenADR2/Simple/2.0b/EiEvent" for 169.53.146.168 at 2015-08-03 11:39:30 -0500
Processing by Oadr20bController#event as /
Parameters: {"oadrPayload"=>{"xmlns:p1"=>"http://openadr.org/oadr-2.0b/2012/07", "oadrSignedObject"=>{"oadrRequestEvent"=>{"xmlns:p3"=>"http://docs.oasis-open.org/ns/energyinterop/201110", "p3:schemaVersion"=>"2.0b", "xmlns:p2"=>"http://docs.oasis-open.org/ns/energyinterop/201110/payloads", "eiRequestEvent"=>{"xmlns:p3"=>"http://docs.oasis-open.org/ns/energyinterop/201110", "requestID"=>"9D2DCB337E", "venID"=>"f3a52fa353d37b5e2e20", "replyLimit"=>"4294967295"}}}}}
==> undefined method
get_bytes' for #<Java::EpriOadr2bLib::OadrPayload:0x642d9908> Backtrace /home/torquebox/oadr/app/oadr/marshalling20b.rb:227:inunmarshal'org/jruby/javasupport/JavaObject.java:273:in
synchronized' org/jruby/javasupport/JavaProxyMethods.java:90:insynchronized'/home/torquebox/oadr/app/oadr/marshalling20b.rb:226:in
unmarshal' /home/torquebox/oadr/app/oadr/event_service.rb:280:intrim_events'/home/torquebox/oadr/app/oadr/event_service.rb:265:in
process_request_event' org/jruby/RubyKernel.java:1963:inpublic_send'/home/torquebox/oadr/app/oadr/oadr_service.rb:206:in
process_request' /home/torquebox/oadr/app/controllers/oadr20_controller.rb:188:inprocess_request'/home/torquebox/oadr/app/controllers/oadr20b_controller.rb:191:in
event' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal/implicit_render.rb:4:insend_action'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/abstract_controller/base.rb:167:in
process_action' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal/rendering.rb:10:inprocess_action'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/abstract_controller/callbacks.rb:18:in
process_action' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activesupport-3.2.12/lib/active_support/callbacks.rb:406:in_run__392135350__process_action__245960070__callbacks'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activesupport-3.2.12/lib/active_support/callbacks.rb:405:in
__run_callback' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activesupport-3.2.12/lib/active_support/callbacks.rb:390:in_run_process_action_callbacks'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activesupport-3.2.12/lib/active_support/callbacks.rb:81:in
run_callbacks' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/abstract_controller/callbacks.rb:17:inprocess_action'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal/rescue.rb:29:in
process_action' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal/instrumentation.rb:30:inprocess_action'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activesupport-3.2.12/lib/active_support/notifications.rb:123:in
instrument' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activesupport-3.2.12/lib/active_support/notifications/instrumenter.rb:20:ininstrument'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activesupport-3.2.12/lib/active_support/notifications/instrumenter.rb:19:in
instrument' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activesupport-3.2.12/lib/active_support/notifications.rb:123:ininstrument'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal/instrumentation.rb:29:in
process_action' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal/params_wrapper.rb:207:inprocess_action'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/activerecord-3.2.12/lib/active_record/railties/controller_runtime.rb:18:in
process_action' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/abstract_controller/base.rb:121:inprocess'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/abstract_controller/rendering.rb:45:in
process' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal.rb:203:indispatch'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal/rack_delegation.rb:14:in
dispatch' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_controller/metal.rb:246:inaction'org/jruby/RubyProc.java:271:in
call' /opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:73:indispatch'/opt/torquebox/torquebox-3.0.2/jruby/lib/ruby/gems/shared/gems/actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:36:in `call'
Had to debug several issues like these before I fixed the problem - correctly configure all VTN events/signals , make sure that VEN is configured as 2.0b [so are the events] , including the intervals etc. There are several types of errors one could run into if the configuration is incorrect.
I had to configure the Events/Signals on the VTN and register VEN with 2.0b profile, everything
must be setup correctly ,otherwise the client ends up seeing mostly a "Server Internal Error" response code 500.
Error handling with this Open VTN from EPRI needs a lot of improvement.
In the VTN, then encoding of endDeviceAsset in eiEventSignal appears to contradict the schema.
According to the schema, the target should look like:
<ei:eitarget>
<power:mrid>Thermostat<power:mrid>
</power:mrid></power:mrid></ei:eitarget>
but the VTN is sending:
<ei:eitarget>
<power:enddeviceasset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">Thermostat</power:enddeviceasset>
</ei:eitarget>
When encoding an eiTarget in an eiEvent, the content is being encoded more appropriately:
<ei:eitarget>
<ei:resourceid>Resource Type 1</ei:resourceid>
<ei:venid>326a5615197f0d25cb5a</ei:venid>
</ei:eitarget>
This occurs using v0.9.3
Nice catch!
The VEN setup page does not currently accept alpha-numeric postal codes.
Anyone interested in receiving updates should see my fork of this project on github: https://github.com/dupes/nebland-oadr-vtn/tree/v0.9.4. My latest version contains a few bug fixes as well as a machine-to-machine API. I'm also offering support, bug fixes and enhancements, custom VEN development, and the VTN software running in a virtual machine available here: https://oadrservices.com/products. I am the developer of the EPRI OpenADR software.
hi, I'm korea developer. I've a poor english sorry..
I follwing this 'EPRI.OpenADR.2.0.Open.Source.Virtual.Top.Node.-.VTN.Manual.pdf'
but, I have a problem
command : 'torquebox run -b 0.0.0.0'
[WARNING] config-knob.yml has not been deployed. Starting TorqueBox anyway.
Booting AS7 from configuration /opt/torquebox/current/jboss/standalone/configuration/standalone.xml
/opt/torquebox/current/jboss/bin/standalone.sh -Djruby.home=/opt/torquebox/torquebox-3.0.2/jruby --server-config=standalone.xml -b 0.0.0.0
JAVA_OPTS already set in environment; overriding default settings with values: -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true
JBoss Bootstrap Environment
JBOSS_HOME: /opt/torquebox/current/jboss
JAVA: java
JAVA_OPTS: -server -XX:+UseCompressedOops -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
11:10:00,870 INFO [org.jboss.modules] (main) JBoss Modules version 1.2.0.CR1
11:10:01,108 INFO [org.jboss.msc] (main) JBoss MSC version 1.0.4.GA
11:10:01,200 INFO [org.jboss.as] (MSC service thread 1-6) JBAS015899: JBoss AS 7.2.x.slim.tb3.incremental.2 "Janus" starting
and try to connect 'http://localhost:8080' but connection fail..
status
os : centos7
java : openjdk version "1.8.0_101"
ruby : 2.0.0
jruby : 9.1.3 because of the gem dependency
what should i do?
thanks
It's solved