web-based visualisation and monitoring of smart meters using cqels
Post on 24-Jun-2015
802 Views
Preview:
DESCRIPTION
TRANSCRIPT
Demonstration: Web-based visualisation and
monitoring of smart meters using CQELS
7th International Workshop on Semantic Sensor Networks 2014 @ ISWC 2014, Italy
Maxim Kolchin, Dmitry Mouromtsev, Sergey ArustamovLaboratory ISST @ ITMO University, St.Petersburg, Russia
Ленполиграфмаш (LPM)
❏ a small energy reseller in St. Petersburg
with monthly consumption about ~ 500 MW
❏ 70 smart electric meters
❏ 4 electrical substations
1
Grid network overview
2
LPM wants to...
3
❏ reduce electricity losses❏ identify misconfigurations of smart meters and
network earlier❏ monitor smart meter readings in real-time
Stream sources
4
❏ Custom JSON model❏ Not integrated with background knowledge❏ Identifiers not globally unique
Static data
Currently at: http://lpmanalytics.tk/sparql
❏ graph: http://192.168.134.114/SmartMetersDB/
All smart meters:
Example URI: http://purl.org/daafse/meters/mercury230_13534128
PREFIX em: <http://purl.org/NET/ssnext/electricmeters#> .
SELECT * { ?meter a em:ElectricMeter . }
5
Streaming data
Published via a message bus (RabbitMQ) that implements AMQP protocol:
❏ a continuous stream of RDF triples in Turtle format❏ amqp://lpmstreams.tk:15674
Stream URI:
❏ amqp://lpmstreams.tk:15674?exchangeName=meter_exchange&routingKey=meter.location.mercury230_13534128
6
Ontologies
7
Architecture
8
UI: Visualisation in real-time
9
UI: Alerts
10
Example #1: Too high voltage value
Notify when the voltage value on one of the phases on one of smart meters are higher than 220V + 5% = 231V
11
Example #1: Too high voltage valueCONSTRUCT {
?alert a <http://purl.org/daafse/alerts#TooHighVoltageValue> ; dul:hasEventDate ?time ; dul:involvesAgent ?meter .
} FROM NAMED <http://lpmanalytics.tk/sparql-graph-crud> WHERE {
GRAPH <http://192.168.134.114/SmartMetersDB/> {
?meter em:hasStream ?stream; em:complyWith ?requirement .
?requirement em:maxVoltageValue ?maxvvalue .}
STREAM ?stream [NOW] {
?observation a em:PolyphaseVoltageObservation ; ssn:observationResultTime ?time ; ssn:observationResult ?output .
?output a em:PolyphaseVoltageSensorOutput ; ssn:isProducedBy ?meter ; ssn:hasValue ?value .
?value em:hasQuantityValue ?qvalue .
}
FILTER(?qvalue > ?maxvvalue)
BIND(IRI(CONCAT(STR(?meter), '/alerts/', STR(?time))) AS ?alert)
}12
Example #2: Power values is below zero
Notify when the power value on one of the phases is below zero
13
Example #2: Power values is below zeroCONSTRUCT {
?alert a <http://purl.org/daafse/alerts#PowerValueBelowZero>; dul:hasEventDate ?time; dul:involvesAgent ?meter .
} FROM NAMED <http://lpmanalytics.tk/sparql-graph-crud> WHERE {
GRAPH <http://192.168.134.114/SmartMetersDB/> {
?meter em:hasStream ?stream; em:complyWith ?requirement .
?requirement em:minPowerValue ?minpvalue .
}
STREAM ?stream [NOW] {
?observation a em:PolyphaseVoltageObservation; ssn:observationResultTime ?time; ssn:observationResult ?output .
?output ssn:isProducedBy ?meter; ssn:hasValue ?value . ?value em:hasQuantityValue ?qvalue .
}
FILTER(?qvalue < ?minPowerValue)
BIND(IRI(CONCAT(STR(?meter), '/alerts/', STR(?time))) AS ?alert)
}14
Example #3: Different voltages
Voltage values measured by the meters at the same substation should be “almost the same”, e.g. ± 3%.
15
Unfortunately, it’s not possible to do with CQELS now.
Conclusions
❏ Web app that monitors and visualizes smart meter readings❏ Extensions for CQELS engine: BIND and remote SPARQL endpoint❏ RDF streams published via RabbitMQ
Future work:
❏ Implement missing aggregation functions in CQELS❏ Use one of binary RDF representations for the streams
16
The app is a very simple but practical example of applying RSP in Smart Grid domain
Thank you!
Source code:❏ The web app: http://github.com/ailabitmo/DAAFSE❏ CQELS with extensions: http://github.com/KMax/cqels
17
top related