# HG changeset patch # User drewp@bigasterisk.com # Date 1631901921 25200 # Node ID d3b295c28a2690d8344bf087e4b5ae144a9532a7 # Parent 9e7f571deedfcb7932a0d70535663def256d559d WIP rules.n3 diff -r 9e7f571deedf -r d3b295c28a26 service/mqtt_to_rdf/conf/rules.n3 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/service/mqtt_to_rdf/conf/rules.n3 Fri Sep 17 11:05:21 2021 -0700 @@ -0,0 +1,49 @@ +@prefix : . +@prefix rdfs: . +@prefix fr: . +@prefix xsd: . +@prefix math: . + +:airQualityIndoor a :AirQualitySensor; rdfs:label "air_quality_indoor" . +:airQualityOutdoor a :AirQualitySensor; rdfs:label "air_quality_outdoor" . + +{ ?s a :AirQualitySensor; rdfs:label ?name . } => { + [ a :MqttStatementSource; :mqttTopic (?name "sensor" "bme280_temperature" "state") ] . + [ a :MqttStatementSource; :mqttTopic (?name "sensor" "bme280_pressure" "state") ] . + [ a :MqttStatementSource; :mqttTopic (?name "sensor" "bme280_humidity" "state") ] . + [ a :MqttStatementSource; :mqttTopic (?name "sensor" "ccs811_eco2_value" "state") ] . + [ a :MqttStatementSource; :mqttTopic (?name "sensor" "ccs811_total_volatile_organic_compound" "state") ] . + [ a :MqttStatementSource; :mqttTopic (?name "sensor" "particulate_matter_10m_concentration" "state") ] . + [ a :MqttStatementSource; :mqttTopic (?name "sensor" "particulate_matter_25m_concentration" "state") ] . + [ a :MqttStatementSource; :mqttTopic (?name "sensor" "particulate_matter_100m_concentration" "state") ] . +} . + +{ + ?msg a :MqttMessage; + :topic (?sensorName "sensor" "bme280_temperature" "state"); + :bodyFloat ?valueC . + ?valueC math:greaterThan -999 . + ?valueC :asFarenheit ?valueF . +} => { + :airQualityTODOIndoorTemperature :temperatureF ?valueF . + :influxMeasurements :measurement [ + :meas "temperatureF"; + :pointsAtLeastEvery 30; + :tag [:key "host"; :value ?sensorName], + [:key "location"; :value "TODOfrontRoomShelf"]] . + } . + +################################################################# + +:frontDoorLockStatus a :MqttStatementSource; + :mqttTopic ("frontdoorlock" "status"). + +{ ?msg :body "online" . } => { ?msg :onlineTerm :Online . } . +{ ?msg :body "offline" . } => { ?msg :onlineTerm :Offline . } . + +{ + ?msg a :MqttMessage ; + :topic ( "frontdoorlock" "status" ); + :onlineTerm ?onlineness . } => { + :frontDoorLockStatus :connectedStatus ?onlineness . +} .