Skip to content

Commit

Permalink
Merging
Browse files Browse the repository at this point in the history
  • Loading branch information
kehusa committed Dec 12, 2016
1 parent 3f19b0e commit 5eab700
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 18 deletions.
Expand Up @@ -44,6 +44,8 @@ property reading : String

function fallControl(fallReport : String) @abstract "true" : String do end



statechart Server init reading {

state reading {
Expand Down
Expand Up @@ -27,6 +27,9 @@ thing FallServerNew includes SensorServer
'&curFallState&' = {}'
end

function sendFall(sensorId : String, fnId : String) do
fall!fall(sensorId, fnId)
end

function fallControl(fallReport : String) : String do

Expand Down Expand Up @@ -77,7 +80,7 @@ thing FallServerNew includes SensorServer
'&curFallState&'[sensorId] = true;
json.message=JSON.stringify(msg);
var res = JSON.stringify(json);
'&sendFall('sensorId', 'fnId')&'
'& sendFall('sensorId', 'fnId') &'
return res;
} else if(!fall) {
'&curFallState&'[sensorId] = false;
Expand Down
@@ -1,12 +1,12 @@
import "../../Field-node/Sensor.thingml"
import "Messages.thingml"

thing LightSwitchServer includes SensorMsgs, SmarttrackerMessages, LightIntensityMessages {
thing LightSwitchServer includes SensorMsgs, SmarttrackerMessages, LightIntensityMessages, ManagementMessages {


provided port lightswitch
{
receives lightOn, lightOff
receives lightOn, lightOff, query
}


Expand Down
Expand Up @@ -11,3 +11,6 @@ thing fragment LightIntensityMessages {
message lightOff(LocId : String);
}

thing fragment ManagementMessages {
message query();
}
Expand Up @@ -27,24 +27,26 @@ thing fragment ZWaveMsgs
message softReset();
message beginControllerCommand(cmdName : String, highPower : Boolean, node1_id : String, node2_id : String);
message cancelControllerCommand();
message query();
message queryRes(res : String);

}

thing fragment ZWaveClient includes ZWaveMsgs
{
required port ZWave @sync_send "true"
{
sends connect, disconnect, setValue, setLevel, setNodeOn, setNodeOff, setLocation, setName, hardReset, softReset, beginControllerCommand, cancelControllerCommand
receives driverReady, driverFailed, nodeAdded, valueAdded, valueChanged, valueRemoved, nodeReady, pollingEnabled, pollingDisabled, notification, controllerCommand, scanComplete
sends connect, disconnect, setValue, setLevel, setNodeOn, setNodeOff, setLocation, setName, hardReset, softReset, beginControllerCommand, cancelControllerCommand, query
receives driverReady, driverFailed, nodeAdded, valueAdded, valueChanged, valueRemoved, nodeReady, pollingEnabled, pollingDisabled, notification, controllerCommand, scanComplete, queryRes
}
}

thing fragment ZWaveServer includes ZWaveMsgs
{
provided port ZWave
{
receives connect, disconnect, setValue, setLevel, setNodeOn, setNodeOff, setLocation, setName, hardReset, softReset, beginControllerCommand, cancelControllerCommand
sends driverReady, driverFailed, nodeAdded, valueAdded, valueChanged, valueRemoved, nodeReady, pollingEnabled, pollingDisabled, notification, controllerCommand, scanComplete
receives connect, disconnect, setValue, setLevel, setNodeOn, setNodeOff, setLocation, setName, hardReset, softReset, beginControllerCommand, cancelControllerCommand, query
sends driverReady, driverFailed, nodeAdded, valueAdded, valueChanged, valueRemoved, nodeReady, pollingEnabled, pollingDisabled, notification, controllerCommand, scanComplete, queryRes
}
}

Expand Down
Expand Up @@ -2,24 +2,41 @@ import "zwave.thingml"
import "../_common/Messages.thingml"
import "../_common/LightSwitchServer.thingml"

object Array
@js_type "var";

thing DeviceSession includes ZWaveClient, LightSwitchServer{

property deviceId : String = "zwave" //@kevoree "instance"
property homeId : String = "hjemme1" @kevoree "instance"




internal port cmdInt
{
sends lightOff, lightOn
receives lightOff, lightOn
sends lightOff, lightOn, query
receives lightOff, lightOn, query
}


function createObservation(key: String, value : String) : Integer
function createObservation(key: String, value : String) : Integer
do
'var obsdata = [];
obsdata.push({"'&key&'":"'&value&'"});
var obs = {};
obs['&key&'] = '&value&';
obsdata.push(obs);

var obs = {deviceId: "zwave-"+' & deviceId & ', observations: obsdata};
var obs = {deviceId: '&homeId&'+"/"+' & deviceId & ', observations: obsdata};

return JSON.stringify(obs);
'
end

function createObservation(obsdata : Array) : Integer
do
'
var obs = {deviceId: '&homeId&'+"/"+' & deviceId & ', observations: '& obsdata &'};

return JSON.stringify(obs);
'
Expand All @@ -38,11 +55,27 @@ function createObservation(key: String, value : String) : Integer
do
cmdInt!lightOn('mesg.nodeId')
end
if ('mesg.command' == "query")
do
cmdInt!query()
end

end


statechart DeviceSession init Init {
internal event m : cmdInt?query
guard deviceId == "zwave"
action do
ZWave!query()
end

internal event m : ZWave?queryRes
guard deviceId == "zwave"
action do
smarttracker!postJson( m.res)
end

state Init {
on entry do
ZWave!connect()
Expand Down Expand Up @@ -175,14 +208,14 @@ function createObservation(key: String, value : String) : Integer
guard m.value['\'value\''] == false and m.comclass == 48 and m.nodeid == deviceId
action do
print("Value changed: "+m.nodeid + "," + m.comclass + "," +'JSON.stringify('& m.value &')')
smarttracker!postJson( createObservation("lamp", "off"))
smarttracker!postJson( createObservation("security.event", "doorOpen"))
end

internal event m : ZWave?valueChanged //Eye - burglar sensor
guard m.value['\'value\''] == 0 and m.comclass == 113 and m.nodeid == deviceId
action do
print("Value changed: "+m.nodeid + "," + m.comclass + "," +'JSON.stringify('& m.value &')')
smarttracker!postJson( createObservation("burglar", "off"))
smarttracker!postJson( createObservation("event", "burglar"))
end

/*internal event m : ZWave?valueChanged
Expand Down
Expand Up @@ -159,7 +159,10 @@ thing ZWave includes ZWaveServer, ZWaveInternal
property nodes : Nodes

statechart ZwaveImpl init Idle {

internal event m : ZWave?setValue
action do
ZWave!queryRes('JSON.stringify('& nodes &')')
end
state Idle {
on entry do
initialize()
Expand Down Expand Up @@ -195,19 +198,19 @@ thing ZWave includes ZWaveServer, ZWaveInternal
internal event m : ZWave?setValue
action do
'console.log(\'turning switch :%s\', '& m.value &');
'& zwave &'.addon.setValue('& m.nodeid &','& m.commandclass &','& m.inst &','& m.index &','& m.value &');'
'& zwave &'.setValue('& m.nodeid &','& m.commandclass &','& m.inst &','& m.index &','& m.value &');'
end

internal event m : ZWave?setNodeOn
action do
'console.log(\'set node on :%s\', '& m.nodeid &');
'& zwave &'.addon.setNodeOn('& m.nodeid &');'
'& zwave &'.setNodeOn('& m.nodeid &');'
end

internal event m : ZWave?setNodeOff
action do
'console.log(\'set node off :%s\', '& m.nodeid &');
'& zwave &'.addon.setNodeOff('& m.nodeid &');'
'& zwave &'.setNodeOff('& m.nodeid &');'
end

internal event m : ZWaveIntRec?nodeReady
Expand Down

0 comments on commit 5eab700

Please sign in to comment.